R에서 회귀 스플라인이있는 로지스틱 회귀


12

영국의 두부 외상 데이터베이스에 대한 소급 데이터를 기반으로 로지스틱 회귀 모델을 개발하고 있습니다. 주요 결과는 30 일 사망률입니다 ( "생존"척도로 표시). 이전 연구 결과에 중대한 영향을 미친다는 증거가 발표 된 다른 조치는 다음과 같습니다.

Year - Year of procedure = 1994-2013
Age - Age of patient = 16.0-101.5
ISS - Injury Severity Score = 0-75
Sex - Gender of patient = Male or Female
inctoCran - Time from head injury to craniotomy in minutes = 0-2880 (After 2880 minutes is defined as a separate diagnosis)

이분법 종속 변수를 고려하여이 모델을 사용하여 lrm을 사용하여 로지스틱 회귀를 작성했습니다.

모델 변수 선택 방법은 동일한 진단을 모델링하는 기존 임상 문헌을 기반으로합니다. 전통적으로 분수 다항식을 통해 모델링 된 ISS를 제외하고는 모두 선형 적합으로 모델링되었습니다. 상기 변수들 사이에 알려진 중요한 상호 작용을 확인한 문헌은 없다.

Frank Harrell의 조언에 따라 회귀 스플라인을 사용하여 ISS를 모델링했습니다 (이러한 접근 방식의 장점은 아래 주석에서 강조 표시됨). 따라서 모델은 다음과 같이 미리 지정되었습니다.

rcs.ASDH<-lrm(formula = Survive ~ Age + GCS + rcs(ISS) +
    Year + inctoCran + oth, data = ASDH_Paper1.1, x=TRUE, y=TRUE)

모델의 결과는 다음과 같습니다.

> rcs.ASDH

Logistic Regression Model

lrm(formula = Survive ~ Age + GCS + rcs(ISS) + Year + inctoCran + 
    oth, data = ASDH_Paper1.1, x = TRUE, y = TRUE)

                      Model Likelihood     Discrimination    Rank Discrim.    
                         Ratio Test            Indexes          Indexes       
Obs          2135    LR chi2     342.48    R2       0.211    C       0.743    
 0            629    d.f.             8    g        1.195    Dxy     0.486    
 1           1506    Pr(> chi2) <0.0001    gr       3.303    gamma   0.487    
max |deriv| 5e-05                          gp       0.202    tau-a   0.202    
                                           Brier    0.176                     

          Coef     S.E.    Wald Z Pr(>|Z|)
Intercept -62.1040 18.8611 -3.29  0.0010  
Age        -0.0266  0.0030 -8.83  <0.0001 
GCS         0.1423  0.0135 10.56  <0.0001 
ISS        -0.2125  0.0393 -5.40  <0.0001 
ISS'        0.3706  0.1948  1.90  0.0572  
ISS''      -0.9544  0.7409 -1.29  0.1976  
Year        0.0339  0.0094  3.60  0.0003  
inctoCran   0.0003  0.0001  2.78  0.0054  
oth=1       0.3577  0.2009  1.78  0.0750  

그런 다음 모델로부터 예측의 정확성을 평가하기 위해 rms 패키지의 보정 기능을 사용했습니다. 다음과 같은 결과를 얻었습니다.

plot(calibrate(rcs.ASDH, B=1000), main="rcs.ASDH")

과적 합을 위해 불이익을받는 부트 스트랩 교정 곡선

모델 설계가 완료된 후, 연속 변수의 중앙값과 범주 변수의 모드를 기준으로 생존 연도의 영향을 보여주는 다음 그래프를 작성했습니다.

ASDH <- Predict(rcs.ASDH, Year=seq(1994,2013,by=1),Age=48.7,ISS=25,inctoCran=356,Other=0,GCS=8,Sex="Male",neuroYN=1,neuroFirst=1)
Probabilities <- data.frame(cbind(ASDH$yhat,exp(ASDH$yhat)/(1+exp(ASDH$yhat)),exp(ASDH$lower)/(1+exp(ASDH$lower)),exp(ASDH$upper)/(1+exp(ASDH$upper))))
names(Probabilities) <- c("yhat","p.yhat","p.lower","p.upper")
ASDH<-merge(ASDH,Probabilities,by="yhat")
plot(ASDH$Year,ASDH$p.yhat,xlab="Year",ylab="Probability of Survival",main="30 Day Outcome Following Craniotomy for Acute SDH by Year", ylim=range(c(ASDH$p.lower,ASDH$p.upper)),pch=19)
arrows(ASDH$Year,ASDH$p.lower,ASDH$Year,ASDH$p.upper,length=0.05,angle=90,code=3)

위의 코드는 다음과 같은 결과를 나타 냈습니다.

