st002 - math-koubou.jp · • パラメトリックな分析機能 目 次 コマンド whitepaper...

27
ST002

Upload: others

Post on 24-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

ST002

Stata 11 コマンド解説書

【医療系機能編】生存時間分析

Stataには生存時間分析に関係するコマンドが多数用意されており、ノンパラメトリック/セミパラメトリッ

ク/パラメトリックな解析手法を支援しています。本解説書ではこれらのコマンドの用法を説明すると共に、

その前提となる統計解析手法についても独自の解説を加えました。

• 生存時間分析の基本• 生存時間データの初期設定• ノンパラメトリックな分析機能• セミパラメトリックな分析機能• パラメトリックな分析機能

目  次

コマンド whitepaperタイトル ページ mwp番号

− 生存時間分析の基本 3 mwp-086

stset 生存時間データの定義 34 mwp-021

sts ノンパラメトリック分析 52 mwp-022

sts graph グラフ作成機能(sts系) 64 mwp-025

stcox セミパラメトリック分析 73 mwp-023

streg パラメトリック分析 92 mwp-024

stcurve グラフ作成機能(stcox/streg用) 111 mwp-026

− 日付/時間情報の入力 123 mwp-001

本解説書は StataCorp社の許諾のもとに作成したものです。

c⃝ 2011 Math工房

一部 c⃝ 2011 StataCorp LP

Math工房 web: www.math-koubou.jp

email: [email protected]

Stata11 whitepapers

mwp-086

生存時間分析の基本

Stataには生存時間解析用のコマンドが一式用意されています。機能区分という点で言うと、これらは

◦ ノンパラメトリック系機能◦ セミパラメトリック系機能◦ パラメトリック系機能

の 3つに分類できます。本 whitepaperではこれらの生存時間解析機能を使用して行く上で前提となる基本的

な事項や概念について、情報を整理しておきます。

1. 生存関数とハザード関数

2. データセットの初期設定

3. ノンパラメトリック解析

3.1 Kaplan-Meier生存関数

3.2 Kaplan-Meier生存関数の推定例

3.3 比較検定

4. セミパラメトリック解析

4.1 Cox比例ハザードモデル

4.2 部分尤度

4.3 Cox比例ハザードモデルの推定例

4.4 層別化モデル

5. パラメトリック解析

5.1 パラメータ化の流儀

5.2 パラメトリックモデルの推定例

補足1

c⃝ Copyright Math工房; 一部 c⃝ Copyright StataCorp LP (used with permission)

3

Stata11 whitepapers

1. 生存関数とハザード関数

今、ある事象が発生するまでの時間を X とします。その事象は短時間で発生することもあれば、なかなか発

生しないこともあるでしょう。その意味で X は確率変数であるわけですが、その確率密度関数 (probability

density function) を f(x)で表すことにします*1。次の図はWeibull分布

f(x) =pxp−1

λp· exp(−(x/λ)p)

の場合を例に取って f(x)の形状をプロットしたものです。

図 1 Weibull分布の確率密度関数

Weibull分布は形状パラメータ pの値によってさまざまな分布が表現できることから生存時間解析の分野では

良く用いられる関数であり、p = 1の場合の特殊ケースとして指数分布を中に包含しています。いずれにせよ

確率密度関数 f(x)によって xの分布が規定されるわけです。次に f(x)が決まると累積分布関数 (cumulative

distribution function) が

F (x) = Pr(X ≤ x) =∫ x

0

f(t)dt (M1)

のように計算できます。

f(x)も F (x)も数学の分野ではきわめて一般的な概念を表しているわけですが、残念なことに生存時間解析

の分野では余り使われません。代りとなるのが生存関数 (survivor function) であり、ハザード関数 (hazard

function) であるわけです。生存関数 S(x)は累積分布関数の補集合をなすものとして

S(x) = Pr(X > x) =∫ ∞

x

f(t)dt (M2)

*1 xは離散変数である場合も考えられますが、ここでは連続変数の場合に限って議論を進めることにします。

4

Stata11 whitepapers

のように定義されます。すなわち S(x) = 1 − F (x)の関係にあるわけで、1から 0に向かって単調に減少し

て行く関数となります。事象が起きる時点がX > xである確率を意味します。事象として死亡を考えるなら、

時点 xよりも長生きする確率を表す関数と言えます。

一方、ハザード関数 h(x)は条件付き確率 Pr(x ≤ X < x + ∆x|X ≥ x)を使い、

