Schoenfeld 잔차가 좋지 않을 때 비례 위험 회귀 모형의 옵션은 무엇입니까?


15

coxph많은 변수를 포함 하는를 사용하여 R에서 Cox 비례 위험 회귀를 수행하고 있습니다. Martingale 잔차는 훌륭해 보이며, Schoenfeld 잔차는 모든 변수에 가장 좋습니다. Schoenfeld 잔차가 평탄하지 않은 변수는 세 가지가 있으며 변수의 특성은 시간에 따라 변할 수 있다는 의미입니다.

이것들은 내가 정말로 관심이없는 변수이므로 계층화하는 것이 좋습니다. 그러나 이들 모두는 범주 형 변수가 아닌 연속 형 변수입니다. 따라서 나는 지층이 실행 가능한 경로가 아니라고 인식합니다 *. here 에 설명 된 것처럼 변수와 시간 사이의 상호 작용을 구축하려고 시도했지만 오류가 발생합니다.

  In fitter(X, Y, strats, offset, init, control, weights = weights,  :
  Ran out of iterations and did not converge

나는 거의 1000 개의 데이터 포인트로 작업하고 있으며 많은 요소가있는 6 개의 변수로 작업하고 있으므로이 데이터를 슬라이스하고 깎을 수있는 방법의 한계를 밀고있는 것처럼 느껴집니다. 불행히도, 포함 된 변수를 적게 사용하여 시도한 모든 간단한 모델은 분명히 더 나쁩니다 (예 : Schoenfeld 잔차는 더 많은 변수에 더 무겁습니다).

내 옵션은 무엇입니까? 나는 이러한 열악한 특정 변수에 신경 쓰지 않기 때문에 출력을 무시하고 싶지만 그것이 올바른 해석이 아니라고 생각합니다!

* 하나는 연속적이고, 하나는 100 이상의 범위를 가진 정수이고, 하나는 6의 범위를 갖는 정수입니다. 아마도 비닝?


2
시간 종속 변수에 대한 시간 상호 작용이있는 확장 된 Cox 모델을 사용하는 것은 어떻습니까?
kirk

시간 경과 공변량 옵션 (Stata의 -tvc-와 같은)을 고려하는 것은 어떻습니까?
Carlo Lazzaro 2016 년

답변:


1

기준선 위험이 어떤지 알 수있는 경우 가장 우아한 방법은 파라 메트릭 생존 모델 (Gompertz, Weibull, Exponential 등)을 사용하는 것입니다.

Cox 모델을 유지하려면 시간 종속 계수가 있는 확장 된 Cox 모델을 사용할 수 있습니다 . 공변량에 따른 시간에 따른 확장 된 콕스 모델도 있음을 명심하십시오.

R의 경우 여기를 참조하십시오 : http://cran.r-project.org/web/packages/survival/vignettes/timedep.pdf


1

몇 가지 아이디어-

1) Royston-Parmar 모델링 접근법 (예 : http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0047804) 과 그 참조를 사용해보십시오 . 유용한 결과를 얻었습니다.

2) 연속 변수의 센터링 및 표준화는 수치 적으로 유용 할 수 있습니다.

3) 수준이 많은 요인이있는 많은 모델에는 기본적으로 데이터가없는 수준이 몇 개 있습니다. 이를 제거하기 위해 레벨을 병합하지만 실질적인 기준에 따라 도움이 될 수 있습니다.

행운을 빕니다!


1

기본 시간과의 상호 작용을 사용할 수없는 경우 시도해 볼 수 있습니다 단계 기능을 (자세한 내용은 Therneau의 2016 비네팅 e 참조).

단계 함수는 특정 간격으로 특정 계수로 계층화됩니다. 문제가있는 공변량에 대한 플롯 된 Schoenfeld 잔차를 확인한 후 (예를 들어 plot(cox.zph(model.coxph))) 선의 각도가 바뀌는 위치를 시각적으로 확인해야합니다. 베타가 현저하게 다른 것으로 보이는 한두 가지 점을 찾아보십시오. 우리가 사용하는 데이터를 생성합니다 그래서이 시간 (10) 및 (20)에서 발생한다고 가정 survSplit()으로부터를survival , 상기 시간 그룹화 특정 데이터 모델의 데이터 프레임을 생성한다 패키지 :

step.data <- survSplit(Surv(t1, t2, event) ~ 
                      x1 + x2,
                      data = data, cut = c(10, 20), episode = "tgroup")

다음 실행 cox.ph와 모델 strata 문제가되는 변수와의 상호 작용으로 함수를 사용 (시간과 상호 작용하는 것처럼 시간이나 지층에 주요 효과를 추가하지 마십시오).

> model.coxph2 <- coxph(Surv(t1, t2, event) ~ 
                          x1 + x2:strata(tgroup), data = step.data)

그리고 그것은 도움이 될 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.