首页 > 其他分享 >R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据

时间:2022-11-09 12:35:49浏览次数:82  
标签:10 12 生存 IP 模型 3.84 估计 分析模型

理解世界,我们可以从相关性的角度去描述,统计,​​机器学习​​,很多问题都是从相关的角度去描述的。我们去构建一个模型,不管是统计机器学习模型,还是深度学习模型,本质上是构建一个复杂映射。从特征到标签的一个映射,这个映射是有用的,但不完全有用。

因果分析

我们在这里用一个隐喻,下雨,来描述causal 和relevance。我们可以构建一个关于预测明天是否下雨的模型,从搜集到的大量特征,以及历史的下雨结果最为标签,构建模型。不管准确率多少,我们用这样一个模型能够预测明天是否能够下雨。

但是,我们很多时候要的不仅仅是预测,而是需要改变现状,例如沙漠中,我们想要哪些因素改变了,能够导致下雨。这就涉及到因果推断, causal inference 。

因果生存分析

在报告随机实验的结果时,除了意向治疗效应外,研究人员通常选择呈现符合方案效应。然而,这些符合方案的影响通常是回顾性描述的,例如,比较在整个研究期间坚持其指定治疗策略的个体之间的结果。这种对符合方案效应的回顾性定义经常被混淆,并且无法进行因果解释,因为它遇到了治疗混杂因素。

我们的目标是概述使用逆概率加权对生存结果的因果推断。这里描述的基本概念也适用于其他类型的暴露策略,尽管这些可能需要额外的设计或分析考虑。

生存曲线的非参数估计

  1.   
  2.  # 对数据进行一些预处理
  3.  ifelse(nes$death==0, 120,
  4.  (ns$yrh-83)*12+nhefs$moh) # yrt从83到92不等

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_拟合

summary(survtime)

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_r语言_02

