Por ejemplo, supongamos que tenemos un modelo de regresión logística que genera la probabilidad de que un paciente va a desarrollar una determinada enfermedad, basado en muchas de las covariables.
Nos podemos hacer una idea de la magnitud y la dirección del efecto de cada covariable, en general, mediante el examen de los coeficientes del modelo y teniendo en cuenta el cambio en el odds-ratio.
Lo que si queremos saber para un solo paciente cuáles son sus mayores factores de riesgo / los mayores factores en su favor. Estoy particularmente interesado en aquellos en los que el paciente podría realmente hacer algo al respecto.
¿Cuál es la mejor manera de hacer esto?
La manera en que yo estoy estudiando en la actualidad es capturada en el siguiente código R (sacado de este hilo):
#Derived from Collett 'Modelling Binary Data' 2nd Edition p.98-99
#Need reproducible "random" numbers.
seed <- 67
num.students <- 1000
which.student <- 1
#Generate data frame with made-up data from students:
set.seed(seed) #reset seed
v1 <- rbinom(num.students,1,0.7)
v2 <- rnorm(length(v1),0.7,0.3)
v3 <- rpois(length(v1),1)
#Create df representing students
students <- data.frame(
intercept = rep(1,length(v1)),
outcome = v1,
score1 = v2,
score2 = v3
)
print(head(students))
predict.and.append <- function(input){
#Create a vanilla logistic model as a function of score1 and score2
data.model <- glm(outcome ~ score1 + score2, data=input, family=binomial)
#Calculate predictions and SE.fit with the R package's internal method
# These are in logits.
predictions <- as.data.frame(predict(data.model, se.fit=TRUE, type='link'))
predictions$actual <- input$outcome
predictions$lower <- plogis(predictions$fit - 1.96 * predictions$se.fit)
predictions$prediction <- plogis(predictions$fit)
predictions$upper <- plogis(predictions$fit + 1.96 * predictions$se.fit)
return (list(data.model, predictions))
}
output <- predict.and.append(students)
data.model <- output[[1]]
#summary(data.model)
#Export vcov matrix
model.vcov <- vcov(data.model)
# Now our goal is to reproduce 'predictions' and the se.fit manually using the vcov matrix
this.student.predictors <- as.matrix(students[which.student,c(1,3,4)])
#Prediction:
this.student.prediction <- sum(this.student.predictors * coef(data.model))
square.student <- t(this.student.predictors) %*% this.student.predictors
se.student <- sqrt(sum(model.vcov * square.student))
manual.prediction <- data.frame(lower = plogis(this.student.prediction - 1.96*se.student),
prediction = plogis(this.student.prediction),
upper = plogis(this.student.prediction + 1.96*se.student))
print("Data preview:")
print(head(students))
print(paste("Point estimate of the outcome probability for student", which.student,"(2.5%, point prediction, 97.5%) by Collett's procedure:"))
manual.prediction
print(paste("Point estimate of the outcome probability for student", which.student,"(2.5%, point prediction, 97.5%) by R's predict.glm:"))
print(output[[2]][which.student,c('lower','prediction','upper')])
Estoy pensando en buscar, además, al
this.student.prediction.list <- this.student.predictors * coef(data.model)
y tratando de sacar la información de la persona sumandos de la suma, que es la probabilidad de estimar, pero no estoy seguro de cómo hacerlo.
Yo pude ver
- De las variables que hacen la mayor contribución absoluta a la probabilidad de la estimación y se llevan a ser el más grande de los factores de riesgo.
- Las variables que se diferencian por la mayor cantidad de su media de la proporción, es decir, ver en qué proporción cada variable contribuye a la probabilidad de estimar la media y ver las variables que difieren de este porcentaje, la mayor cantidad en esta observación en particular
- Una combinación de los mismos: el peso de la diferencia absoluta entre la media de la proporción y la proporción observada por la media de la proporción y de tomar esas variables con el mayor de los valores ponderados
Cual de estos tiene más sentido? Cualquiera de estos enfoques ser una manera razonable para responder a la pregunta?
Además, me gustaría saber cómo puedo obtener los intervalos de confianza para el aditivo contribuciones individuales de las covariables para la estimación de la probabilidad.