मैं ब्रिटेन में सिर की चोट के एक राष्ट्रीय आघात डेटाबेस से पूर्वव्यापी डेटा के आधार पर एक लॉजिस्टिक रिग्रेशन मॉडल विकसित कर रहा हूं। मुख्य परिणाम 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 का उपयोग करके एक लॉजिस्टिक रिग्रेशन बनाया है।
मॉडल चर चयन की विधि मौजूदा नैदानिक साहित्य पर आधारित थी जो एक ही निदान मॉडलिंग कर रही थी। सभी को आईएसएस के अपवाद के साथ एक रेखीय फिट के साथ तैयार किया गया है, जिसे पारंपरिक रूप से आंशिक बहुपद के माध्यम से तैयार किया गया है। किसी भी प्रकाशन ने उपरोक्त चर के बीच महत्वपूर्ण बातचीत की पहचान नहीं की है।
फ्रैंक हरेल की सलाह के बाद, मैं आईएसएस को मॉडल करने के लिए प्रतिगमन विभाजन के उपयोग के साथ आगे बढ़ा हूं (नीचे दिए गए टिप्पणियों में हाइलाइट किए गए इस दृष्टिकोण के फायदे हैं)। मॉडल इस प्रकार पूर्व-निर्दिष्ट था:
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
फिर मैंने मॉडल से भविष्यवाणियों की सटीकता का आकलन करने के लिए आरएमएस पैकेज में कैलिब्रेट फ़ंक्शन का उपयोग किया। अग्रांकित परिणाम प्राप्त किए गए थे:
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)))
।