h(x) = lim∆x→0

Pr(x ≤ X < x + ∆x|X ≥ x)∆x

(M3)

のように定義されます。書き直すと

h(x) =1

S(x)lim

∆x→0

Pr(x ≤ X < x + ∆x)∆x

=f(x)S(x)

(M4)

さらに f(x) = −dS(x)dx と書けることに注意すると

h(x) =f(x)S(x)

= − d

dxln[S(x)] (M5)

という関係式を導くことができます。

このハザード関数の意味するところは少々わかりにくいので、若干説明を補足しておきます。ここでも事象

の発生として死亡を考えることにしましょう。f(x)は確率密度関数であるので、十分長い時間が経過すれば

f(x) → 0となります。すなわち死亡はほとんど発生しなくなるということを意味しています。これは時間の

経過と共に観察対象は死滅して行きますから、十分時間が経ったところでは死亡の発生確率はほとんど 0にな

るという客観的事実を表しているに過ぎません。一方、ハザード関数 h(x)はこの f(x)を S(x)で割っていま

す。すなわち、xという時点まで生き残ったという条件のもとでの死亡の発生確率を評価しているわけです。

xが大きな値の場合には死亡という事象はいつ起きてもおかしくないわけですが、その“死亡しやすさ”の尺度

は f(x)単独では表現されません。f(x)を S(x)で割った h(x)こそ、ハザードの起りやすさを表現している

と言えます。

参考までに図 1に対応するWeibull分布のハザード関数をプロットしてみると次のようになります。

図 2 Weibull分布のハザード関数

5

Stata11 whitepapers

p = 0.5の場合には時間の経過と共にリスクが遠のいて行くハザードが表現されるのに対し、p = 4の場合に

は時間の経過と共にリスクが急激に高まって行くハザードが表現されています。一方、p = 1の場合には指数

分布のハザード関数が表現されることになりますが、その場合、ハザードの値は時間によらず一定である点が

特徴的です。

このハザード関数 h(x)に関連して累積ハザード関数 (cumulative hazard function) H(x)が

H(x) =∫ x

0

h(u)du = − ln[S(x)] (M6)

のように定義されます。従って S(x) = exp(−H(x))のように表現することもできます。

参考までにWeibull分布の場合の関数式を記しておくと次のようになります。

f(x) =pxp−1

λp· exp(−(x/λ)p)

S(x) = exp(−(x/λ)γ)

h(x) =γxγ−1

λγ

2. データセットの初期設定

評価版では割愛しています。

3. ノンパラメトリック解析

ある特定の事象が発生するまでの時間 tを 1組の共変量 xk (k = 1, 2, . . .)との絡みで分析したいということ

であれば、それなりのモデル式の設定を伴うので、後述するセミパラメトリック解析、あるいはパラメトリッ

ク解析手法を用いる必要があります。しかし観察対象が全体的に一様である、あるいはグルーピングした場合

には、それぞれのグループ内において観察対象が一様であり、共変量の影響は特に考えなくても良いといった

ケースも考えられます。そのような場合には何のモデル設定も行わず、単に観測された生存時間データから生

存関数やハザード関数を推定するといった手法 — ノンパラメトリック解析 — を用いることができます。

3.1 Kaplan-Meier生存関数

評価版では割愛しています。

3.3 比較検定

評価版では割愛しています。

6

Stata11 whitepapers

4. セミパラメトリック解析

4.1 Cox比例ハザードモデル

生存時間に対する共変量による効果をモデル化するにはいくつかの方法が考えられますが、そのうちの 1つが

乗法的ハザードモデル (multiplicative hazard model) と呼ばれるもので

h(t) = h0(t)g(x) (M10)

のように表現されます。ただし x は共変量ベクトル (x1, . . . , xK) を表すものとします。関数 g(x) としては

種々の選択があり得ますが、通常は exp(β′x)が使用されます。

h(t) = h0(t) exp(β′x) (M11)

ただし β は係数ベクトル (β1, . . . , βK)を表します。

h0(t)として特定の関数形を前提とした場合にはパラメトリック系のモデルが構成されますが、これについて

はセクション 5 で扱います。これに対し、本セクションでの記述対象である Cox 比例ハザードモデル (Cox

proportional hazards model) の場合には、h0(t)に対し特定の関数形を仮定しない形で β の推定が行われま

す。なぜそのようなことが可能になるかについては後述します。モデル式 (M11)の場合、x = 0、すなわち