survdiff(Surv(srtm, dah) ~ qmk, data=nes)

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_数据_03

  1.  fit <- survfit(Surv(rvie, dth) ~ sk, data=ns)
  2.  ggsurvplot(fit

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_r语言_04

通过风险模型对生存曲线进行参数化估计


1.  # 创建月数据
2.
3. efsurv$ent <- ifelse(nhfs.rv$time==nhfs.urv$srvme-1 &
4. nhf.srv$death==1, 1, 0)
5.
6.
7. # 拟合参数性风险模型
8. haads.el <- glm(event==0 ~ qs

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_r语言_05

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_数据_06


1.   
2. #对每个人月的估计(1-风险)的分配 */
3. qk0$pnoevt0 <- predict(hardoel, mk0, type="response")
4.
5. # 计算每个人月的生存率
6. qm0$uv0 <- cumprod(qm0$pnoet0)
7.
8. # 一些数据管理来绘制估计的生存曲线
9. hadgrh$suvdff <- haardsgph$suv1-hardgrph$srv0
10.
11. # 绘制
12. ggplot(hads.aph

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_数据_07

通过IP加权风险模型估计生存曲线


1.  # 估计ip权重的分母
2.
3. nef$p.mk <- predict(enm, nes, type="response")
4.
5. # 估计ip权重的分子
6. p.m <- glm(qk ~ 1, data=nefs, family=binomial() )
7. hfs$pnsm <- predict(p.m, nes, type="response")
8.
9. # 估计权重的计算
10. nef$s.<- ifelse(hes$qsk==1, nefs$pqmk/nhes$d.qmk,
11. (1-nfs$p.smk)/(1-nef$pdqk))
12. summary(nhs$swa)

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_数据_08

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_r语言_09


1.  # 创建人月数据
2. nhfsw <- exnRos(nhfs, "srvtime", drop=F)
3. nh.pw$ime <- sqee(rle(nefs.ipw$seqn)$lengths)-1
4. nhfipw$evnt <- ifele(nhf.iw$tie=nhefs.i$rv1 &)
5. nhfs.w$eath==1, 1, 0)
6. nhefpw$tmesq <- nhfs.pw$me^2
7.
8. # 拟合加权风险模型
9. imel <- glm(eve

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_拟合_10


1.  # 创建生存曲线
2. ipw.k0 <- data.frame(cbind(seq(0, 119),0, (seq(0, 119))^2))
3.
4.
5.
6. # 对每个人月的估计(1-危险)的分配 */
7. iwqk0$p.nvnt0 <- predict(ipwdl, pwm0, type="response")
8. iwsk1$povt1 <- predict(ip.el, ipmk1, type="response")
9.
10. # 计算每个人月的生存率
11. ip.qs0$srv0 <- cumprod(ipwsk0$p.nevnt0)
12. ip.qm1$suv1 <- cumprod(iwqsk1$p.nvent1)
13.
14. # 一些数据管理来绘制估计的生存曲线
15. ipwgph <- merge(ip.qmk0,pwsm1, by=c("time", "timesq") )
16. ipw.aph$surff <-ipw.ah$sv1-pwgrph$surv0
17.
18. # 绘制
19. ggplot(ip.gph, ae

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_r语言_11

通过g-formula估计生存曲线

  1.  # 带有协变量的风险模型的拟合情况
  2.   
  3.  g.mo <- glm(event==0 ~ qsm

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_数据_12

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_数据_13


1.  # 创建数据集,包括每个治疗水平下的所有时间点
2. # 每个人在每个治疗水平下的所有时间点
3. gf.qmk <- exanos(nfs, cunt=120, cotis.cl=F)
4. gf.qm0$te <- rep(q(0, 119), now(nhf))
5. gqm0$tesq <- gqk0$tie^2
6. gqsk0$qmk <- 0
7.
8. gfqsk1 <- gf.qm0
9. gf.sk1$mk <- 1
10.
11. gfqk0$p.vnt0 <- predict(g.mdel, g.qk0, type="response")
12. gfqk1$p.eent1 <- predict(gf.mol, gf.mk1, type="response")
13.
14. # 绘图
15. ggplot(gf.graph

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_数据_14

通过结构嵌套AFT模型估计中位生存时间比率

1.  # 对数据进行一些预处理
2.
3.
4. #
5. modelA <- glm(qsmk ~ sex +
6. nhs$pqsk <- predict(moeA, nhe, type="response")
7. d <- nes[!is.na(hf$surve),] # 只选择有观察到的死亡时间的人
8.
9.
10. # 定义需要被最小化的估计函数
11. smf <- function(pi){
12.
13. # 创建delta指标
14. if (psi>=0){
15. delta <- ifelse
16. 1, 0)
17. } else if (psi < 0) {
18. dlta <- ifelse
19. }
20.
21.
22. # 协方差
23. sgma <- t(at) %*% smat
24. if (sa == 0){
25. siga <- 1e-16
26. }
27. etm <- svl*solve(sia)*t(sal)
28. return(etmeq)
29. }
30.
31. res <- optimize
32. # 使用简单的分割法找到95%置信度下限和上限的估计值
33. frcf <- function(x){
34. return(smef(x) - 3.84)
35. }
36.
37. if (bfuc < 3.84){
38. # 找到sumeef(x)>3.84的估计值
39.
40. # 95%CI的下限
41.
42. while (tetlw < 3.84 & cnlow < 100){
43. psl <- pilw - incre
44. teslow <- sumeef(pslw)
45. cunlow <- cunlow + 1
46. }
47.
48. # 95%CI的上限值
49.
50. while (tsigh < 3.84 & onhih < 100){
51. phigh <- pshih + inrem
52. testig <- sumeef(pihigh)
53. cunhgh <- cuntigh + 1
54. }
55.
56. # 使用分切法进行更好的估计
57. if ((tstig > 3.84) & (tslw > 3.84)){
58.
59. # 分割法
60.
61. cont <- 0
62. dif <- right - left
63.
64. while {
65. test <- fmiddle * fleft
66. if (test < 0){
67. } else {
68. }
69.
70. diff <- right - left
71. }
72.
73. psi_high <- middle
74. objfunc_high <- fmiddle + 3.84
75.
76. # 95%CI的下限
77. left <- psilow
78.
79.
80. while(!){
81. test <- fmiddle * fleft
82. if (test < 0)

R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_拟合_15


R语言生存分析模型因果分析:非参数估计、IP加权风险模型、结构嵌套加速失效(AFT)模型分析流行病学随访研究数据_r语言_16

标签:10,12,生存,IP,模型,3.84,估计,分析模型
From: https://blog.51cto.com/u_14293657/5835834

相关文章