首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中具有时变协变量的全参数比例风险模型的拟合

R中具有时变协变量的全参数比例风险模型的拟合
EN

Stack Overflow用户
提问于 2013-03-06 02:12:16
回答 1查看 1.1K关注 0票数 3

我需要拟合一个具有时变协变量的参数PH模型(所以,不是Cox模型)。我们可以在R中这样做吗?我听说survreg函数不能处理时变协变量。我一直在徒劳地寻找可以处理这一问题的软件包。

EN

回答 1

Stack Overflow用户

发布于 2017-10-20 23:52:02

正如@adibender所写的那样,你可以很容易地用poisson家族的log time offsetglm来估计一个具有恒定基线的模型。下面是一个例子

代码语言:javascript
运行
复制
> # Input parameters
> n <- 100         # Number of individuals
> t_max <- 5       # max number of period per individual
> beta <- c(-1, 1) # true coefficient
> 
> # Simulate data
> set.seed(47261114)
> sim_dat <- replicate(
+   n, 
+   {
+     out <- data.frame(
+       tstart = rep(NA_integer_, t_max), 
+       tstop  = rep(NA_integer_, t_max),
+       event  = rep(NA, t_max),
+       x      = rnorm(t_max))
+     
+     for(i in 1:t_max){
+       rate     <- exp(beta %*% c(1, out$x[i]))
+       tstop <- min(rexp(1, rate), 1)
+       out[i, ] <- list(i - 1, i - (1 - tstop),  tstop < 1, out$x[i])
+       if(out$event[i])
+         break
+     }
+     out[!is.na(out$tstart), ]
+   }, simplify = FALSE)
> 
> sim_dat <- do.call(rbind, sim_dat)
> head(sim_dat) # show final data
  tstart     tstop event          x
1      0 0.3018182  TRUE  0.7095841
2      0 0.6724803  TRUE  1.5152877
3      0 1.0000000 FALSE  0.1036868
4      1 2.0000000 FALSE -0.5214508
5      2 2.4831577  TRUE  1.0101403
6      0 1.0000000 FALSE  0.1437594
> 
> # Fit with glm
> glm(event ~ x + offset(log(tstop - tstart)), sim_dat, family = poisson())

Call:  glm(formula = event ~ x + offset(log(tstop - tstart)), family = poisson(), 
    data = sim_dat)

Coefficients:
(Intercept)            x  
    -0.9053       0.9714  

Degrees of Freedom: 248 Total (i.e. Null);  247 Residual
Null Deviance:      382.5 
Residual Deviance: 306.4    AIC: 498.4

对于其他发行版,似乎可以使用flexsurv包。参见this post

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15231064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档