是否有人知道似然比测试,如lmtest包中的lrtest,适用于使用coxph生成的cox比例风险模型?lrtest似乎不适用于coxph模型.
谢谢
我有一个coxph模型,有5个时间相关和2个时间无关的变量.我想测试比例风险假设,除了鞅和偏差残差,使用cox.zph.我的问题是,这个函数如何处理时间依赖的协变量?
在阅读了Grant et al.,2014之后,我不确定这是否是推荐的拟合优度检验,用于评估时变协变量的PH假设.
模型:
teste<-coxph(Surv(tempo1,tempo2,status)~sexo+CODE_06+factor(clima)+TP_media7
+ndvi+peso+epoca,data=newftable,na.action=na.fail)
> cox.zph(teste)
rho chisq p
sexoM 0.0844 0.32363 0.5694
CODE_06Regadio 0.1531 0.66865 0.4135
CODE_06Sequeiro 0.2278 1.65735 0.1980
factor(clima)8 -0.1823 1.16522 0.2804
factor(clima)9 0.1051 0.24456 0.6209
factor(clima)15 -0.0193 0.00945 0.9226
TP_media7(12,22] 0.1689 0.75604 0.3846
TP_media7(22,32] 0.1797 1.03731 0.3084
TP_media7(32,41] 0.1060 0.34036 0.5596
ndvi(3e+03,4e+03] -0.1595 1.00006 0.3173
ndvi(4e+03,5e+03] 0.0421 0.05233 0.8191
ndvi(5e+03,6e+03] 0.1750 0.98816 0.3202
ndvi(6e+03,8.05e+03] -0.0311 0.02880 0.8653
peso[850,1005] 0.2534 3.34964 0.0672
epocamid_inv_rep 0.0193 0.01219 0.9121
epocamid_pos_inv -0.2193 0.93355 0.3339
epocamid_rep_pos 0.0231 …Run Code Online (Sandbox Code Playgroud) 我使用Cox回归建模了一个问题,现在想要预测一个人的估计生存时间.该模型具有生存时间所依赖的协变量列表.这告诉我们如何计算P(T> t),它基本上是给定个体的生存函数(1-CDF).
我想预测一些略有不同的东西.鉴于已使用的协变量的值,我想预测该人居住的估计天数.据我所知,这类似于pdf的抽样.如何使用R中的生存包来完成此操作?以下是使用Cox回归模型的拟合概要.
Call:
coxph(formula = Surv(Time, death) ~ variable1 + variable2 + variable3 +
variable4 + variable5 + variable6 + variable7 + variable8 + variable9,
data = DataTest, method = "breslow")
n= 23756, number of events= 23756
coef exp(coef) se(coef) z Pr(>|z|)
variable1 0.02494 1.02526 0.02375 1.050 0.29354
variable2 -0.20715 0.81290 0.02395 -8.650 < 2e-16 ***
variable3 0.12940 1.13814 0.02263 5.717 1.08e-08 ***
variable4 0.02469 1.02500 0.02289 1.079 0.28077
variable5 0.13165 1.14070 0.02235 5.891 3.84e-09 ***
variable6 …Run Code Online (Sandbox Code Playgroud) 在 R 中,当比例测试(使用 coxph)表明违反了 Cox 模型中的比例假设时,合并协变量和时间之间的交互项的最佳方法是什么?我知道您可以使用分层或与时间项的交互,我对后者感兴趣。我一直无法在互联网上找到有关如何执行此操作的示例的明确明确的解释。在使用 Rossi 数据集的最常见示例中,Fox 建议这样做,
coxph(formula = Surv(start, stop, arrest.time) ~ fin + age + age:stop + prio, data = Rossi.2)
Run Code Online (Sandbox Code Playgroud)
建模与年龄:停止与年龄:开始之间有区别吗?公式一定要使用这种格式吗?如果我使用带有两个参数格式的 Surv,以下是否也有意义?
coxph(formula = Surv(week, arrest) ~ fin + age + age:week + prio, data = Rossi)
Run Code Online (Sandbox Code Playgroud)
或者您必须拆分数据集并使用 Surv(start,stop,event) 方法?此外,还有时间变换方法,所以,
coxph(formula = Surv(week, arrest) ~ fin + age + tt(age) + prio, data = Rossi, tt=function(x,t,...) x*t)
Run Code Online (Sandbox Code Playgroud)
我知道有些人更喜欢使用模型log(t)而不是t这里。但其中哪一种是模拟时间交互的正确方法?这些都是指相同/不同的底层统计模型吗?最后,都是建模(对于交互项)h(t) = h0(t)exp(b*X*t):?
我有一个 Cox 回归,它采用strata()和tt()。
是否有任何软件包可以帮助以表格格式生成美观、信息丰富的结果输出?虽然ggforest()处理tt()但不处理strata()
我正在寻找除打印之外的任何方法来产生合适的输出summary(coxph)。无论是 Latex 还是 HTML。
到目前为止,唯一的解决方案是自己构建表格,但这看起来并没有足够的吸引力,无法放入论文中......
这是虚拟数据集:
set.seed(132456)
'dummy survival data'
df<-data.frame(id=seq(1,1000,1), event=rep(0,1000),time=floor(runif(1000,7,10)),group=floor(runif(1000,0,2)),
var1 = rnorm(1000, 1, 3), var2 = seq(1,1000))
'set events for a few random subjects'
id_list<-c(as.numeric(floor(runif(500,1,1000))))
df$event[df$id %in% id_list]<-1
'set survival times for events'
t_list<-c(as.numeric(floor(runif(394,1,5))))
df2<-df[df$event==1,]
df2$time<-t_list
'combine data'
df<-rbind(df,df2)
summary(df)
'Set up surfit '
require(survminer)
KM_fit<-coxph(Surv(time , event) ~ tt(var2) + strata(group)+ var1 ,data= df)
Run Code Online (Sandbox Code Playgroud)
ggforest()返回以下错误:
> ggforest(KM_fit)
Error in `[.data.frame`(data, …Run Code Online (Sandbox Code Playgroud) 首先,我从此链接将函数应用于多个列中收集到,使用“函数”函数可能会满足我的要求。然而,我一直未能从以所呈现的方式思考它到使其在我的情况下真正发挥作用(或者甚至不知道从哪里开始)实现飞跃。我是 R 的初学者,所以如果这是一个真正的“新手”问题,我提前道歉。我的数据是一个数据框,由事件变量(肿瘤复发)和时间变量(随访时间/复发时间)以及复发风险因素(t 期、肿瘤大小、dx 年龄等)组成。有些风险因素是绝对的,有些是连续的。我一直在手动运行单变量分析,一次一个,就像这个例子 univariateageatdx<-coxph(survobj~gedx) 一样,然后收集数据。对于多种因素以及几种不同的复发类型来说,这会变得非常乏味。我认为必须有一种编码方法,这样我基本上可以拥有一行包含 coxph 方程的代码,然后将其应用于我感兴趣的所有变量,并得出包含每个因素的单变量分析结果的结果。我尝试使用 cbind 绑定变量(即x<-cbind("agedx","tumor size")然后运行 cox coxph(recurrencesurvobj~x),但这当然只是对这些变量进行了多变量分析,并没有将它们拆分为真正的单变量分析。
我还根据在不同站点上发现的类似问题尝试了以下代码,但它给出了显示的错误,我不知道该怎么做。这是在正确的轨道上吗?
f <- as.formula(paste('regionalsurvobj ~', paste(colnames(nodcistradmasvssubcutmasR)[6-9], collapse='+')))
Run Code Online (Sandbox Code Playgroud)
然后我运行它,它有 coxph(f) 给了我多元 cox 分析的结果。
谢谢!**编辑:我刚刚修复了错误,我需要使用列号,我想不是名称。更改反映在上面的代码中。但是,它仍然运行选择为多变量分析的变量,而不是真正的单变量分析......
请帮助python中是否有用于Cox回归的软件包?还是我们可以制作Rpy?我知道这个例子,但它是R
https://plot.ly/ipython-notebooks/survival-analysis-r-vs-python/#Loading-data-into-python-and-R
Run Code Online (Sandbox Code Playgroud) 每次我使用R中的生存包运行Cox模型时,我都会收到以下错误.此错误在过去几天内出现.为了说明错误,我使用的是https://stat.ethz.ch/R-manual/R-devel/library/survival/html/coxph.html上给出的标准示例命令:
# Fit a stratified model, clustered on patients
library(survival)
bladder1 <- bladder[bladder$enum < 5, ]
coxph(Surv(stop, event) ~ (rx + size + number) * strata(enum) +
cluster(id), bladder1)
Run Code Online (Sandbox Code Playgroud)
我得到的错误如下:
Error in fitter(X, Y, strats, offset, init, control, weights = weights, :
object 'Ccoxmart' not found
Run Code Online (Sandbox Code Playgroud)
我正在使用最新版本的R [3.4.0(2017-04-21) - "你愚蠢的黑暗"].
我曾尝试参考R的生存包手册并在互联网上进行研究.我很感激您推荐的任何资源或解决方案.
当我coxph(Surv(Time, Status)~Class, data = df)在如下数据集上运行时,它总是按字母顺序设置参考组,在这种情况下,MutantA 将是参考组。有没有办法告诉它让 WT 成为参考组?
df
Time Status Class
3 1 WT
4 1 WT
5 1 WT
7 1 WT
7 1 WT
7 1 WT
7 1 WT
2 1 WT
2 1 WT
2 1 WT
5 1 WT
6 1 WT
7 1 WT
8 1 MutantA
9 1 MutantA
2 1 MutantA
12 1 MutantA
3 1 MutantA
4 1 MutantA
5 1 MutantA
7 1 MutantA
7 1 MutantA …Run Code Online (Sandbox Code Playgroud) 我正在尝试计算与随时变系数的Cox PH模型获得的点估计相关的P值。我编写的函数没有提供正确的P值。我将通过使用生存包中的NCCTG肺癌数据来说明这一点。
# Setup
require(survival)
# Effect of Karnofsky score, linear
fit <- coxph(Surv(time/365.25, status == 2) ~ ph.karno + tt(ph.karno),
lung, tt=function(x, t, ...) {x*t})
Run Code Online (Sandbox Code Playgroud)
功能:
# Same function but now with a P-value in the output
calculate.timeDependentHazard.P <- function(model,time) {
index.1 <- which(names(model$coef)=="ph.karno")
index.2 <- which(names(model$coef)=="tt(ph.karno)")
coef <- model$coef[c(index.1,index.2)]
var <- rbind(c(model$var[index.1,index.1],model$var[index.1,index.2]),
c(model$var[index.2,index.1],model$var[index.2,index.2]))
var.at.time <- t(c(1,time)) %*% var %*% c(1,time)
hazard.at.time <- t(c(1,time)) %*% coef
lower.95 <- hazard.at.time - 1.96*sqrt(var.at.time)
upper.95 <- hazard.at.time + …Run Code Online (Sandbox Code Playgroud) 我试图使用cox模型来预测一段时间后失败的概率(名为stop)3.
bladder1 <- bladder[bladder$enum < 5, ]
coxmodel = coxph(Surv(stop, event) ~ (rx + size + number) +
cluster(id), bladder1)
range(predict(coxmodel, bladder1, type = "lp"))
range(predict(coxmodel, bladder1, type = "risk"))
range(predict(coxmodel, bladder1, type = "terms"))
range(predict(coxmodel, bladder1, type = "expected"))
Run Code Online (Sandbox Code Playgroud)
但是,预测函数的输出都不在0-1范围内.是否有任何功能或如何使用lp预测和基线危险函数来计算概率?
cox-regression ×11
r ×10
cox ×1
function ×1
html ×1
p-value ×1
python ×1
r-markdown ×1
survival ×1