いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【KNIME】生存時間解析してみたい。

・生存時間を評価する手法として、Kaplan-Meier法という手法がある。これは、生存率曲線を描くことで、生存時間(期間)を推定する手法。

・2群間の生存時間を比較する統計手法としてよく用いられるのは、ログランク検定と一般化Wilcoxon検定だろう。Cox比例ハザードモデルとか、他にもいろいろあるが、少なくともこの2つは押さえておきたい。

・ログランク検定:帰無仮説は「観測時点のあらゆるポイントで、生存率に差はないよ」なので、対立仮説は「どこかで差があるよ」(←ないというにはちょっと無理があるかなぁ......)となる。イベントが起こる度に生存数、イベント発生数×投与群、非投与群のカイ二乗検定するという手法らしい。

・一般化Wilcoxon検定:ログランク検定では各時点で重み付けしていなかった。生存曲線の性質上、あとの方が前の方と比べて例数が減る。「あとの方が例数少ないのに、前の方と同じ重みで検定するので大丈夫か?」ということで、生存数で重みをつけた(生存数が多いと重みも重くなる)のが一般化Wilcoxon検定らしい。オリジナルのWilcoxonの順位和検定は、観測値を順位に置き換えて比較する手法で、外れ値に強いノンパラ検定手法みたい。何が「一般化」かというと、打ち切り例を加味している点(全例打ち切りなしであればオリジナルと一般化は同じ)
・KNIMEでログランク検定と一般化Wilcoxon検定を調べてみたが、パッと出てこなかった。一方で、普通のWilcoxonの順位和検定(Wilcoxon-Mann-Whitney test)はすぐ出てきたので、打ち切りなしのサンプルデータセットでとりあえずWilcoxon-Mann-Whitney testを試してみた(下図)

f:id:choron81:20211211175806p:plain

・Kaplan-Meier Estimatorノードに入力するデータに必要なのは、①群、②生存時間、③打ち切りの有無であり、②は日付かDouble、③はBooleanである必要がある。Booleanがtrueの場合、打ち切りなしということになる。

・Kaplan-Meier EstimatorノードとWilcoxon-Mann-Whitney testノードの出力は以下の通り。

f:id:choron81:20211211180438p:plain

f:id:choron81:20211211180459p:plain

・p = 0.018<0.05なので、統計的有意差はアリというらしい。

・KNIMEでもともとの目的の生存時間解析のログランク検定や一般化Wilcoxon検定を実施できるのかよく分からず、場合によってはRで補完した方が良いのかなぁ、と考えている今日この頃。

 

終わり。