複雑なサンプリング設計データの cox 回帰生存曲線を描画するための超詳細な R 言語 svykm 関数 (Kaplan-Meier)

前回の記事「R 言語による複雑なサンプリング設計の Cox 回帰生存曲線 (Kaplan-Meier) の描画」で、jskm パッケージの svykm 関数を使用して複素サンプリング設計データの Cox 回帰生存曲線 (Kaplan-Meier) を描画する方法を紹介しました。データ」ですが、ファンの方からはまだ詳しくない、もっと詳しく知りたいという方もいらっしゃいます。今日は引き続き紹介していきます。
まず、R パッケージとデータをインポートします

library(jskm)
library(survey)
library(jskm)
pbc<-read.csv("E:/r/test/pbc.csv",sep=',',header=TRUE) 

ここに画像の説明を挿入
これは原発性胆汁性胆管炎のデータです。公式アカウントの返信: 胆管炎データ、データは入手可能です。データは
後で使用するいくつかの変数について説明します。年齢: 年齢、trt: 治療計画: 1D ペネム、2 プラセボ、浮腫: 浮腫、状態: 結果変数 0/1/2 は再検討、移植、死亡を意味します。
最初に小さな操作を実行して、予測値を生成し、次の操作を待ちます。気に入らない場合は、この部分をスキップしても問題ありません。後続の操作には影響しません。

pbc$randomized <- with(pbc, !is.na(trt) & trt>0)
biasmodel <- glm(randomized~age*edema,data=pbc)
pbc$randprob <- fitted(biasmodel)

予測値 randprob を生成したら、それを正式に分析できます。まず、調査データを生成します。

dpbc <- svydesign(id=~1, prob=~randprob, strata=~edema, data=subset(pbc,randomized))

svykm 関数を直接使用して予測値を生成します。ここでも信頼区間を存続する必要があります。

s1 <- svykm(Surv(time,status>0)~sex, design=dpbc,se=T)

ここで、描画に svyjskm 関数を直接使用します。

svyjskm(s1)

ここに画像の説明を挿入
X 軸、Y 軸のラベルとタイトルを変更する

svyjskm(s1,xlabs = "时间",ylabs = "生存率",main = "时间与生存率关系图")

ここに画像の説明を挿入
凡例を変更する

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",ystratalabs=c("男","女"))

ここに画像の説明を挿入
X 軸の範囲を制限し、Y 軸も同様に制限します

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),xlims=c(0,3000))

ここに画像の説明を挿入
Y 軸をパーセンテージで表示するように変更します。

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),surv.scale="percent")

ここに画像の説明を挿入
表示される時間軸ポイントの数を変更します。デフォルトは 7 ポイントです。

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700)

ここに画像の説明を挿入
プロットで P 値を生成する

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T)

ここに画像の説明を挿入
テキスト内の P 値の位置とフォント サイズを調整する

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T,pval.coord=c(1000,0.4),pval.size=8)

ここに画像の説明を挿入
P 値の後にログランクを追加します

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T,
        pval.coord=c(1000,0.4),pval.testname=T)

ここに画像の説明を挿入
凡例の位置を調整する

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T,
        pval.coord=c(1000,0.4),pval.testname=T,legendposition=c(0.6,0.8))

ここに画像の説明を挿入
凡例を表示しない

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T,
        pval.coord=c(1000,0.4),pval.testname=T,legendposition=c(0.6,0.8),legend=F)

ここに画像の説明を挿入
カラースタイルを変更します。デフォルトは Set1 です。

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T,
        pval.coord=c(1000,0.4),pval.testname=T,linecols="Set2")

ここに画像の説明を挿入
破線は破線を設定します。1 本の線しか設定できないようです

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T,
        pval.coord=c(1000,0.4),pval.testname=T,linecols="Set2",dashed=T)

ここに画像の説明を挿入
累積発生率関数を表示する

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T,
        pval.coord=c(1000,0.4),pval.testname=T,linecols="Set2",cumhaz=T)

ここに画像の説明を挿入
ggpubr::ggarrange 関数を呼び出してテーブルを作成することで、多くのインスピレーションが得られました。

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T,
        pval.coord=c(1000,0.4),pval.testname=T,linecols="Set2",table=T)

ここに画像の説明を挿入
表の下の字幕名を変更します

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T,
        pval.coord=c(1000,0.4),pval.testname=,
        linecols="Set2",table=T,label.nrisk="生存人数")

ここに画像の説明を挿入
リスクのある数字のフォント サイズを設定します。デフォルトは 10 です。

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T,
        pval.coord=c(1000,0.4),pval.testname=T,
        linecols="Set2",table=T,label.nrisk="生存人数",size.label.nrisk=12)

ここに画像の説明を挿入
曲線にパーセンテージ表示を追加する

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T,
        pval.coord=c(1000,0.4),pval.testname=T,
        linecols="Set2",table=T,label.nrisk="生存人数",size.label.nrisk=12,showpercent = T)

ここに画像の説明を挿入
Cut.landmark は新しいランドマークを設定することです

svyjskm(s1,xlabs = "时间",ylabs = "生存率",ystrataname = "性别",
        ystratalabs=c("男","女"),timeby=700,pval=T,
        pval.coord=c(1000,0.4),pval.testname=T,
        linecols="Set2",table=T,label.nrisk="生存人数",size.label.nrisk=12,showpercent = T,cut.landmark=2100)

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/dege857/article/details/130458424