2016-12-05 5 views
4

intraclass correlation (ICC)をPythonで計算しようとしています。私はこの機能を持つ既存のモジュールを見つけることができませんでした。別の名前がありますか、それとも自分でする必要がありますか?私はこの質問が他のユーザーによって検証されたクロスでa year agoと尋ねられたことを知っていますが、回答はありませんでした。私は2人の評価者の間で連続スコアを比較しようとしています。Pythonモジュールのクラス内相関?

+0

[this](http://stats.stackexchange.com/q/63368/61867)の質問には、いくつかのコードが含まれています。私はnumpyでかなりの機能に精通していますが、以前はICCを見ていません。また、scikit-learnパッケージとstatsmodelsパッケージのドキュメントを検索することもできます。いずれにせよ、手で実装するのは難しくはありません。速度が重要である場合は、特にnumpyの使用を検討してください。あなたの答えをここに投稿して、他の人がこれを探しているのを助けることを忘れないでください! – Praveen

+0

ありがとうPraveen。それがWalRが提供したものです。この時点で、自分で書く方が早いでしょう。 Pythonでインプリメンテーションを検索すると、ICCのために出てくるほとんどの結果はインテルC++コンパイラでした。私はそれがneurolearnに埋もれているのを発見していなかった。誰かがscipy/numpyでICCを完全に実装すると便利かもしれません。私が使用する実装やコードをフォローアップします。 – Hector

答えて

3

あなたはICCのいくつかの実装がRでありICCまたはBrain_Data.icc

+0

私はこれまでにそれを見つけられませんでした。それは特にICC(3,1)の実装です。すべてのICCバリアントの実装がモジュール内に存在するかどうかを確認したいと思います。私はICC(2,2)が必要であると信じています。実装が存在しなければ、コード化することができます。 – Hector

+0

@Hector 'icc2'のための他の実装が私の編集と幸運をチェックしています。 – Zety

+0

素晴らしい発見、ありがとう! – Hector

3

での実装を見つけることができます。これらはPythonからrpy2パッケージ経由で使用できます。例:

from rpy2.robjects import DataFrame, FloatVector, IntVector 
from rpy2.robjects.packages import importr 
from math import isclose 

groups = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 
      4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8] 
values = [1, 2, 0, 1, 1, 3, 3, 2, 3, 8, 1, 4, 6, 4, 3, 
      3, 6, 5, 5, 6, 7, 5, 6, 2, 8, 7, 7, 9, 9, 9, 9, 8] 

r_icc = importr("ICC") 
df = DataFrame({"groups": IntVector(groups), 
       "values": FloatVector(values)}) 
icc_res = r_icc.ICCbare("groups", "values", data=df) 
icc_val = icc_res[0] # icc_val now holds the icc value 

# check whether icc value equals reference value 
print(isclose(icc_val, 0.728, abs_tol=0.001)) 
関連する問題