共変量の値をすべて 0 としたときのハザード関数が h0(t) となるため、h0(t) はベースラインハザード関数

(baseline hazard function) と呼ばれます。

共変量ベクトル xとしては時間 tに依存した x(t) = (x1(t), . . . , xK(t))というモデルを想定することもあり

ますが、本 whitepaperでは xは時間非依存であるとします。このとき、共変量ベクトル xA を持つ観察対象

者と xB を持つ観察対象者について考えてみると、

hA(t) = h0(t) exp(β′xA)

hB(t) = h0(t) exp(β′xB)

と書けるので、hB(t)hA(t)

=exp(β′xB)exp(β′xA)

= exp(β′(xB − xA)) (M12)

という式が導かれます。すなわち、ハザード関数の比は時間によらず一定となることがわかります。式 (M11)

で表されるモデルが“比例”ハザードモデルと呼ばれる所以はこの点にあります。

4.2 部分尤度

評価版では割愛しています。

4.3 Cox比例ハザードモデルの推定例

評価版では割愛しています。

4.4 層別化モデル

評価版では割愛しています。

7

Stata11 whitepapers

5. パラメトリック解析

セクション 4で見てきたセミパラメトリックモデルの場合には、ハザード関数 h0(t)の形状について何の仮定

も置きませんでした。これに対し、パラメトリックモデルの場合には、ハザード関数、もしくは誤差分布の形

状について、関数形を特定した上で推定を行うことになります。使用されるのは stregコマンドですが、こ

れは共変量に対する係数値 β のみならず、関数形状に関連した補助パラメータ (ancillary parameters) の推

定を行う機能も提供します。

5.1 パラメータ化の流儀

評価版では割愛しています。

5.2 パラメトリックモデルの推定例

評価版では割愛しています。

補足1 – グラフ作成コマンド操作

評価版では割愛しています。

¥

8

Stata11 whitepapers

mwp-022

sts - sts系コマンドの用法

sts系のコマンドはノンパラメトリックな生存時間分析を支援するための機能を提供します。sts系のコマン

ドには次のようなものがあります。

◦ sts graph – 生存関数や累積ハザード関数のグラフを作成する

◦ sts list – 生存関数や累積ハザード関数の内容をリスト出力する

◦ sts test – 生存関数の検定を行う

◦ sts generate – 生存関数や累積ハザード関数の推定値を含む新変数を生成する

1. 生存分析関連関数

2. sts系コマンドの用例

2.1 sts list

2.2 sts graph

2.3 sts generate

2.4 グルーピング

2.5 sts test

2.6 推定値の補正

1. 生存分析関連関数

sts系のコマンドが扱う関数には次の 3種類があります。

S(t) 生存関数 (survivor function)

H(t) 累積ハザード関数 (cumulative hazard function)

h(t) ハザード関数 (hazard function)

sts系コマンドの場合、分析はノンパラメトリックな形で行われるため、生存関数の形状に関する仮定は必要

とされません。あくまで観察されたデータに基づき推定が行われます。ただし共変量による影響を定量的な形

でモデル化することはできません。

c⃝ Copyright Math工房; 一部 c⃝ Copyright StataCorp LP (used with permission)

9

Stata11 whitepapers

2. sts系コマンドの用例

2.1 sts list

ここでは Exampleデータセット drugtr.dtaを使用します。

. use http://www.stata-press.com/data/r11/drugtr *1

(Patient Survival in Drug Trial)

このデータセットには 48人の患者に関する生存時間データが記録されています。関係する変数について一部

内容をリスト出力しておくと次のようになります。

. list studytime died drug if n <= 4 | n >= 45, abbreviate(9) separator(4) *2

 48.        39      0      1 47.        35      0      1 46.        34      0      1 45.        33      1      1

  4.         3      1      0  3.         2      1      0  2.         1      1      0  1.         1      1      0

studytime   died   drug

48人中 20人にはプラセボ (placebo) が投与され、残りの 28人には研究対象の試薬が投与されています。そ

れぞれの患者の生存時間が studytimeとして記録されていますが(単位は月)、failure事象変数である died

が 0の場合は途中打切りを意味します。データセットは既に stset済みですが、その設定内容を確認してお

きます。

. stset

last observed exit t =        39earliest observed entry t =         0

      744  total analysis time at risk, at risk from t =         0       31  failures in single record/single failure data       48  obs. remaining, representing

        0  exclusions       48  total obs.

 exit on or before: failureobs. time interval: (0, studytime]     failure event: died != 0 & died < .

