打ち切りデータのコックス比例ハザード モデル
この例では、コックス比例ハザード モデルを作成し、予測子変数の有意性を評価します。
手順 1. 標本データを読み込みます。
標本データを読み込みます。
load readmissiontimes応答変数は ReadmissionTime で、100 人の患者の再入院時間を示します。予測子変数は、Age、Sex、Weight および各患者の喫煙ステータスを示す Smoker です。1 は患者が喫煙者であることを示し、0 は患者が非喫煙者であることを示します。列ベクトル Censored には各患者の打ち切り情報が含まれ、1 は打ち切られたデータを示し、0 は正確な再入院時間が観測されることを示します。このデータは、シミュレーションされたものです。
手順 2. コックス比例ハザード関数を近似します。
打ち切りを考慮して、変数 Sex を予測子変数として使用するコックス比例ハザード関数を近似します。
X = Sex;
[b,logl,H,stats] = coxphfit(X,ReadmissionTime,'censoring',Censored);Sex 項の統計的な有意性を評価します。
stats
stats = struct with fields:
covb: 0.1016
beta: -1.7642
se: 0.3188
z: -5.5335
p: 3.1392e-08
csres: [100×1 double]
devres: [100×1 double]
martres: [100×1 double]
schres: [100×1 double]
sschres: [100×1 double]
scores: [100×1 double]
sscores: [100×1 double]
LikelihoodRatioTestP: 5.9825e-09
値 p は、Sex 項が統計的に有意であることを示します。
対数尤度値に別の名前を付けて保存します。これを使用して、拡張されたモデルの有意性を評価します。
loglSex = logl
loglSex = -262.1365
手順 3. 年齢と体重をモデルに追加します。
Sex、Age および Weight の変数をもつコックス比例ハザード モデルを当てはめます。
X = [Sex Age Weight];
[b,logl,H,stats] = coxphfit(X,ReadmissionTime,'censoring',Censored);項の有意性を評価します。
stats.beta
ans = 3×1
-0.5441
0.0143
0.0250
stats.p
ans = 3×1
0.4953
0.3842
0.0960
他の項に対して調整されている項はどれも、統計上有意ではありません。
対数尤度比を使用して項の有意性を評価します。尤度比統計を使用して新しいモデルの有意性を評価できます。最初に、Age および Weight の項を含まないモデルの対数尤度統計と、Sex、Age および Weight の項を含むモデルの対数尤度との差を見つけます。
-2*[loglSex - logl]
ans = 3.6705
次に、尤度比統計量の 値を計算します。尤度比統計には、評価されている予測子変数の数と自由度が等しい状態のカイ二乗分布が含まれます。この例の自由度は 2 です。
p = 1 - cdf('chi2',3.6705,2)p = 0.1596
0.1596 という 値は、モデルに Sex 項がある場合に、Age および Weight 項が統計的に有意ではないことを示します。
手順 4. Smoker をモデルに追加します。
Sex および Smoker の変数をもつコックス比例ハザード モデルを当てはめます。
X = [Sex Smoker]; [b,logl,H,stats] = coxphfit(X,ReadmissionTime,... 'censoring',Censored);
モデルにおける項の有意性を評価します。
stats.p
ans = 2×1
0.0000
0.0148
このモデルを、Sex が唯一の項である最初のモデルと比較します。
-2*[loglSex - logl]
ans = 5.5789
尤度比統計量の 値を計算します。尤度比統計には、自由度が 1 の状態のカイ二乗分布が含まれます。
p = 1 - cdf('chi2',5.5789,1)p = 0.0182
0.0182 という 値は、他の項がモデルに含まれていても Sex と Smoker が統計的に有意であることを示します。Sex および Smoker を含むモデルの方が、Sex のみを含むモデルと比較して高い近似を示します。
係数推定値を要求します。
stats.beta
ans = 2×1
-1.7165
0.6338
既定のベースラインは X の平均であるため、ハザード率の最終モデルは次のようになります。
ベースライン 0 でコックス比例ハザード モデルを当てはめます。
X = [Sex Smoker]; [b,logl,H,stats] = coxphfit(X,ReadmissionTime,... 'censoring',Censored,'baseline',0);
ハザード率のモデルは次のようになります。
係数推定値を要求します。
stats.beta
ans = 2×1
-1.7165
0.6338
係数は影響を受けませんが、ベースラインが X の平均である場合とハザード率が異なります。