Cox回归模型【生存分析】

时间:2022-12-03 10:53:55

参考:《复杂数据统计方法——基于R的应用》 吴喜之

在生存分析中,研究的主要对象是寿命超过某一时间的概率。还可以描述其他一些事情发生的概率,例如产品的失效、出狱犯人第一次犯罪、失业人员第一次找到工作、青少年第一次吸毒等等。

生存函数S(t):

S(t)=P(T>t)=1-P(T<=t),t>0

T:表示寿命的随机变量

t:特定时间

综合生存函数图:用到包survival

案例:口腔癌数据

实验分成两组:

TX=1:仅放疗

TX=2:放疗+化疗

#读取数据
u=read.csv("pharynx1.csv")
#因子化定性变量
x=:
(x=x[-c(,)]) #去掉第五个和第11个(定性变量的下标)
for(i in x) u[,i]=factor(u[,i]) #把定性变量从数值型转换成因子型
#回归分析
a=lm(TIME~.,data=u)
summary(a)

Cox回归模型【生存分析】

R2和调整R2不高,结果不理想。同时正态性条件不满足,所以检验得到的p-值也没有多大意义。

对TIME做指数变换

Box-Cox变换是统计建模中常用的一种数据变换,用于连续的响应变量不满足正态分布的情况。

Cox回归模型【生存分析】

MASS包中的boxcox()函数可以寻找λ。

#BOX-COX变换
library(MASS)
b=boxcox(TIME~.,data=u)
I=which(b$y==max(b$y)) #which用于找到值在数组中的位置 使对数似然最大的λ位置
b$x[I]

 Cox回归模型【生存分析】

尝试用TIME的0.4次方作为因变量来拟合数据

a=lm(TIME^0.4~INST+SEX+TX+AGE+COND+T.STAGE+N.STAGE+STATYS,data=u)
b=step(a)
summary(b)
anova(b)
shapiro.test(b$res)

Cox回归模型【生存分析】

拟合并不好。