J'ai développé un modèle de régression logistique basé sur les données rétrospectives d'une base de données nationale sur les traumatismes des traumatismes crâniens au Royaume-Uni. Le résultat clé est la mortalité à 30 jours (désignée comme Outcome30
mesure). D'autres mesures dans l'ensemble de la base de données avec des preuves publiées d'effet significatif sur les résultats dans les études précédentes comprennent:
Yeardecimal - Date of procedure = 1994.0-2013.99
inctoCran - Time from head injury to craniotomy in minutes = 0-2880 (After 2880 minutes is defined as a separate diagnosis)
ISS - Injury Severity Score = 1-75
Age - Age of patient = 16.0-101.5
GCS - Glasgow Coma Scale = 3-15
Sex - Gender of patient = Male or Female
rcteyemi - Pupil reactivity (1 = neither, 2 = one, 3 = both)
neuroFirst2 - Location of admission (Neurosurgical unit or not)
Other - other traums (0 - No, 1 - Yes)
othopYN - Other operation required
LOS - Length of stay in days
LOSCC - Length of stay in critical care in days
Lorsque j'effectue une analyse univariée des variables, j'ai effectué une régression logistique pour chaque variable continue. Je ne peux pas modéliser Yeardecimal cependant, avec le résultat suivant:
> rcs.ASDH<-lrm(formula = Survive ~ Yeardecimal, data = ASDH_Paper1.1)
singular information matrix in lrm.fit (rank= 1 ). Offending variable(s):
Yeardecimal
Error in lrm(formula = Survive ~ Yeardecimal, data = ASDH_Paper1.1) :
Unable to fit model using “lrm.fit”
Cependant, la spline cubique restreinte fonctionne:
> rcs.ASDH<-lrm(formula = Survive ~ rcs(Yeardecimal), data = ASDH_Paper1.1)
>
> rcs.ASDH
Logistic Regression Model
lrm(formula = Survive ~ rcs(Yeardecimal), data = ASDH_Paper1.1)
Model Likelihood Discrimination Rank Discrim.
Ratio Test Indexes Indexes
Obs 5998 LR chi2 106.61 R2 0.027 C 0.578
0 1281 d.f. 4 g 0.319 Dxy 0.155
1 4717 Pr(> chi2) <0.0001 gr 1.376 gamma 0.160
max |deriv| 2e-08 gp 0.057 tau-a 0.052
Brier 0.165
Coef S.E. Wald Z Pr(>|Z|)
Intercept -68.3035 45.8473 -1.49 0.1363
Yeardecimal 0.0345 0.0229 1.51 0.1321
Yeardecimal' 0.1071 0.0482 2.22 0.0262
Yeardecimal'' -2.0008 0.6340 -3.16 0.0016
Yeardecimal''' 11.3582 4.0002 2.84 0.0045
Quelqu'un pourrait-il expliquer pourquoi c'est? Je suis nerveux à l'idée d'utiliser un modèle en mode compliqué si je ne peux pas modéliser avec une approche plus simple.
J'utilise actuellement des splines cubiques restreintes pour modéliser l'âge, l'ISS et l'année décimale. Quelqu'un recommanderait-il une autre approche?
la source
glm
fonction vanilla , conformément à r.789695.n4.nabble.com/…Réponses:
La date en tant que prédicteur peut échouer car elle est fortement colinéaire avec la constante. Si vous le saisissez comme une année, sa variabilité est d'environ 10/2000 = 0,005 (en fait moins parce que la plupart de vos données se trouvent dans les années les plus récentes), et lorsqu'elle est au carré, elle devient 4e-6. Lorsque vous inversez une matrice avec les valeurs propres 1 et 4e-6, le package que vous utilisez peut décider qu'il s'agit d'un zéro dans l'arithmétique de précision finie et envoyer ce message d'erreur. La solution est simple - centrez vos données, au moins approximativement, en soustrayant 2000 de l'année.
la source
Les splines cubiques restreintes devraient bien fonctionner ici. Vous vous inquiétez un peu trop des distributions marginales des prédicteurs.
La durée du séjour est dans la mauvaise partie de la voie causale pour l'utiliser comme prédicteur de décès. Et faites attention aux autres opérations requises.
Je ne vois pas beaucoup de valeur dans les analyses univariables.
la source