gpt4 book ai didi

r - 偏差和分数残差图

转载 作者:行者123 更新时间:2023-12-04 10:08:36 25 4
gpt4 key购买 nike

我正在尝试为比例风险模型绘制数据(kidtran)上的偏差和分数残差图。
1- 我尝试使用以下代码绘制 coxph 模型的偏差残差图和协变量(种族、性别和种族交互的性别):

library(KMsurv)
data(kidtran)
kidtran

####Deviance Residuals####
fit<-coxph(Surv(time, delta)~race+gender+race*gender, method="breslow", data=kidtran)
resid.dev<-resid(fit,type="deviance")
par(mfrow = C(1,1))
plot(resid.dev,xlab = "Risk Score", ylab = "Deviance Residual", lwd=1 )
title("Deviance Residual")
resid.dev
abline(h=2.5, col="blue")
abline(h=-2.5, col="blue")


它应该是这样的:
enter image description here

这是我得到的结果。
enter image description here

除了运行后提示错误
par(mfrow = C(1,1))

C(1, 1) 中的错误:对象不可解释为因子

2-我确实为每个协变量绘制了一个分数残差图:
##score for interaction
fit<-coxph(Surv(time, delta)~race+gender+race*gender, method="breslow", data=kidtran)
resid.score<-resid(fit,type="score")
par(mfrow = C(1,2))
plot(resid.score)
resid.score
abline(h=2.5, col="blue")
abline(h=-2.5, col="blue")

##score for race
fit1<-coxph(Surv(time, delta)~race, method="breslow", data=kidtran)
resid.score<-resid(fit1,type="score")
par(mfrow = C(1,2))
plot(resid.score)
resid.score
abline(h=2.5, col="blue")
abline(h=-2.5, col="blue")

##score for gender
fit2<-coxph(Surv(time, delta)~gender, method="breslow", data=kidtran)
resid.score<-resid(fit2,type="score")
par(mfrow = C(1,2))
plot(resid.score)
resid.score
abline(h=2.5, col="blue")
abline(h=-2.5, col="blue")


结果应如下所示:
enter image description here

enter image description here
enter image description here

我得到了不同的结果。问题是来自我用于绘图的代码还是来自 coxph 代码?

最佳答案

我的猜测是风险评分应该是预测(如果我没有记错我的统计数据,风险比?),在你上面的代码中,残差只是一个向量,所以:

##note it's a small c for par
par(mfrow = c(1,1))
plot(predict(fit),resid.dev,xlab = "Risk Score",
ylab = "Deviance Residual", lwd=1 ,main="Deviance Residual")
abline(h=2.5, col="blue")
abline(h=-2.5, col="blue")

enter image description here

对于第二个图,您需要在 x 轴上绘制观察次数:
fit<-coxph(Surv(time, delta)~race+gender+race*gender, method="breslow",data=kidtran)
resid.score<-resid(fit,type="score")
par(mfrow = c(1,3))
for(i in colnames(resid.score))
plot(1:nrow(resid.score),resid.score[,i],main=i,xlab="obs no")

enter image description here

关于r - 偏差和分数残差图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61448202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com