Stataのコマンドその7(生存時間解析)

①生存時間解析の宣言 

まず、生存時間解析を行うよ~ということをStataに教える。

stset 時間変数,failure(打ち切り変数=数値)

  時間変数…追跡期間(日数など)を入力する

  打ち切り変数…追跡期間後のアウトカムを示す。failure()は、打ち切り変数がその数値であるときにエンドポイントが観察されたこと(イベントが発生したこと)を意味する。

例えば、stset days,dailure(died=1)

これでStataに、died=1がエンドポイント、daysが時間を表す変数である生存分析データであることを知らせたことになる。何件のイベントが発生したか、何人日の総追跡期間であったかなどが表示される。ちなみにstはsurvival timeの略で、生存時間解析のコマンドには、頭にstがつく。

②カプランマイヤー曲線を描く

 ①の宣言後に、sts graph,オプション

オプションは以下さまざま。

・カテゴリ群間でのカプランマイヤー曲線の比較をしたいとき

 sts graph,by(カテゴリ変数)

・打ち切り時にひげをつける

 sts graph,censored(single)

・打ち切り人数を表示する

 sts graph,lost

・各時点での残っている人数を表示する

 sts graph,risk table

上記のいろいろなオプションを、一度に付けることも可能。

例えば、糖尿病(dm)のある人とない人のあるイベント発生のカプランマイヤー曲線を比較したい、ひげをつけたい、残っている人数も表示したい→sts graph,by(dm) censored(single) risk table

③検定

 カプランマイヤー曲線は、単なる記述。検定は、以下の2種類のいずれかで行う。

 ・ログランク検定 :sts test 曝露変数

    とくに重みづけなし。→ハザード比が一定の場合に敏感に反映する

 ・ウィルコクソン検定:sts test 曝露変数, wilcoxon

    早期の群間差を敏感に検出する

④推定:Cox比例ハザードモデル

 ログランク検定は、カプランマイヤー曲線に差があるかを検定するものであり、単純な群間比較である。よって、背景因子が両群でそろっているRCTではよく用いられる。背景因子がそろっていない場合は調整が必要なので、Cox比例ハザードモデルを用いる。

 stcox 説明変数群,オプション

  アウトカム変数は、すでにstsetで宣言されているので記載しなくてよい。

 例えば、糖尿病の有無(dm)と生存時間の関連について、年齢(age)、性別(male)、BMI(bmi)で調整したCox回帰分析を施行したい→stcox dm age male bmi

これで例えばageの横にHazard Ratio 1.34と出たとしたら、1歳年齢が上がるごとにハザード比が1.34倍になるということ。dmのHazard Ratioが1.87としたら、糖尿病がある場合ハザード比が1.78倍になるということ。

⑤比例ハザード性の確認

 ところで、Cox比例ハザードモデルは、ハザード比が一定であるという仮定に基づいている。例えば追跡3日目で2群間のハザード比が0.4で、追跡300日目でも同じく0.4であるということ。

 この比例ハザード性があるかどうかを確認する方法として、まず、視覚的に確認する方法がある。

stphplot,by(カテゴリー変数)

例えばstphplot,by(dm)

これで出てきた2本の曲線が交わりがなく、だいたい平行であれば、比例ハザード性ありと判断する。

ほかの変数で調整したプロットを示すこともできる。たとえばstphplot,by(dm) adjust(male age)

統計的検定で比例ハザード性を検証することもできる。

stphtest,detail

ここでは、p値が大きければ「ハザードの比例性が保たれている」という解釈となる。

タイトルとURLをコピーしました