I 종속 값을 포함 검열 데이터 중 다수 Y 또는 간격으로 [0, Z는 ]Y를 함유하는 R의 간격 회귀를 시도하고있다.생존과 함께 잠복기를 회귀시키는 법 :: 생존 (간헐적 인 회귀와 검열 된 자료)?
검색 후 정확히 같은 문제를 다루지는 않지만 survival::survreg
(예 : here)을 추천하는 몇 가지 출처를 발견했습니다. 그러나, 나는 그것이 내 데이터로 작동하도록 할 수 없으며 나는 특별한 경우가 있다고 가정한다.
나는 MWE를 줄 것이다. 우선 일부 데이터와 상기 잠상 간격을 작성 :
# data
set.seed(417699)
df <- data.frame(ind = rbinom(10, 1, .75))
df <- transform(df,
value = ifelse(df$ind == 1, sample(1:1000), NA),
value1 = ifelse(df$ind == 0, sample(10:100) * 10, 0),
cv1 = rbinom(10, 2, .7) # 1st independent var.
cv2 = rbinom(10, 2, .25) # 2nd indep. var.
)
# intervals depending if 'ind' equals 0
df$liv <- with(df, ifelse(ind == 1, value, 0))
df$uiv <- with(df, ifelse(ind == 0, value1, value))
df
## ind value value1 cv1 liv uiv cv2
## 1 1 616 1 2 616 616 0
## 2 0 NA 450 2 0 450 0
## 3 1 236 1 2 236 236 0
## 4 1 130 1 1 130 130 1
## 5 0 NA 350 1 0 350 1
## 6 0 NA 250 2 0 250 0
## 7 1 241 1 1 241 241 0
## 8 1 950 1 2 950 950 1
## 9 1 557 1 2 557 557 1
## 10 1 453 1 2 453 453 1
하나에서 볼 수 있듯이, 지금에 따라 간격 또는 포인트가 있는지 IND 1 또는 구체적으로 0, IND = 0 인 경우 값은 해당 간격의 어딘가에 있습니다.
이제 survival::Surv()
으로, 그리고 그것이 검열 된 상태라고 가정하면 다음과 같이 "생존 개체"를 만듭니다.
library(survival)
(Y <- with(df, Surv(liv, uiv, event = rep(2, nrow(df)), type = "interval")))
## [1] [837, 837] [ 0, 340] [694, 694] [ 74, 74] [ 0, 280] [ 0, 640] [177, 177]
## [8] [650, 650] [368, 368] [179, 179]
summary(Y)
## time1 time2 status
## Min. : 0.0 Min. : 74.0 Min. :3
## 1st Qu.: 18.5 1st Qu.:204.2 1st Qu.:3
## Median :178.0 Median :354.0 Median :3
## Mean :297.9 Mean :423.9 Mean :3
## 3rd Qu.:579.5 3rd Qu.:647.5 3rd Qu.:3
## Max. :837.0 Max. :837.0 Max. :3
모든 미세하지만 마지막에 survreg()
오류와 함께 실패 Surv()
에서 나는 옵션 event=
및 type=
에 대한 여러 값을 시도
survreg(Y ~ cv1 + cv2, data = df, dist = "gaussian")
## Error in coxph.wtest(t(x) %*% (wt * x), c((wt * eta + weights * deriv$dg) %*% :
## NA/NaN/Inf in foreign function call (arg 3)
, 그들의 대부분은 작동하지 않았다 내가 ' 올바른 설정을 지정하는 방법이 혼란 스럽습니다 (즉, 내가 잘못했는지 또는 기능이 있는지 모르는 경우, 다음 참고 사항 참조).
참고 : survreg()
보인다 몇 버전 전에 a bug 있었다하기 만하는 지금 (내가 확실히 모르는) 해결해야한다.
누가 무슨 일이 벌어지고이 문제를 해결할 수 있는지 알고 있습니까? 또한,이 순간에 R에서 그런 종류의 간격 회귀를 계산하는 유일한 유망한 방법 인 것 같지만 더 나은 옵션이있을 수 있습니다. 고맙습니다.