問題タブ [cox-regression]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cross-validation - 外部データを使用した生存モデルの検証
Cox モデルを構築および検証するための 2 つのデータ セット (トレーニングと検証) があります。
トレーニング データ セットを使用して、段階的選択法を使用して cox モデルを適合させました。
モデルの重要な変数は、検証モデルに含まれる唯一の変数です。これは正しいアプローチですか?
モデルを検証しているときに、検証モデルでは変数が重要ではなく、cox モデルの仮定も成り立たないことに気付きました (検証データの仮定を確認しました)。変数が重要ではないという事実を無視して、検証データのモデルの仮定に関する問題を修正する必要がありますか?
第三に、トレーニング データと検証データの両方で、3 つのグループを持つ変数「処理」があります。トレーニングでは、グループは標準、新薬、および混合物ですが、検証データでは、グループは標準、新薬、および X (トレーニング データでは混合物とは異なる治療法です) です。この変数を両方のモデルに含めるのは正しいですか、それとも一致しないグループを除外する必要がありますか? トレーニング データからの混合物と検証データからの X の混合物、またはそのように使用する必要がありますか? これが私の分析にどのように影響するかはわかりません。
ご回答ありがとうございます。
r - Cox PH モデリングと時変依存性による予測
coxph() と predict(Surv()) の使用に関していくつか質問があります。私の質問が少し長いことは承知しており、十分に説明できていないかもしれませんが、コメントや提案をいただければ幸いです。
Cox PH モデルと住宅の屋根修理の予測を作成しようとしています。5 つの入力変数 (共変量) があります。
House_Age (開始とも呼ばれる)、House_Price、Roof_Material_Grp_New、Land_Ownership_Status_Grp、Living_Status_Grp
名前が示すように、最初の 2 つは数値変数で、最後の 3 つはカテゴリ変数です。私の問題は、House_Age ハザードを時間に依存させたいということです。私は、House_Age の 3 年ごとに「データ分割」を行うことにしました (つまり、House_Age は変数 Start に変わります)。たとえば、7 年後にイベントが発生した場合、データは次のようになります。
Start は House_Age と同じです。開始グループの各値の推定値でわかるように、約 40 年まで線形依存性があるように見えたので、最大 Start/House_Age 40 と線形関係を持つことを選択しました。
モデルは、0.1916 の Start 変数の線形係数と 1.211 の指数値 coef exp(coef) se(coef) z Pr(>|z|)
Start 1.916e-01 1.211e+00 6.817e-03 でうまくいきます。 28.112 < 2e-16 ***
分離された Start/House_Age を見ると、ハザードは毎年 21% ずつ増加しています - これは正しいですか? 私の問題は、たとえば1年、5年、10年の「修復」確率を予測したいということです。まず、入力として survfit とゼロ ベクトルを使用して、ベースライン ハザード関数を見つけようとします。
ここで、Abt_Baseline には、数値変数のゼロとグループのゼロレベル グループ値が含まれます。これから、time=1、5、および 10 (1 年のみが表示されます) の累積ハザードを見つけ、これに予測関数を使用して見つかった「lp」予測の指数を掛けます。
1 年間の予測:
時間依存の入力がなくても、ハザードは Start (=House_Age) 変数の関数として将来変化する場合は問題ありません。私は Start の将来の値 (毎年 1 ずつ増加) を知っているので、予測期間にわたって何らかの形で統合できると思います。だから私は2つの主な質問があります:
- これは、モデリングと予測 (の一部) を行うための賢明な方法だと思われますか?
- はいの場合 - 変化する (増加する) House_Age/Start ハザードに関して予測期間にわたって統合を行うにはどうすればよいですか?
誰でも私を助けることができますか?
r - Q: R の最大検定統計量を使用して Cox PH モデルで p 値を計算する方法は?
非常に堅牢な推定値を得るために、最大検定統計量に基づいて Cox PH モデル内で p 値を計算することに興味があります。誰もこれを経験していますか?
Firth のペナルティ付き尤度を組み込んだ R パッケージ 'coxphf' で少し遊んでみましたが、firth=FALSE を選択した場合と、'survival' で標準の coxph 関数を使用した場合では、異なる係数と p 値が得られるようです。
私はこれについて完全に迷っていることを割り引かないので、どんなアドバイスも役に立ちます.
ありがとう!
r - coxph コマンドの時間変換関数のデフォルトは何ですか?
簡単な紹介:
コックス比例ハザード (PH) モデルは、パッケージのcoxph
関数で推定できます。survival
このタイプのモデルから適切な結果を得るための明らかな要件は、ハザードが比例している、つまり、ハザードが時間とともに一定であることです。これが特定の変数に当てはまらない場合は、この変数の係数を時変にすることで解決できます。(現在、これは技術的に拡張された Cox モデルです。) これは、tt()
その変数に を追加し、時間の経過に伴う関数を指定することによって行われます ( vignette("timedep", package = "survival")
19 ページ以降を参照)。
質問:
関数を指定せずに を使用すると、どの関数が使用されtt()
ますか?
次に例を示します。
ph.karno
は PH の仮定 (p 値が小さい) に違反しているため、以下を追加しますtt()
。
tt()
これで PH の仮定は満たされましたが、関数が実際に何をしたかはわかりません。tt = function(x, t, ...) x*t
、 tt = function(x, t, ...) x + t
、などの一般的に使用される関数をいくつか試しtt = function(x, t, ...) x*log(t)
ました。しかし、すべてが異なる結果をもたらしました (そして、PH 違反を修正できませんでした)。
どんな助けでも大歓迎です。
sas - Proc PHREGで開発されたコーディングモデル
SAS proc phreg 手順を使用して COX モデルを開発しました。proc プロシージャを使用して共変量を使用してスコアリングする方法を知っています。モデルを単純な SAS コードに変換するにはどうすればよいですか?
ありがとう。
r - coxph から累積ハザード比の出力を取得するにはどうすればよいですか?
coxph から累積ハザード比の出力を取得するにはどうすればよいですか?
私は自分のコックスモデルを持っています
出力を取得します
私はハザード比を手動で計算できることを知っていますhr = exp(-0.004140)
とci= exp(-0.004140-1.96*0.000905)
、exp(-0.004140+1.96*0.000905)
これにより、信頼区間で 1 単位増加する HR が得られます。
結果を vector または data.frame として返す関数はありますか? 優先的に、関心のあるユニットの数を定義できれば、
somefunction(coxfit, unit_step)
累積ハザード比を計算するだけで結構です
r - R の coxph: if (any(infs)) warning(paste("Loglik converged before variable " のエラー)
これは別のスレッドで同様の質問があったことを知っています。ただし、提案された解決策をコードに追加しましたが、それでも機能しませんでした:
エラーメッセージは次のとおりです。
人々を混乱させたくないので、さらに情報が必要な場合はお知らせください。入力データ ファイルの概要を教えてください。このエラーの原因が何であるかはまったくわかりません。
ご協力ありがとうございます。
よろしくお願いします