現在、私が作成した ggrcs パッケージの新しいバージョン 2.8 が CRAN で公開されており、現在、ロジスティック回帰 (ロジスティック回帰)、cox 回帰、多重線形回帰をサポートしています。個別の RCS カーブ (制限付き 3 次スプライン) を描画するための singlercs 関数を追加しました。
必要に応じてコードを使用してインストールできます
install.packages("ggrcs")
古いバージョンがインストールされている場合は、Rstudio を通じてアップグレードして、
最新バージョンにアップグレードできます。
一部のファンから「ヒストグラムの密度関数は必要ないので、rcs だけを描画する関数を作りたい」という個人的なメッセージが寄せられ、バージョン 2.9 で singlercs 関数が追加されました。 RCS の描画: 描画方法は基本的に ggrcs と同じですが、ヒストグラムと左軸がありません。新しい機能のみ紹介しますので、その他の機能については過去記事を参照してください。
まずパッケージとデータをインポートします。ここでは、ggrcs パッケージに付属する喫煙データを使用します。
library(rms)
library(ggplot2)
library(scales)
library(ggrcs)
dt<-smoke
dd<-datadist(dt)
options(datadist='dd')
fit<- cph(Surv(time,status==1) ~ rcs(age,4)+gender, x=TRUE, y=TRUE,data=dt)
これは R パッケージに付属する喫煙データです。年齢と喫煙率の関係を理解したいとします。
singlercs(data=dt,fit=fit,x="age")
本当は最初に横線を入れたかったのですが、後から修正するのに不便なので、よく考えたら入れませんでした。画像生成後に追加しても大丈夫です。これも非常に便利で、線のスタイルを柔軟に変更することもできて便利です。
p<-singlercs(data=dt,fit=fit,x="age")
p+geom_hline(yintercept=1, linetype=2,linewidth=1)
私の自作のcut.tab関数を使用してターニングポイントを生成することもできます
fit1 <-coxph(Surv(time,status==1) ~ age,data=dt)
cut.tab(fit1,"age",dt)
次に、回転点線を追加します
p+geom_vline(aes(xintercept=38.449),colour="#BB0000", linetype="dashed")+
geom_hline(yintercept=1, linetype=2,linewidth=1)
転換点のテーブルが生成され、年齢が 38.449 歳で転換し、以前は 0.956、その後は 1.055 の OR であることが示されています。尤度比検定が 0.05 未満の場合は、曲線に意味があることを示します。
Cut.tab関数の具体的な使い方については「cox回帰RCS閾値効果関数cut.tab1.3リリース 」を参照してください。Singlercs
関数は線の色や信頼区間の変更など柔軟に変更可能です。
singlercs(data=dt,fit=fit,x="age",ribcol="green")
信頼できる間隔の透明性を変更する
singlercs(data=dt,fit=fit,x="age",ribcol="green",ribalpha=0.2)
軸とタイトルを変更する
singlercs(data=dt,fit=fit,x="age",histcol="blue",
histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",ylab="死亡率",title ='年龄与死亡率关系')
p値を加算する
singlercs(data=dt,fit=fit,x="age",histcol="blue",
histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",
ylab="死亡率",title ='年龄与死亡率关系',P.Nonlinear=T,Pvalue="<0.05")
P値の表示位置を調整する
singlercs(data=dt,fit=fit,x="age",histcol="blue",
histbinwidth=1,ribcol="green",ribalpha=0.5,xlab ="年龄",
ylab="死亡率",title ='年龄与死亡率关系',P.Nonlinear=T,Pvalue="<0.05",xP.Nonlinear=25,yP.Nonlinear=10)
分類 (2 つ) の RCS 曲線を紹介します。色を設定しない場合、デフォルトは赤と緑です。
singlercs(data=dt,fit=fit,x="age",group="gender")
色を変える
singlercs(data=dt,fit=fit,x="age",group="gender",groupcol=c("red","blue"))
透明度を変更する
singlercs(data=dt,fit=fit,x="age",group="gender",groupcol=c("red","blue"),ribalpha=0.5)
軸とタイトルを変更する
singlercs(data=dt,fit=fit,x="age",group="gender",groupcol=c("red","blue"),ribalpha=0.5,
xlab ="年龄",ylab="死亡率",title ='年龄与死亡率关系')
P 値を追加し、画像内の P 値の位置を変更します
singlercs(data=dt,fit=fit,x="age",group="gender",groupcol=c("red","blue"),ribalpha=0.5,
xlab ="年龄",ylab="死亡率",title ='年龄与死亡率关系',P.Nonlinear=T,Pvalue="<0.05",
xP.Nonlinear=25,yP.Nonlinear=7)
タブ名の変更
singlercs(data=dt,fit=fit,x="age",group="gender",groupcol=c("red","blue"),ribalpha=0.5,
xlab ="年龄",ylab="死亡率",title ='年龄与死亡率关系',P.Nonlinear=T,Pvalue="<0.05",
xP.Nonlinear=25,yP.Nonlinear=7,twotag.name= c("m","f"))
さて、新しいバージョンはここで紹介されており、私はここでcox回帰モデルを紹介しました。ロジスティック回帰と線形回帰の方法も同じですが、密度マップを描画する必要がないため、singlercs 関数によって描画される線形回帰の rcs の方が ggrcs の関数よりも優れていることに注意してください。 ggrcs を使用すると、rcs 曲線は理想的ではないため、singlercs 関数を一度に使用することを検討できます。
ご提案がある場合、または R パッケージに問題がある場合は、ぜひお知らせください。