シェーンフェルト残差が良くない場合の比例ハザード回帰モデルのオプションは何ですか?


15

を使用してRでCox比例ハザード回帰を実行していcoxphます。これには多くの変数が含まれています。マーチンゲール残差は見栄えが良く、シェーンフェルト残差はすべての変数のALMOSTに最適です。シェーンフェルトの残差が平坦でない3つの変数があり、変数の性質は、時間とともに変化することが理にかなっています。

これらは私があまり興味を持たない変数なので、階層にすると良いでしょう。ただし、それらはすべて連続変数であり、カテゴリ変数ではありません。そのため、私は地層が実行可能なルートではないと認識しています*。ここで説明したように、変数と時間の相互作用を構築しようとしましたが、エラーが発生します。

  In fitter(X, Y, strats, offset, init, control, weights = weights,  :
  Ran out of iterations and did not converge

私はほぼ1000個のデータポイントで作業しており、それぞれ多くの要因を持つ6個の変数で作業しているので、このデータをスライスしてさいの目に切る方法の限界を押し上げているように感じます。残念ながら、含まれる変数を減らして試したより単純なモデルはすべて明らかに悪化しています(例:シェーンフェルトの残差は、変数が増えるとより汚れやすくなります)。

私のオプションは何ですか?私はこれらの特定の不適切な動作の変数を気にしないので、それらの出力を単に無視したいのですが、それは有効な解釈ではないと思います!

* 1つは連続、1つは100を超える範囲の整数、1つは6の範囲の整数です。おそらくビニングですか?


2
時間依存変数の時間相互作用で拡張Coxモデルを使用するのはどうですか?
カーク

時変共変量オプション(Stataの-tvc-など)の検討はどうですか?
カルロラザロ

回答:


1

最もエレガントな方法は、ベースラインハザードがどのように見えるかを知っている場合、パラメトリック生存モデル(Gompertz、Weibull、Exponential、...)を使用することです。

Coxモデルを使い続けたい場合は、時間依存係数を持つ拡張coxモデルを使用できます。時間依存の共変量を持つ拡張coxモデルもあることに注意してください-これらは問題を解決しません!

Rについては、次を参照してください。 http //cran.r-project.org/web/packages/survival/vignettes/timedep.pdfをください。


1

いくつかのアイデア-

1)Royston-Parmarモデリングアプローチ(例:http: //journals.plos.org/plosone/article?id=10.1371/journal.pone.0047804 およびその中の参照)を試してください。有用な結果が得られました。

2)連続変数のセンタリングと標準化は、数値的に有用です。

3)多くのレベルを持つ因子を持つ多くのモデルでは、基本的にデータがないいくつかのレベルがあります。これらを削除するためにレベルをマージしますが、優れた実質的な基準に基づいて、非常に役立ちます。

幸運を!


1

基礎となる時間との相互作用を使用してもうまくいかない場合は、ステップ関数を試すことができます(詳細については、Therneauの2016 vignett eを参照してください)。

ステップ関数は、特定の間隔で特定の係数に層化されます。問題のある共変量に対してプロットされたシェーンフェルト残差を確認した後(つまりplot(cox.zph(model.coxph)))、線の角度が変化する場所を視覚的に確認する必要があります。ベータが著しく異なると思われる1つまたは2つのポイントを見つけてください。これが時間10と20に発生したと仮定します。したがって、前述の時間に特定のデータモデルグループのデータフレームを作成するパッケージsurvSplit()からデータをsurvival作成します。

step.data <- survSplit(Surv(t1, t2, event) ~ 
                      x1 + x2,
                      data = data, cut = c(10, 20), episode = "tgroup")

そして、問題のある変数との相互作用として関数を使用cox.phしてモデルを 実行しstrataます(時間との相互作用のように、時間または階層の主な効果を追加しないでください)。

> model.coxph2 <- coxph(Surv(t1, t2, event) ~ 
                          x1 + x2:strata(tgroup), data = step.data)

そしてそれは助けになるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.