­> stset studytime, failure(died). stset

*1 メニュー操作:File ◃ Example Datasets ◃ Stata 11 manual datasets と操作、Survival Analysis and Epidemiological Tables

Reference Manual [ST] の sts の項よりダウンロードする。*2 メニュー操作: Data ◃ Describe data ◃ List data

10

Stata11 whitepapers

すなわち時間変数としては studytimeが、failure変数としては diedが指定されているわけです。

それでは sts listを実行してみます。

• Statistics ◃ Survival analysis ◃ Summary statistics, tests, and tables ◃ List survivor and cumulative

hazard functions と操作

• Mainタブ: Function: List Kaplan-Meier estimate of the survivor function (デフォルト)

図 1 sts listダイアログ - Mainタブ

     4       44      2      0             0.8750    0.0477     0.7427    0.9418     3       45      1      0             0.9167    0.0399     0.7930    0.9679     2       46      1      0             0.9375    0.0349     0.8186    0.9794     1       48      2      0             0.9583    0.0288     0.8435    0.9894

  Time    Total   Fail   Lost           Function     Error     [95% Conf. Int.]Beg.          Net            Survivor      Std.

analysis time _t: studytimefailure _d: died

. sts list

(output omitted)

    39        1      0      1             0.1918    0.0791     0.0676    0.3634    35        2      0      1             0.1918    0.0791     0.0676    0.3634    34        3      0      1             0.1918    0.0791     0.0676    0.3634    33        4      1      0             0.1918    0.0791     0.0676    0.3634

11

Stata11 whitepapers

図 1のダイアログからわかるように sts listは生存関数の Kaplan-Meier推定量をデフォルトで出力してき

ます。studytimeの値が 1から 39の範囲にわたって S(t)の推定値がリスト出力されているのがわかると思

います。

ダイアログ上の Separate on different groups of specified variablesの項でグルーピング変数を指定

すれば、グループ別のリスト出力を得ることができます。

st系のコマンドを実行するとヘッダ部に stset情報が出力されてきます。しかし

. stset, noshow

とコマンド入力しておくとその出力を抑止することができます。

2.2 sts graph

sts listの場合、推定結果は数値のリストとして出力されてきますが、グラフ出力の方がより一般的です。

• Statistics ◃ Survival analysis ◃ Graphs ◃ Survivor and cumulative hazard functions と操作

• Mainタブ: Function: Graph Kaplan-Meier survivor function (デフォルト)

図 2 sts graphダイアログ - Mainタブ

12

Stata11 whitepapers

この場合もデフォルトでは Kaplan-Meier生存関数がグラフ化されることになる点に注意してください。

. sts graph

ダイアログ上の Make separate calculations by group の項でグルーピング変数を指定すれば、グ

ループ別のプロットを得ることができます。

2.3 sts generate

評価版では割愛しています。

2.4 グルーピング

評価版では割愛しています。

2.5 sts test

評価版では割愛しています。

2.6 推定値の補正

評価版では割愛しています。

¥

13

Stata11 whitepapers

mwp-023

stcox - 機能概要と用例

stcoxは最尤法を用いて比例ハザードモデル (proportional hazards models) のフィットを行います。パラメ

トリックやノンパラメトリックな生存時間分析との対比において、セミパラメトリックな分析モデルと呼ばれ

ることもあります。

1. Cox比例ハザードモデル

2. stcoxの用例

2.1 途中打切りなしの場合

2.2 途中打切りありの場合

2.3 時間変動型共変量 – 離散変数の場合

2.4 時間変動型共変量 – 連続変数の場合

2.5 層化推定

2.6 共用 frailtyモデル

補足1

1. Cox比例ハザードモデル

Cox比例ハザードモデルのモデル式は [ST] stcox p124 に記載されたようなもので、ベースラインハザー

ド関数 h0(t)と共変量依存部 exp(xjβ)とが掛け合わされた形になっています。h0(t)の関数形に対して何の

仮定も置かずに推定が実行し得るという点に特徴があります。この点はノンパラメトリックな推定手法と性格

を一にするものがありますが、βについてはパラメトリックな推定が行われます。Cox比例ハザードモデルが

セミパラメトリックな推定手法と呼ばれる所以はこの点にあります。なお、stcox自体からは h0(t)について

の情報は得られませんが、postestimation機能である predictコマンドを用いることによってベースライン

