リハビリ 人工知能 理学療法 Deep learning Deep Neural Network ディープラーニング AI 鍼灸

人工知能・リハビリ・日記・理学療法

タイトルはAIですが、個人的な日記なので、あまり気になさらないように。

κ係数と重み付きκ係数(wカッパ):重み付きカッパはEZRで出来ないのでPythonでしてみた。

どうも。新居に引っ越ししたのですが、◯条工務店に出入りしているGuです。

いきなりのカミングアウトすみません。

 

 

κ係数重み付きκ係数(wカッパ):重み付きカッパはEZRで出来ないのでPythonでしてみた。

(まず、タイトル長い。)

 

kappa(κ)係数は、順序尺度の検査の一致度をみるものです。

理学療法作業療法だと、MAS(Modified Ashworth Scale)が有名でしょうか?

 

κ係数と重み付きκ係数の違いを文字で復習します。

 

MASを評価する場合、1と4って間違えます?? 

普通は間違えないですよね?

でも、1と1+であれば、間違えそうじゃないですか?

 

κ係数の場合は、1と4を間違えても、1と1+を間違えても同じように下がります。でも、1と4を間違える重さと、1と1+を間違える重さって違いますよね?

 

ということで、重み付きκ係数の登場です。1と4では、重み付きκ係数は下がりますが、1と1+だとあまり下がらないというのが重み付きκ係数です。

 

ということは、感覚的にですが、κ係数が0.3くらいで、重み付きκ係数が0.8の検査だと、完全に一致はしないかもしれないが、そこそこ近い値となるという感じで解釈しています。

 

Rコマンダーでκ係数を計算

非常に簡単です。(インポートして、κ係数を押すだなので、解説してもしかたがありません。一応、以前の記事を載せておくので参考にしてください。)

takuma-ai.hatenablog.com

 

 

重み付きκ係数はEZRも改変Rコマンダーも出来なかったのでPythonでしてみました。

使用するデータはこちら↓。

www.dropbox.com

 

検査者AとBが入っていますね。

先に完成形の写真を載せます。

f:id:Takuma_AI:20201222085734p:plain

Pythonで重み付きκ係数

 

正味、これをコピペするだけです。

scikit-learnはインストールしておいてください。

 

import pandas as pd
from sklearn.metrics import confusion_matrix, cohen_kappa_score

 

df = pd.read_csv("kappa.csv")

 

y_true = df["A"]
y_pred = df["B"]

 

 print("#############Confusion Matrix#############")
conmat = confusion_matrix(y_true, y_pred)
print("RAW: y_true, COLUMN: y_label")
print(conmat)
print("##########################################\n")

 

k = cohen_kappa_score(y_true, y_pred, weights='quadratic')
print("Weighted Kappa k: {:.3f}".format(k))

 

これを実行すると、重み付きκ係数がでます。こんな感じにでます↓

Weighted Kappa k: 0.695

よければ、ダウンロードもあります↓

www.dropbox.com

 

少し難しいかもしれませんが、解説サイトもありました。

https://www.stats-guild.com/analytics/5396