Я делаю анализ выживания относительно времени, в течение которого некоторые отдельные компоненты остаются в исходном коде программного проекта, но некоторые из этих компонентов удаляются функцией survfit
.
Вот чтоЯ делаю:
library(survival)
data <- read.table(text = "component_id weeks removed
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1
7 1 1
8 2 0
9 2 0
10 2 0
11 2 0
12 2 1
13 2 1
14 2 0
15 2 0
16 2 0
17 2 0
18 2 0
19 2 0
20 2 1
21 2 1
22 2 0
23 2 0
24 3 1
25 3 1
26 3 1
27 3 1
28 7 1
29 7 1
30 14 1
31 14 1
32 14 1
33 14 1
34 14 1
35 14 1
36 14 1
37 14 1
38 14 1
39 14 1
40 14 1
41 14 1
42 14 1
43 14 1
44 14 1
45 14 1
46 14 1
47 14 1
48 40 1
49 40 1
50 40 1
51 40 1
52 48 1
53 48 1
54 48 1
55 48 1
56 48 1
57 48 1
58 48 1
59 48 1
60 56 1
61 56 1
62 56 1
63 56 1
64 56 1
65 56 1
66 56 1
67 56 1
68 56 1
69 56 1", header = TRUE)
fit <- survfit(Surv(data<span class="math-container">$weeks, data$</span>removed) ~ 1)
summary(fit, censored=TRUE)
И это вывод
Call: survfit(formula = Surv(data<span class="math-container">$weeks, data$</span>removed) ~ 1)
time n.risk n.event survival std.err lower 95% CI upper 95% CI
1 69 7 0.899 0.0363 0.830 0.973
2 62 4 0.841 0.0441 0.758 0.932
3 46 4 0.767 0.0533 0.670 0.879
7 42 2 0.731 0.0567 0.628 0.851
14 40 18 0.402 0.0654 0.292 0.553
40 22 4 0.329 0.0629 0.226 0.478
48 18 8 0.183 0.0520 0.105 0.319
56 10 10 0.000 NaN NA NA
Я ожидал, что количество событий будет 69, но я отбросил 12 предметов.
Сначала я думал, что неправильно использую функции пакета, и применил type="interval2"
подход, следуя подобной ситуации , но падение продолжает происходить со странным непрерывным числом объектов и счетчиков событий:
as.t2 <- function(i, data) if (data<span class="math-container">$removed[i] == 1) data$</span>weeks[i] else NA
size <- length(data<span class="math-container">$weeks)
t1 <- data$</span>weeks
t2 <- sapply(1:size, as.t2, data = data)
interval_fit <- survfit(Surv(t1, t2, type="interval2") ~ 1)
summary(interval_fit, censored=TRUE)
Затем я нашел то, что я называю объяснением в воздухе , немного прояснив ситуацию.Я понимаю, что это вызвано тем, что после «постоянного времени цензуры» появляются не подвергнутые цензуре субъекты, но опять же, почему?очень близко к каплям, которые я испытываю.Вот Klein & Moeschberger:
Усечение данных о выживании происходит, когда наблюдаются только те люди, чье время события находится в определенном окне наблюдения $ (Y_L, Y_R) $ .Человек, у которого время события не находится в этом интервале, не наблюдается, и у исследователя нет доступной информации по этому вопросу.
Обрезание справа происходит, когда $ Y_L $ равно нулю.То есть мы наблюдаем время выживания $ X $ только тогда, когда $ X \ leq Y_R $ .
С моей точки зрения, эти капли несут важную информацию для моего исследования, независимо от ихвремя входа.
Как я могу остановить капли?