En R, dada una salida de optim con una matriz de arpillera, ¿cómo calcular los intervalos de confianza de los parámetros utilizando la matriz de arpillera?

22

Dado un resultado de optim con una matriz de arpillera, ¿cómo calcular los intervalos de confianza de los parámetros utilizando la matriz de arpillera?

fit<-optim(..., hessian=T)

hessian<-fit$hessian

Estoy principalmente interesado en el contexto del análisis de máxima verosimilitud, pero tengo curiosidad por saber si el método puede expandirse más allá.

Etienne Low-Décarie
fuente
2
Esta pregunta es muy vaga. ¿Qué tipo de intervalos de confianza? ¿Qué tipo de modelos te interesan? Considere echar un vistazo a la literatura antes de publicar 3 preguntas seguidas.
El método debe ser independiente del intervalo y el modelo.
Etienne Low-Décarie
¿Qué función optimizas?
Stéphane Laurent
Me dijeron que debería poder hacer esto independientemente del modelo que use.
Etienne Low-Décarie
Corey Chivers dio la respuesta.
Etienne Low-Décarie

Respuestas:

32

Si está maximizando una probabilidad, entonces la matriz de covarianza de las estimaciones es (asintóticamente) la inversa de la negativa del hessiano. Los errores estándar son las raíces cuadradas de los elementos diagonales de la covarianza (¡ de otra parte de la web!, Del Prof. Thomas Lumley y Spencer Graves, Ing.).

Para un intervalo de confianza del 95%

fit<-optim(pars,li_func,control=list("fnscale"=-1),hessian=TRUE,...)
fisher_info<-solve(-fit$hessian)
prop_sigma<-sqrt(diag(fisher_info))
prop_sigma<-diag(prop_sigma)
upper<-fit$par+1.96*prop_sigma
lower<-fit$par-1.96*prop_sigma
interval<-data.frame(value=fit$par, upper=upper, lower=lower)

Tenga en cuenta que:

  • Si está maximizando el registro (probabilidad), entonces el NEGATIVO del hessian es la "información observada" (como aquí).
  • Si MINIMIZA una "desviación" = (-2) * log (probabilidad), entonces la MITAD del hessian es la información observada.
  • En el caso improbable de que esté maximizando la probabilidad en sí misma, debe dividir el negativo del hessian por la probabilidad de obtener la información observada.

Consulte esto para conocer más limitaciones debido a la rutina de optimización utilizada.

Etienne Low-Décarie
fuente
Corey Chivers dio la respuesta.
Etienne Low-Décarie
2
(+1) El inverso del hessian negativo es un estimador de la matriz de covarianza asintótica. Sé que esto aparece en su código, pero creo que es importante señalarlo.
Macro
1
Excelente respuesta, ¿deberían leerse los límites superior e inferior upper<-fit$par+1.96*(prop_sigma/sqrt(n)) lower<-fit$par-1.96*(prop_sigma/sqrt(n))? Gracias
pronosticador
3
¿Por qué no eliminar la línea 4?
Jason
2
¿Incluir la línea es prop_sigma<-diag(prop_sigma)un error?
Mark Miller