Python でクラス内相関係数を計算する方法
クラス内相関係数(ICC) は、項目またはトピックをさまざまな評価者が確実に評価できるかどうかを判断するために使用されます。
ICC の値は 0 ~ 1 の範囲で、0 は評価者間で信頼性がないことを示し、1 は完全な信頼性を示します。
Python で ICC を計算する最も簡単な方法は、ペンギン統計パッケージのpenguin.intraclass_corr()関数を使用することです。この関数は次の構文を使用します。
pengouin.intraclass_corr(データ、目標、評価者、成績)
金:
- data:データフレームの名前
- ターゲット: 「ターゲット」(注目すべき事項) を含む列の名前
- reviewers:レビュー担当者を含む列の名前
- Notes:メモを含む列の名前
このチュートリアルでは、この機能の実際的な使用例を示します。
ステップ 1: ペンギンをインストールする
まず、ペンギンをインストールする必要があります。
pip install penguin
ステップ 2: データを作成する
4 人の異なる裁判官が 6 つの異なる大学入学試験の質を評価するように依頼されたとします。審査員のスコアを保持するために次のデータフレームを作成できます。
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' exam ': [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6,
1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6],
' judge ': ['A', 'A', 'A', 'A', 'A', 'A',
'B', 'B', 'B', 'B', 'B', 'B',
'C', 'C', 'C', 'C', 'C', 'C',
'D', 'D', 'D', 'D', 'D', 'D'],
' rating ': [1, 1, 3, 6, 6, 7, 2, 3, 8, 4, 5, 5,
0, 4, 1, 5, 5, 6, 1, 2, 3, 3, 6, 4]})
#view first five rows of DataFrame
df. head ()
exam judge rating
0 1 A 1
1 2 A 1
2 3 A 3
3 4 To 6
4 5 A 6
ステップ 3: クラス内相関係数を計算する
次に、次のコードを使用してクラス内相関係数を計算します。
import penguin as pg icc = pg. intraclass_corr (data=df, targets=' exam ', raters=' judge ', ratings=' rating ') icc. set_index (' Type ') Description ICC F df1 df2 pval CI95% Kind ICC1 Single raters absolute 0.505252 5.084916 5 18 0.004430 [0.11, 0.89] ICC2 Single random raters 0.503054 4.909385 5 15 0.007352 [0.1, 0.89] ICC3 Single fixed raters 0.494272 4.909385 5 15 0.007352 [0.09, 0.88] ICC1k Average raters absolute 0.803340 5.084916 5 18 0.004430 [0.33, 0.97] ICC2k Average random raters 0.801947 4.909385 5 15 0.007352 [0.31, 0.97] ICC3k Average fixed raters 0.796309 4.909385 5 15 0.007352 [0.27, 0.97]
この関数は次の結果を返します。
- 説明:計算される ICC のタイプ
- ICC:クラス内相関係数 (ICC)
- F: ICCのF値
- df1、df2:値 F に関連付けられた自由度
- pval: F 値に関連付けられた p 値
- CI95%: ICC の 95% 信頼区間
ここでは 6 つの異なる ICC が計算されていることに注意してください。実際、次の仮定に基づいて ICC を計算する方法がいくつかあります。
- モデル:一方向ランダム効果、双方向ランダム効果、または双方向混合効果
- 関係のタイプ:一貫性または完全な合意
- 単位:単一の評価者または評価者の平均
これらの前提条件の詳細な説明については、この記事を参照してください。