生存関数 S0(t)や累積ハザード関数 H0(t)を求めることができます(図 1参照)。

strata() オプションを指定した場合のモデル式は [ST] stcox p124 に記載のある hi(t) のようになりま

す。この場合には年齢群等のグループごとに別個のベースラインハザード関数を許容した形で推定が行われま

す(層化推定)。ただし exp(xjβ)の部分はグループによらず共通である点に注意してください。

c⃝ Copyright Math工房; 一部 c⃝ Copyright StataCorp LP (used with permission)

14

Stata11 whitepapers

図 1 predictダイアログ

shared() オプションが指定された場合のモデル式は [ST] stcox p140 に記載のある hij(t) のようにな

ります。このモデルは共用 frailty(異質性)モデル (shared frailty model) と呼ばれますが、αi(あるいは

νi = log αi としたときの νi)で表されるグループ固有の変量効果 (random effects) がモデル式中に含まれて

くる点に特徴があります。グループ内の相関をモデル化する際に利用されます。

2. stcoxの用例

2.1 途中打切りなしの場合

ここでは Exampleデータセット kva.dtaを使用します。

. use http://www.stata-press.com/data/r11/kva *1

(Generator experiment)

このデータセット中には発電機の耐久試験の結果が記録されています。

*1 メニュー操作:File ◃ Example Datasets ◃ Stata 11 manual datasets と操作、Survival Analysis and Epidemiological Tables

Reference Manual [ST] の stcox の項よりダウンロードする。

15

Stata11 whitepapers

. list *2

 12.       30     40          1 11.       22     40          0

 10.       55     35          1  9.       40     35          0  8.       52     30          1  7.       54     30          0  6.      100     25          1

  5.       84     25          0  4.      122     20          1  3.       97     20          0  2.      140     15          1  1.      100     15          0

failtime   load   bearings

load は過負荷の量を、bearings は新しいタイプのベアリングを装着していたか否かを表す変数であり、

failtimeが故障が発生するまでの経過時間を意味しています。このデータセットは failtimeを時間変数と

する形で既に stsetが済んでいますが、一応確認しておきます。

. stset

last observed exit t =       140earliest observed entry t =         0

      896  total analysis time at risk, at risk from t =         0       12  failures in single record/single failure data       12  obs. remaining, representing

        0  exclusions       12  total obs.

 exit on or before: failureobs. time interval: (0, failtime]     failure event: (assumed to fail at time=failtime)

­> stset failtime,. stset

以降、stset情報の出力を抑止する意味で

. stset, noshow

を実行しておきます。

このデータに対して stcoxを実行してみます。[ST] stcox p124 に記載されたモデル式において想定する

共変量は x1 = load、x2 = bearingsの 2つであるわけです。

• Statistics ◃ Survival analysis ◃ Regression models ◃ Cox proportional hazards model と操作

• Modelタブ: Independent variables: load bearings

*2 メニュー操作: Data ◃ Describe data ◃ List data

16

Stata11 whitepapers

図 2 stcoxダイアログ- Modelタブ

    bearings    .0636433   .0746609    ­2.35   0.019     .0063855    .6343223        load     1.52647   .2188172     2.95   0.003     1.152576    2.021653

          _t  Haz. Ratio   Std. Err.      z    P>|z|     [95% Conf. Interval]

Log likelihood  =  ­8.577853 Prob > chi2     =    0.0000LR chi2(2)      =     23.39

Time at risk    =          896No. of failures =           12No. of subjects =           12 Number of obs   =        12

Cox regression ­­ Breslow method for ties

Iteration 0:   log likelihood =  ­8.577853Refining estimates:Iteration 5:   log likelihood =  ­8.577853Iteration 4:   log likelihood = ­8.5778991Iteration 3:   log likelihood = ­8.5915211Iteration 2:   log likelihood = ­8.8700259Iteration 1:   log likelihood = ­10.515114Iteration 0:   log likelihood = ­20.274897

. stcox load bearings

stcoxはデフォルトの場合、ハザード比の値を出力してきます。負荷を固定させて考えた場合、bearingsの

値を 0から 1に変化させたときにハザード比が 0.064に下がることが示されています。

17

Stata11 whitepapers

stcoxの出力を係数表示に切り替えるには次のようにコマンド入力します。

. stcox, nohr

    bearings   ­2.754461   1.173115    ­2.35   0.019    ­5.053723   ­.4551981        load    .4229578   .1433485     2.95   0.003     .1419999    .7039157

          _t       Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]

