영국의 두부 외상 데이터베이스에 대한 소급 데이터를 기반으로 로지스틱 회귀 모델을 개발하고 있습니다. 주요 결과는 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- 값을 어떻게 계산할 수 있습니까?
anova(rcs.ASDH)
.
plot(Predict(rcs.ASDH, Year))
. 와 같은 작업을 수행하여 다른 변수를 변경하여 다른 곡선을 만들 수 있습니다plot(Predict(rcs.ASDH, Year, age=c(25, 35)))
.