生存時間分析【No.2ノンパラメトリックモデル】
目次
※用いている統計ソフトはRです.
【No.1生存時間とは】を見ていない方はこちら👇
suzume-statistics-diary.hatenablog.jp
(ⅰ)ノンパラメトリックの例
まずはノンパラメトリックの例についてみていく.
下のグラフは,gehan(ゲーハン)投与群と対照群のカプランーマイヤー法による生存曲線です.
gehan(ゲーハン),カプランマイヤー曲線,生存曲線と聞き慣れない概念が出現しました🤦♀️🤦♀️🤦♀️
でも大丈夫です.順に説明していきます!
gehan(ゲーハン)とは...?
Rという統計解析ソフトのMASSパッケージ内にある42人の白血病患者に対する薬の効果を調べるために行った臨床試験データのことです.gehanは生存分析の例題としてよく用いられています.被験者は※6ーMP(6ーメルカプトプリン)の投与群と対照群(投薬していない群)のペアによって構成されています.
gehanのデータ↓↓
×:死亡(イベント発生)
△:打ち切り①(継続できなかった)
〇:打ち切り②(研究終了まで生存)
「白血病患者に薬を投与してから何日後に死亡するか」ということ.
※6ーMP(6ーメルカプトプリン)とは,抗がん剤の一種.副作用として,脱毛,貧血などが起こる.
memo:白血病
白血病は血液のがんです.血液細胞には赤血球,血小板,白血球がありますが,これらの血液細胞が骨髄でつくられる過程で、がんになります。がん化した細胞(白血病細胞)は、骨髄内で増殖し,骨髄を占拠してしまいます.そのため,正常な血液細胞が減少し,貧血,免疫系のはたらきの低下,出血傾向,脾臓(血液を貯蔵しておく臓器)の肥大などの症状があらわれます.
統計解析ソフト,Rで元のデータを確認してみる👇
pair;比較ペア
time;生存時間
cens;打ち切りか否か
treat;抗がん剤を投与したか否か
赤い文字が入力したもので,青い文字が出力された文字です.
上から何を打ち込んだのか解説していくと...
①library(survival)とlibrary(MASS)
👉library()は必要なプログラム群(パッケージ)を呼び出す指令.
イメージとしては..
libraryは図書館という意味!図書館から本を探して中身の内容を理解してプログラムの中でその本の知識を使っているようなもの.
②data(gehan);dim(gehan)
👉library(MASS)で導き出したMASSパッケージ内にあるgehanというデータを
dimで行列として表す.
gehan[ ]は42人のデータが表示されます.gehan[1:x,]と入力するとx人のデータが表示されます.
(ⅱ)カプランマイヤー曲線とは...?
Q)カプランマイヤー曲線とは?
👇
A)生存時間曲線の一種
Q)生存時間曲線とは?
👇
A)生存関数のグラフのこと
Q)生存関数とは?
👇
A)t時点までイベントが起こらない確率
=「t時点まで生きている確率」
生存関数の定義
あるイベントが起こるまでの時間を表す確率変数をT(T>0)とする。
Tの確率密度関数をf(t)、累積分布関数をF(t)とする。
生存関数 S(t)は...
生存曲線の特徴
例えば,上のような生存曲線があるとする.横軸は時間,縦軸は生存率です.
このとき,
① t=0の時、S(0)=1.0
② t=∞の時、
に収束する単調減少(非増加)関数
となります.
カプランマイヤー曲線をかいてみる
生存曲線を考えるため,7人の被験者を無作為抽出し,例として生存日数が
3 5 5 7 8 9 10
である生存時間データを考える.
step1
観察開始時0日から3日目まで,イベントは起こらず全て生存していたので,
S(t)= 1.0 ( 0 ≦ t ≦3 )
step2
3日目でイベントが発生(死亡)したので3日目が過ぎた瞬間を3+0とすると,
S(3+0)= 6/7 (7人中6人がまだ生存していますよ,という意味)
step3
3+0日目から5日目までのイベントが起こらないので,
S(t)= 6/7 ( 3 ≦ t ≦ 5 )
同様にそれ以降を続けていくと・・・
生存曲線は,
gehanのカプランマイヤー曲線をRをつかってプロット
出力結果☟
グラフの”ひげ”は打ち切りデータを表しています.「mark.t=T」はひげをつけるプログラムです.「mark.t=F」または,「mark.T」をつけないとひげがつかないグラフになります.(一番初めに取り上げたグラフと同じグラフです.)
(ⅲ)ログランク検定
下のグラフはgehanのデータをカプランマイヤー曲線で表したものです.
明らかに6-MPを投与した方の観察患者の方が長生きしているように見えます.
それを明確に数値で表すのが.. ログランク検定
(データgehanのような2群以上の観測値が得られたときは群ごとの生存曲線の間の差の有意性について検定を行いたい.そこで使うのがログランク検定.)
実際に先ほどのデータでログランク検定を行ってみると...
p値が0.05より小さいので2群には有意差があるといえる!
ログランク検定の特徴と問題点
・特徴;時間に依存しない
・問題点;単変量解析
単一の因子によって群を場合分けし、群間で生存関数に有意差がないかを検定する.
👇よって,
多数の要因が関与するときは,Cox比例ハザードモデルや層別log-rank検定などを利用する.
Rで入力したデータをそのまま書いたのでコピペして実際に入力してみてください.
※赤い文字のところが入力したプログラム.
#はプログラムの説明です.
>library(survival);library(MASS);
>data(gehan);dim(gehan);
[1] 42 4
>gehan[]
>Surv(gehan$time,gehan$cens)
#データオブジェクトを作成する.(返された結果は生存時間モデルの目的変数として用いられる.)”+”がついているのは打ち切りデータ.
[1] 1 10 22 7 3 32+ 12 23 8 22 17 6 2 16 11 34+ 8 32+ 12 25+ 2 11+ 5 20+ 4 19+ 15 6 8 17+ 23 35+ 5 6 11 13 4 9+ 1 6+ 8 10+
>gehan.data<-survfit(Surv(time,cens)~treat, data=gehan)
#survfitはノンパラメトリック法による生存時間を当てはめる関数.
その関数を「gehan.data」と名付けている.(timeを目的変数,treatを説明変数とした関数.)
>gehan.data
#データgehanにおける投与群と対照群ごとの標本(n),イベントの件数(event),中央値(median),両側の区間推定(95%信頼区間)の情報が返される.
> plot(gehan.data,mark.t=T)
#「gehan.data」の生存曲線が返される.
(mark.t=F とするとひげがなくなる.)
>survdiff(Surv(time)~treat,data=gehan)
#関数survdiffを用いてログランク検定を行う.
最後までお読みいただきありがとうございました🌻🌻🌻
参考文献
生存時間分析【No.1生存時間分析とは】
目次
はじめに
生存時間分析についての課題に取り組みましたが,生存時間分析について取り上げている記事は少なく,調べるのにかなり骨が折れました...そこで自分が生存時間分析について分かっていることをまとめ,後に勉強を進める人にとって少しでも手助けができればいいと思っています.
(※統計解析ソフトはRを用いていて解説していきます.)
生存時間分析とは..?
1.おおざっぱに説明
例えば,同じ疾病※にかかった患者さん4人を集めたとする.2人は従来通りの治療,2人は新薬を投与したとする.結果的に全員死亡してしまいましたが,新薬を投与した患者さんは従来通り治療をした患者さんよりも長生きしました.
では,この2つの群に本当に違いがあるのでしょうか...?
※疾病(しっぺい)と疾患(しっかん)の違いとは・・?
疾病とは・・・病気,健康とは言えない様々な症状・症候を示す病的状態.
疾患とは・・・病気,原因・経過・予後・治療法などがだいたいわかっている病的状態.
☞つまり,疾患の方が具体的な症状や治療法がはっきりしている.
そのための統計分析が...
生存時間分析(解析)
2.生存時間分析の定義
生存時間分析 (survival analysis) は、イベント (event) が起きるまでの時間とイベントとの間の関係に焦点を当てる分析方法である.
基本概念を確認しよう
イベント(event)とは...?
医療分野👉疾患の再発や死亡など
工学分野👉機械システムや製品の故障など
このような故障,破壊,倒産,再発,死亡などを「イベント(event)」と呼ぶ.
(教科書,参考書によってはエンドポイント(endpoint)/アウトカム(outcome)とも呼ばれる.)
この記事の中では医療分野について考えていきます.
※イベントのことをfailureとも呼ぶことがあります.それは興味のあるイベントとは通常,死亡,疫病の発症などネガティブな体験だからです.
臨床試験の生存時間は「いつから」...?
①疾患が発生した時点
→明瞭な自覚症状が疾患では可能であるが、糖尿病やがんなどでは難しい.
②診断日
→診断記録から明確に定めることができるが、患者によって疾患の進行状況が異なる可能性がある.
③ランダム化実施時点
→症例登録を行い、治療法の割り付けを行った時点を起算日とするのが通例.
④治療開始時点
→治療の効果を知りたい場合はこれが主流と考えられている.
打ち切りとは
研究終了時までにイベントが起こらなかった場合のこと.
たとえば,設けられた期間内に死亡(イベント)しなかった.
途中で退院したり,患者さんが逃げ出してその後について追跡できなかったり...
生存時間の分類
1.ノンパラメトリックモデル (non-parametric model)
→共変量※を導入しない,分布を仮定しない.
2.セミノンパラメトリックモデル/セミパラメトリック (semi-non-parametric model)
→共変量を導入する,分布を仮定しない.
3.パラメトリックモデル (parametric model)
→共変量を導入する,分布を仮定する.
※共変量とは..?
結果と共に変わる原因と思われる変量(ここでは、性別・年齢・投薬の有無など時間以外の説明変数として捉える。)
もっとわかりやすくいうと...
例えば,Aさんの体重を知りたいとする.体重は,身長,腹囲,胸囲などから予測できる.よって,
Aさんの体重(kg)= α₁×身長 + α₂×腹囲 + α₃×胸囲 + α₀(αiは定数)
このようにAさんの体重(目的変数)を説明するような身長,腹囲,胸囲のことを共変量(説明変数)という.詳しくは,回帰分析を検索してみてください.
そして,ノンパラメトリック,セミノンパラメトリック,パラメトリックはそれぞれの特徴別に検定の仕方が異なります.
ノンパラメトリックは共変量,分布を仮定しないのでログランク検定.
セミノンパラメトリックは,共変量を仮定し,分布を仮定しないのでCoxハザードモデル.
パラメトリックは分布を仮定して評価していきます.その具体的な解析方法を次の記事から説明していきます.
参考文献
☞Rによる分析が載っていますが,咀嚼には少々時間がかかりました..
☞分かりやすくてかなりおすすめです🙈🙈