Log likelihood  =  ­8.577853 Prob > chi2     =    0.0000LR chi2(2)      =     23.39

Time at risk    =          896No. of failures =           12No. of subjects =           12 Number of obs   =        12

Cox regression ­­ Breslow method for ties

. stcox, nohr

この場合には引数を何も指定していないので表示が切り替わるだけで stcoxが再実行されるわけではありま

せん*3。β2 = −2.754461と推定されているわけですが、ハザード比による推定値とは

exp(β2) = 0.0636433

という関係がある点に注意してください。

2.2 途中打切りありの場合

今度は Exampleデータセット drugtr.dtaを使用します。

. use http://www.stata-press.com/data/r11/drugtr *4

(Patient Survival in Drug Trial)

このデータセットにはある薬剤の効果に関する 48件のデータが患者当り単一のレコード形式で記録されてい

ます。

. list studytime age drug died if n <= 4 | n >= 45, abbreviate(9) separator(4)

 48.        39    52      1      0 47.        35    48      1      0 46.        34    62      1      0 45.        33    60      1      1

  4.         3    52      0      1  3.         2    59      0      1  2.         1    65      0      1  1.         1    61      0      1

studytime   age   drug   died

*3 nohrオプションは Reporting タブ上の Report coefficients, not hazard ratiosという項目に対応します。*4 メニュー操作:File ◃ Example Datasets ◃ Stata 11 manual datasets と操作、Survival Analysis and Epidemiological Tables

Reference Manual [ST] の stcox の項よりダウンロードする。

18

Stata11 whitepapers

この場合、drug= 1が薬剤を投与した患者を表し、0はプラセボ (placebo) を意味します。また、studytime

は生存月数を、age は調査開始時点における患者の年齢を表す変数です。セクション 2.1 で用いた kva.dta

の場合にはすべてのデータが故障という事象で終わっていたため、stset に際して特に failure 変数の指定

はなかったわけですが、drugtr.dta の場合、観察終了時点で生存していた患者もいるため(途中打切り

(censored))、死亡したのか否かを示す diedという変数が加わっています。念のため stsetに際しての指定

内容を確認しておきます。

. stset

last observed exit t =        39earliest observed entry t =         0

      744  total analysis time at risk, at risk from t =         0       31  failures in single record/single failure data       48  obs. remaining, representing

        0  exclusions       48  total obs.

 exit on or before: failureobs. time interval: (0, studytime]     failure event: died != 0 & died < .

­> stset studytime, failure(died). stset

時間変数としては studytimeが、failure変数としては diedが指定されていたこと、及び死亡した患者数が

48人中 31人であったことが読み取れます。このデータに対して drugと ageを共変量とした形で stcoxを

実行してみます。

• Statistics ◃ Survival analysis ◃ Regression models ◃ Cox proportional hazards model と操作

• Modelタブ: Independent variables: drug age

         age    1.120325   .0417711     3.05   0.002     1.041375     1.20526        drug    .1048772   .0477017    ­4.96   0.000     .0430057    .2557622

          _t  Haz. Ratio   Std. Err.      z    P>|z|     [95% Conf. Interval]

Log likelihood  = ­83.323546 Prob > chi2     =    0.0000LR chi2(2)      =     33.18

Time at risk    =          744No. of failures =           31No. of subjects =           48 Number of obs   =        48

Cox regression ­­ Breslow method for ties

Iteration 0:   log likelihood = ­83.323546Refining estimates:Iteration 3:   log likelihood = ­83.323546Iteration 2:   log likelihood = ­83.324009Iteration 1:   log likelihood = ­83.551879Iteration 0:   log likelihood = ­99.911448

. stcox drug age

19

Stata11 whitepapers

drug の値を 0 から 1 に変化させたときにハザード比が 0.105 に下がることが示されています。一方、変数

ageについては 1年加齢するごとにハザード比が 1.120増加するという結果になっていますが、5年単位の変

化を求めたい場合には、次のように ageの内容を変換することで対応できます。

. replace age = age/5 *5

age was int now float

(48 real changes made)

. stcox drug age, nolog *6

         age    1.764898   .3290196     3.05   0.002     1.224715    2.543338        drug    .1048772   .0477017    ­4.96   0.000     .0430057    .2557622

          _t  Haz. Ratio   Std. Err.      z    P>|z|     [95% Conf. Interval]

