Я розробляю логістичну модель регресії на основі ретроспективних даних із національної бази травм травми голови у Великобританії. Основним результатом є смертність за 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, який моделювався традиційно за допомогою дробових многочленів. Жодна публікація не виявила відомих значущих взаємодій між перерахованими вище змінними.
Дотримуючись поради Френка Харрелла, я продовжив використання регресійних сплайнів для моделювання МКС (є переваги такого підходу, висвітлені в коментарях нижче). Таким чином модель була попередньо визначена наступним чином:
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. Інтерпретація сплайну - Як я можу обчислити значення р для сплайнів, об'єднаних для загальної змінної?
anova(rcs.ASDH)
.
plot(Predict(rcs.ASDH, Year))
. Ви можете дозволити іншим змінним змінюватися, складаючи різні криві, виконуючи такі діїplot(Predict(rcs.ASDH, Year, age=c(25, 35)))
.