상한이있는 연도 추세

남은 질문은 다음과 같습니다.

1. 스플라인 해석 -전체 변수에 대해 결합 된 스플라인의 p- 값을 어떻게 계산할 수 있습니까?


4
잘 하셨어요. Year의 효과를 표시하려면 다른 변수를 기본값 (연속 중앙값, 범주 형 모드)으로 설정하고 x 축에서 Year를 변경하십시오 (예 :) plot(Predict(rcs.ASDH, Year)). 와 같은 작업을 수행하여 다른 변수를 변경하여 다른 곡선을 만들 수 있습니다 plot(Predict(rcs.ASDH, Year, age=c(25, 35))).
Frank Harrell

1
이유를 모르겠지만 문헌에서 바이어스 보정 보정 곡선의 많은 예를 보지 못했습니다. 좋은 생각 인 것 같습니다
Charles 찰스

1
여러 df 테스트와의 전반적인 연관성을 테스트하려면을 사용하십시오 anova(rcs.ASDH).
Frank Harrell

답변:


8

모델을 사전 지정하지 않았지만 중요한 테스트 및 결과 모델 수정에 참여한 경우 결과를 해석하기가 매우 어렵습니다. 그리고 사용 된 전역 적합도 검정은 분포가 아닌 축약 분포를 갖기 때문에 권장하지 않습니다 .χ2

모형 적합을 평가하는 두 가지 권장 방법은 다음과 같습니다.

  1. 부트 스트랩 오버 피팅 수정 된 매끄러운 비모수 적 (예 : * loess) 교정 곡선으로 절대 정확도 예측
  2. 모델의 다양한 일반화를 조사하여보다 유연한 모델 사양이 더 효과적인지 테스트 예를 들어, 추가 비선형 또는 교호 작용 항에 대한 우도 비율 또는 Wald 검정을 수행하십시오.χ2

분수 다항식에 비해 회귀 스플라인의 장점은 다음과 같습니다.

  1. 예측 변수는 값을 가질 수 있습니다 . FP가 요구하는 값을 기록 할 수 없습니다0
  2. 예측 변수의 출처에 대해 걱정할 필요가 없습니다. FP는 회귀 스플라인이 예측 변수를 상수만큼 이동시키는 데 변하지 않는 반면 0은 예측 변수의 "마법"원점이라고 가정합니다.

회귀 스플라인, 선형성 및 가산 성 평가에 대한 자세한 내용은 http://biostat.mc.vanderbilt.edu/CourseBios330 및 R rms패키지 rcs기능 에서 유인물을 참조하십시오 . 과적 합에 대해 불이익을받은 부트 스트랩 교정 곡선에 대해서는 rms calibrate기능을 참조하십시오 .


초기에 진단을 포함한 모든 변수와 진단 및 결과 변수와 관련된 모든 변수가 포함 된 전체 모델을 만들 때 모델을 미리 지정하려고했습니다. 이전의 연구에서 분수 다항식으로 모델링 할 수있는 ISS를 제외한 모든 선형 연속 또는 이분법 변수입니다. 필자가 생각하는 모델을 개발하는 데 사용한 방법은 Willi Sauerbrei의 "다변량 모델 구축"과 일치합니다. 아마도 전 세계적으로 적합하다는 것을 평가하기 위해 R에서 rms 패키지를 사용할 수 있습니까? 그렇다면 어떤 공식을 추천 하시겠습니까?
댄 분수

나는 그 중 일부를 해결하기 위해 대답을 확장했습니다.
Frank Harrell

모델 적합을 평가하기 위해 1과 2의 실행을위한 패키지를 권장 할 수 있습니까? rms에서 validate 함수를 사용할 수 있습니까? 회귀 스플라인 측면에서, 나는 강의 노트를 읽고 현재 책의 사본을 찾으려고 노력하고 있습니다 (가능하다면 구입하십시오!) 회귀 스플라인 구성을 위해 추가 R 패키지 / 기능을 추천 할 수 있습니까? 이 모델의 비선형 연속 변수의 경우 지금까지 모든 도움에 감사드립니다.
댄 분수

아마도 Friedman의 다변량 적응 회귀 스플라인을 기반으로 한 어스 패키지입니까?
댄 분수

마지막 질문입니다. ISS (Injury Severity Score) 공식은 A ^ 2 + B ^ 2 + C ^ 2입니다. 여기서 A, B 및 C는 독립적 인 외상 심각도 점수가 1-5 인 다른 신체 부위입니다. 따라서이 데이터 세트 내에서 최대 값은 75 및 최소 1입니다. 이 공식이 주어지면 분수 다항식이 회귀 스플라인과 비교하여 실제로 점수가 계산되는 방식에 더 가깝게 표현됩니까?
댄 분수
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.