Log likelihood  = ­83.323544 Prob > chi2     =    0.0000LR chi2(2)      =     33.18

Time at risk    =          744No. of failures =           31No. of subjects =           48 Number of obs   =        48

Cox regression ­­ Breslow method for ties

. stcox drug age, nolog

2.3 時間変動型共変量 – 離散変数の場合

評価版では割愛しています。

2.4 時間変動型共変量 – 連続変数の場合

評価版では割愛しています。

2.5 層化推定

評価版では割愛しています。

2.6 共用 frailtyモデル

評価版では割愛しています。

補足1 – グラフ作成コマンド操作

評価版では割愛しています。

¥

*5 メニュー操作: Data ◃ Create or change data ◃ Change contents of variable*6 メニュー操作の場合にはMaximizationタブ上で Suppress log を選択します。

20

Stata11 whitepapers

mwp-024

streg - 機能概要と用例

stregは最尤法を用いたパラメトリックな生存時間分析機能を提供します。

1. パラメトリックモデル

2. stregの用例

2.1 Weibull – PHモデル

2.2 Weibull – AFTモデル

2.3 補助パラメータのパラメータ化

2.4 層化推定

2.5 層化推定 – 部分的層化

2.6 Frailtyモデル

2.7 共用 frailtyモデル

1. パラメトリックモデル

パラメトリックな生存分析を行う場合には生存関数の分布形をあらかじめ設定することになります。stregで

は 6種類の分布形が用意されていますが、その内容については [ST] streg p358 の Table 1を参照してく

ださい。またハザード関数の関数形については [ST] streg p359 の Figure 1に示されています。ただし、

◦ 指数分布はWeibull分布の中に含まれる(p = 1の場合に該当)

◦ 一般化ガンマ分布は種々の形状を取り得るため Figure 1には含まれていない

という点に注意してください。

一方、共変量の影響を生存時間に対応させるやり方として AFTモデル (accelerated failure-time model) と

PHモデル (proportional hazards model) の 2種類の選択肢があります。具体的なモデル式については [ST]

streg p357 を参照してください。分布形によっては AFT, PH双方に対応しているものもありますが、い

ずれか一方に限定されるものもあります(Table 1参照)。

c⃝ Copyright Math工房; 一部 c⃝ Copyright StataCorp LP (used with permission)

21

Stata11 whitepapers

2. stregの用例

2.1 Weibull – PHモデル

最初にWeibull 分布を仮定して streg を実行してみます。使用する Example データセットは drugtr.dta

です。

. use http://www.stata-press.com/data/r11/drugtr *1

(Patient Survival in Drug Trial)

このデータセットには 48人の患者に関する生存時間データが途中打切りを含む形で記録されています。

. list studytime age drug died if n <= 4 | n >= 45, abbreviate(9) separator(4) *2

 48.        39    52      1      0 47.        35    48      1      0 46.        34    62      1      0 45.        33    60      1      1

  4.         3    52      0      1  3.         2    59      0      1  2.         1    65      0      1  1.         1    61      0      1

studytime   age   drug   died

48人中 20人にはプラセボ (placebo) が投与され、残りの 28人には研究対象の試薬が投与されています。そ

れぞれの患者の生存時間が studytimeとして記録されていますが(単位は月)、failure事象変数である died

が 0の場合は途中打切りを意味します。

このデータセットは既に stset済みですが、その設定内容を確認しておくと次のようになります。

. stset

last observed exit t =        39earliest observed entry t =         0

      744  total analysis time at risk, at risk from t =         0       31  failures in single record/single failure data       48  obs. remaining, representing

        0  exclusions       48  total obs.

 exit on or before: failureobs. time interval: (0, studytime]     failure event: died != 0 & died < .

­> stset studytime, failure(died). stset

*1 メニュー操作:File ◃ Example Datasets ◃ Stata 11 manual datasets と操作、Survival Analysis and Epidemiological Tables

Reference Manual [ST] の stcox の項よりダウンロードする。*2 メニュー操作: Data ◃ Describe data ◃ List data

22

Stata11 whitepapers

以降、stset情報の出力を抑止する意味で

. stset, noshow

を実行しておきます。

stregの実行に際してはWeibull(PH)モデルを前提とすることにします。この場合、ハザード関数に関する

モデル式はh(t) = ptp−1 · exp(β1 · drug + β2 · age) (1)

で与えられることになります。

• Statistics ◃ Survival analysis ◃ Regression models ◃ Parametric survival models と操作

