Me gustaría saber si existe algún método para encontrar intervalos de confianza para los parámetros de la distribución gamma inversa.
Respuestas
¿Demasiados anuncios?Algunos ejemplos con R (y varios paquetes de extensión). Primero simule algunos datos de prueba:
library(extraDistr)
library(MASS)
library(fitdistrplus)
set.seed(7*11*13) # for reproducibility
x <- rinvgamma(200, 1, 1)
A continuación, utilizando funciones de fitdistrplus
paquete:
> xfit1 <- fitdist(x, "invgamma", start=list(alpha=1.1, beta=0.9))
xfit1
confint(xfit1)
>
Fitting of the distribution ' invgamma ' by maximum likelihood
Parameters:
estimate Std. Error
alpha 1.075588 0.09531133
beta 1.089889 0.12185770
>
2.5 % 97.5 %
alpha 0.8887813 1.262395
beta 0.8510528 1.328726
Pero no parece que el perfil de verosimilitud esté implementado para estos objetos, así que esto es sólo el intervalo de confianza asintótico habitual, calculado a partir de la información en
vcov(xfit1)
coef(xfit1)
alpha beta
alpha 0.009084249 0.009205023
beta 0.009205023 0.014849299
>
alpha beta
1.075588 1.089889
Así que para el perfil de probabilidad vamos a por el paquete bbmle
que también es razonablemente fácil de usar:
library(bbmle)
dat <- data.frame(x)
> xfit2 <- mle2( x ~ dinvgamma(alpha=alpha, beta=beta), start=list(alpha=0.9, beta=0.9), data=dat, lower=c(alpha=0.1, beta=0.1), upper=c(alpha=10, beta=10), method="L-BFGS-B" )
> xfit2
Call:
mle2(minuslogl = x ~ dinvgamma(alpha = alpha, beta = beta), start = list(alpha = 0.9,
beta = 0.9), method = "L-BFGS-B", data = dat, lower = c(alpha = 0.1,
beta = 0.1), upper = c(alpha = 10, beta = 10))
Coefficients:
alpha beta
0.7987156 0.8081280
Log-likelihood: -248.01
> confint(profile(xfit2))
2.5 % 97.5 %
alpha 0.6239403 1.006797
beta 0.5711298 1.096452
Nótese que los dos intervalos (asintótico y basado en el perfil de verosimilitud) son bastante diferentes, y para estos datos el asintótico parece mejor. Estas diferencias parecen demasiado grandes para ser una cuestión puramente numérica, por lo que justifican una mayor investigación.
Dado que las distribuciones gamma inversas se utilizan tan a menudo en la inferencia bayesiana, otro enfoque aproximado de inferencia de muestra finita es utilizar MCMC o el muestreo de Gibbs para extraer de una posterior utilizando un previo no informativo para obtener creíble intervalos. Aunque creíble = confianza, la mayoría está de acuerdo en que el enfoque produce una inferencia aproximadamente equivalente cuando se utilizan priores no informativos.
Usando la sugerencia de simulación de @KjetilBHalvorsen, genero el mismo X
y ajustar un modelo BUGS con:
model {
for(i in 1:200) {
invx[i] <- 1/x[i]
invx[i] ~ dgamma(shape, scale)
}
shape ~ dgamma(0.1, 0.1)
scale ~ dgamma(0.1, 0.1)
}
Para obtener las siguientes muestras de distribución posterior, que tienen 2,5 y 97,5 cuantiles dados por
Inference for Bugs model at "cat.txt", fit using WinBUGS,
2 chains, each with 5000 iterations (first 2500 discarded), n.thin = 5
n.sims = 1000 iterations saved
mean sd 2.5% 25% 50% 75% 97.5% Rhat n.eff
shape 1.070 0.096 0.887 1.009 1.067 1.129 1.280 1.000 1000
scale 1.084 0.122 0.860 1.001 1.078 1.164 1.329 1.002 790
deviance 396.018 1.994 394.100 394.600 395.400 396.800 401.800 1.005 520
For each parameter, n.eff is a crude measure of effective sample size,
and Rhat is the potential scale reduction factor (at convergence, Rhat=1).
DIC info (using the rule, pD = Dbar-Dhat)
pD = 2.0 and DIC = 398.0
DIC is an estimate of expected predictive error (lower deviance is better).
Lo que concuerda en cierta medida con el enfoque de máxima verosimilitud utilizado anteriormente.