导出编号。处于风险和 n.加权生存适应事件

问题描述 投票:0回答:1

我最近问为什么没有。加权 Kaplan-Meier 中的风险是不同的。
那是因为它是

treat == 1
treat == 0
中的权重之和。

数据和方法:

library(cobalt)

# Fake data
set.seed(123)
options(scipen=999)
lalonde <- cbind(lalonde,
                 event = sample(c(0,1), size=614, replace=TRUE, prob=c(0.84,0.16)),
                 time = runif(614, min=10, max=365))

formula <- treat ~ age + educ + race + married + nodegree + re74 + re75 + re78

#PS
lalonde$pscore <- glm(formula, data = lalonde,
                                family = binomial(link = "logit"))$fitted.values

# Calculate weights
lalonde$weight <- ifelse(lalonde$treat == 1,
                     pmin(lalonde$pscore, 1 - lalonde$pscore) / lalonde$pscore,
                     pmin(lalonde$pscore, 1 - lalonde$pscore) / (1 - lalonde$pscore))

surv_object <- Surv(time = lalonde$time, event = lalonde$event)
fit1 <- survfit(surv_object ~ treat, data = lalonde, robust = TRUE, weights = lalonde$weight)

导出编号。有风险我们可以计算:

treated1 <- sum(lalonde$weight[lalonde$treat == 1])
treated0 <- sum(lalonde$weight[lalonde$treat == 0])

summary(fit1)
的第一行几乎相同 未处理的为 109,已处理的为 110。

计算已治疗和未治疗的事件数将是发生事件的已治疗/未治疗的权重之和,对吗?

treated0_event <- sum(lalonde$ow[lalonde$treat == 0 & lalonde$event == 1])
treated1_event <- sum(lalonde$ow[lalonde$treat == 1 & lalonde$event == 1])

是否可以从 survfit 中提取这些值?

谢谢你。

r survival-analysis
1个回答
1
投票

想法。数据整齐。

library(dplyr)

fit1.tab <- tidy(fit1)

summary_data <- fit1.tab %>%
  group_by(strata) %>%
  filter(strata %in% c('treat=0', 'treat=1')) %>%
  summarize(max_n.risk = max(n.risk), sum_n.event = sum(n.event))

但是事件的计算对吗?

© www.soinside.com 2019 - 2024. All rights reserved.