• Modelタブ: Independent variables: drug age

Survival distribution: Weibull

図 1 stregダイアログ- Modelタブ

• Maximizationタブ: Iteration log: Suppress

23

Stata11 whitepapers

         1/p    .5942651   .0825456                       .452632    .7802168           p    1.682751   .2337403                      1.281695    2.209301

       /ln_p    .5204297   .1389037     3.75   0.000     .2481834     .792676

         age    1.127725   .0419062     3.23   0.001     1.048511    1.212925        drug    .1111431    .045433    ­5.37   0.000     .0498803    .2476487

          _t  Haz. Ratio   Std. Err.      z    P>|z|     [95% Conf. Interval]

Log likelihood  = ­42.931335 Prob > chi2     =    0.0000LR chi2(2)      =     35.39

Time at risk    =          744No. of failures =           31No. of subjects =           48 Number of obs   =        48

Weibull regression ­­ log relative­hazard form

. streg drug age, dist(weibull) nolog

デフォルトでは PHモデルが仮定されます。AFTモデルを前提としたい場合には図 1のModelタブ上で Use

accelerated failure-time metricを選択してください。stregの出力からは exp(β̂1) = 0.111, exp(β̂2) = 1.128

であることが読み取れます。またモデル式 (1)における pの推定値としては p̂ = 1.68という値が得られてい

る点に注意してください。

stregの出力を係数表示に切り替えるには次のようにコマンド入力します。

. streg, nohr

         1/p    .5942651   .0825456                       .452632    .7802168           p    1.682751   .2337403                      1.281695    2.209301

       /ln_p    .5204297   .1389037     3.75   0.000     .2481834     .792676

       _cons   ­10.58396   2.326271    ­4.55   0.000    ­15.14337   ­6.024553         age    .1202027   .0371599     3.23   0.001     .0473707    .1930348        drug   ­2.196936   .4087791    ­5.37   0.000    ­2.998129   ­1.395744

          _t       Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]

Log likelihood  = ­42.931335 Prob > chi2     =    0.0000LR chi2(2)      =     35.39

Time at risk    =          744No. of failures =           31No. of subjects =           48 Number of obs   =        48

Weibull regression ­­ log relative­hazard form

. streg, nohr

この場合には引数を何も指定していないので表示が切り替わるだけで stregが再実行されるわけではありま

せん*3。

*3 nohrオプションは Reporting タブ上の Do not report hazard ratiosという項目に対応します。

24

Stata11 whitepapers

それでは stcurveを使用して生存関数のプロットを行ってみます。その際、ageについては平均値に固定し、

drugについては 0の場合と 1の場合に分けて生存関数をプロットすることにします。

• Statistics ◃ Survival analysis ◃ Regression models ◃ Plot survivor, hazard, cumulative hazard, or

cumulative incidence function と操作

• Mainタブ: Function: Survivor (デフォルト)

Evaluate function at the value of the specified covariates and mean of unspecifed

covariates: •Curve 1: drug = 0 Curve 2: drug = 1

図 2 stcurveダイアログ - Mainタブ

. stcurve, survival at1( drug=0 ) at2( drug=1 )

25

Stata11 whitepapers

これに対し stcoxを用いて比例ハザードモデルをフィットさせたときの生存関数は次のようになります。

. stcox drug age, nolog *4

         age    1.120325   .0417711     3.05   0.002     1.041375     1.20526        drug    .1048772   .0477017    ­4.96   0.000     .0430057    .2557622

          _t  Haz. Ratio   Std. Err.      z    P>|z|     [95% Conf. Interval]

Log likelihood  = ­83.323546 Prob > chi2     =    0.0000LR chi2(2)      =     33.18

Time at risk    =          744No. of failures =           31No. of subjects =           48 Number of obs   =        48

Cox regression ­­ Breslow method for ties

. stcox drug age, nolog

*4 メニュー操作: Statistics ◃ Survival analysis ◃ Regression models ◃ Cox proportional hazards model

26

Stata11 whitepapers

. stcurve, survival at1( drug=0 ) at2( drug=1 )

2.2 Weibull – AFTモデル

評価版では割愛しています。

2.3 補助パラメータのパラメータ化

評価版では割愛しています。

2.4 層化推定

評価版では割愛しています。

2.5 層化推定 – 部分的層化

評価版では割愛しています。

2.6 Frailtyモデル

評価版では割愛しています。

2.7 共用 frailtyモデル

評価版では割愛しています。

¥

27