シロート統計学講座 其の27
前回は多変量解析の独立変数を選ぶ方法を紹介しました。
重回帰・ロジスティック回帰の紹介は済みましたので、残る多変量解析はCox比例ハザード回帰と呼ばれるものです。
Cox比例ハザード回帰は生存期間に対する多変量解析です。でも生存期間というアウトカムをイメージしにくい方もおられるのではないでしょうか。今回は生存期間についてと、EZRで生存期間を群間で比較するLogrank(ログランク)検定について説明します。
※今回のデモデータは少し記事を読み進めた所にあります。
生存期間とは何か
生存期間の定義
今までに扱ってきたデータの尺度(変数)にはどんなものがあったでしょうか。
以下の3つがありました。
●名義変数:順序の関係がないデータ(男・女など)
●順序変数:順序づけられたデータ(スコアリングされた値など)
「生存期間」というのは、これらの3つとは別の新たなデータの尺度であると認識しておくといいと思います。まず定義を確認しておきましょう。
2値のアウトカムというのは「イベントあり・なし」のようなデータのことです。そして、アウトカムが起こるまでの時間というのは「イベントが起こるまでの時間」のことですね。
分かりやすい例は「死亡・生存」をアウトカムとした場合です。この場合、イベントありが死亡、イベントなしが生存、となります。そしてある時点から死亡までの時間が生存期間です。
よく医学系の書籍や論文でみかける「3年生存率」や「5年生存率」などは、生存期間を解析して明らかにしたものですね。
生存期間という名前をみると死亡・生存という生命の話をイメージしやすいですが、実際はそれだけではありません。イベントまでの期間を測定したものはすべて生存期間なんですよね。例えば「転倒あり・なし」をアウトカムとするなら、転倒までの期間が生存期間となります。
デモデータ
遅くなりましたが、今回もデモデータがあります。
今回想定したのは「フレイルの人とそうでない人は5年後の再入院率に差があるか」です。
フレイル(frailty)は虚弱とも呼ばれ、簡単に言うと「病気ではないけど体が弱っていて、色んなストレスに弱くなる状態」のことです。
生存期間をExcelで表す方法が少し分かりにくいかもしれませんので軽く説明しておきます。
生存期間は「2値のアウトカム+アウトカムが起こるまでの時間」でしたよね。
今回のイベントは再入院(rehospitalization)で「0=再入院なし、1=再入院あり」となります。そして再入院までの時間を月(months)で表しています。
時間の計測にはいくつかのパターンがあります。下の図をみてください。
(Aさん)
フレイルの評価をしてから2年後に再入院しました。この場合、アウトカムまでの時間は「24ヵ月」となりますよね。ですので「再入院あり、追跡期間24ヵ月」というデータになります。
(Bさん)
フレイルの評価をしてから2年後までは再入院なく過ごしているのが確認できましたが、以降は受診歴がなく経過を追えなくなってしまいました。この場合、打ち切りサンプルとなり「再入院なし、追跡期間24ヵ月」というデータになります。
(Cさん)
フレイルの評価後、再入院なく過ごすことができ、データ収集時点の追跡期間は5年でした。この場合も打ち切りサンプルとなり「再入院なし、追跡期間60ヵ月」というデータになります。
生存期間の解析で特徴的なのは、Bさん・Cさんのような打ち切りサンプルも含めて検討することが可能ということです。
単にイベントまでの日数を連続変数として捉えて比較すると、解析時点でまだイベントが発生していないサンプルを扱うことができませんよね。
※ただ、打ち切りの理由がイベントに影響することであれば、解析結果に偏りを生じることがあるので注意!
このように、イベントあり・なしの発生率を時間経過や打ち切りサンプルを含めて検討できるのが生存期間の解析になります。
データの取り込み
ではEZRにExcelデータを取り込みます。
Excelファイルを開き、データを囲ってコピーします(Ctrl+Cでも可)。
EZRを開いて「ファイル」→「データのインポート」→「ファイルまたはクリップボード, URLからテキストデータを読み込む」
データセット名は「frailty」にしましょう(なんでもよい)。そして「クリップボード」と「タブ」にチェックを入れてOKを押します。
データセットが「frailty」になっていることを確認し、「表示」を押してデータが正しく表示されれば取り込み完了です。
生存期間の比較(Logrank検定)の実施
では「フレイルの人と、フレイルではない人で、5年後の再入院率に差はあるか」を検討していきましょう。
生存期間を比較する場合、生存曲線というものを描いて、群間の比較はLogrank(ログランク)検定を用います。実際にやりながら理解していきましょう。
「統計解析」→「生存期間の解析」→「生存曲線の記述と群間の比較(Logrank検定)」
観察期間は「months」、イベントは「rehospitalization」、群別する変数は「frailty」を選択します。そして「At riskのサンプル数を表示する」にチェックを入れておきます。
今回は5年後の再入院率を知りたいので「生存率を表示するポイント」の所に「60(ヵ月)」と入力しておきます。そしてOKを押すとLogrank検定が実行され、結果と生存曲線が表示されます。
Logrank検定の結果解釈
では結果解釈に移ります。下のグラフが生存曲線です。学会や論文で一度は見たことあるんじゃないでしょうか。Kaplan-Meier(カプランマイヤー)曲線とも呼ばれます。
下にいくほどイベントの発生が多い(今回でいうと、再入院する人が多い)ことを表します。黒い線が「フレイルでない人」、赤い線が「フレイルの人」ですので、フレイルの人の方が再入院する人が多くなっているのが分かります。
ちなみに、生存曲線に時々縦線が入っているのは、打ち切りサンプルを表しています。そして、下にある「Number at risk」はイベントの発生や打ち切りによって脱落した人を差し引いたサンプル数が示してあります。
結果は下の表を見ます。
まず「指定時点の生存率」を見てみましょう。今回は5年(60ヵ月)後の生存率(今回で言うと再入院していない人の割合)となります。
5年後に再入院していない人の割合は
フレイルでない人:68.5%
フレイルの人:32.1%
つまり5年後の再入院率は
フレイルでない人:31.5%
フレイルの人:67.9%
と分かりました。
次に「生存期間中央値」を見てみましょう。これは再入院が生じるまでの期間の中央値ですが、算出方法が少し独特です。
生存期間の中央値を出す場合、下の図のように縦軸が0.5(つまり再入院率が50%)の所から水平に線を引き、生存曲線とぶつかった所から垂直に下した値となります。
フレイルの人(1)では中央値は31になっていますよね。
一方、フレイルでない人(0)をみると、そもそも生存曲線が0.5まで下がっておらず、中央値が計算できないのでNAとなっています。論文では「未到達」と表現されたりします。
最終的に2群間の生存曲線に差があるかどうかはP値を確認します。P<0.05であれば「2つの生存曲線は異なる」と言えます。今回はP=0.00119なので有意差ありですね。
よって今回は「フレイルの人は、フレイルでない人に比べて有意に再入院率が増加する(5年後の再入院率67.9% vs 31.5%、生存期間中央値31日 vs 未到達)」と結論づけることができます。
まとめ
以上、EZRで生存期間の比較(Logrank検定)を行う方法を説明しました。
生存期間は、研究や統計学の初心者の方にとってはあまり馴染みがないものだったかもしれません。でも医学研究では比較的よく用いられるデータだと思います。特に病院で働く人は、今回のように再入院をアウトカムとすれば、割とデータが集めやすかったりします。
今回は「フレイル」と「再入院の有無」の関係性だけに注目した形ですが、他に色々な交絡因子がありそうですよね。
そこで次回はこの生存期間に対する多変量解析であるCox比例ハザード回帰を紹介します。考え方は重回帰・ロジスティクス回帰と同様で、生存期間に影響する因子を調べたり、群間の背景因子を補正したりできます。
▼其の28に続く▼
コメント
「EZRで生存期間の比較(Logrank検定)を行う方法」を読ませていただきました。
ログランク検定をしたくて無料ソフトを探してEZRに行きつくも、なぜか出てくる結果がおかしくて困っていました。
色々なwebページを回ってみるも自分の知りたい点は書いてありませんでした。
自分の持っているデータをエクセル上でどのように表記させてEZRに貼り付けるのか、その後どの項目をどう選択するのかがここでは画像を出しながら説明していたので、とてもわかりやすくEZRを操作することができました。
嬉しかったのでコメントさせていただきました。
ありがとうございました!
Anryoさん
大変うれしいコメントありがとうございます。
今後も何か役に立てるように精進いたします。