En cuanto a cómo ajustar los datos a una distribución asimétrica normal Se podría calcular el estimador de máxima verosimilitud a partir de los primeros principios. En primer lugar, observe que la función de densidad de probabilidad para la distribución normal sesgada con el parámetro de localización ξ parámetro de escala ω y el parámetro de forma α es
2ωϕ(x−ξω)Φ(α(x−ξω))
donde ϕ(⋅) es la función de densidad normal estándar y Φ(⋅) es la FCD normal estándar. Tenga en cuenta que esta densidad es un miembro de la clase descrita en mi respuesta a esta pregunta .
La probabilidad logarítmica basada en una muestra de n observaciones independientes de esta distribución es:
−nlog(ω)+n∑i=1logϕ(x−ξω)+logΦ(α(x−ξω))
Es un hecho que no hay una solución de forma cerrada para este MLE. Pero, se puede resolver numéricamente. Por ejemplo, en R
podría codificar la función de probabilidad como (nota, lo he hecho menos compacto/eficiente de lo posible para hacer completamente transparente cómo esto calcula la función de probabilidad arriba):
set.seed(2345)
# generate standard normal data, which is a special case
n = 100
X = rnorm(n)
# Calculate (negative) log likelihood for minimization
# P[1] is omega, P[2] is xi and P[3] is alpha
L = function(P)
{
# positivity constraint on omega
if( P[1] <= 0 ) return(Inf)
S = 0
for(i in 1:n)
{
S = S - log( dnorm( (X[i] - P[2])/P[1] ) )
S = S - log( pnorm( P[3]*(X[i] - P[2])/P[1] ) )
}
return(S + n*log(P[1]))
}
Ahora sólo tenemos que minimizar numéricamente esta función (es decir, maximizar la probabilidad). Se puede hacer esto sin tener que calcular las derivadas utilizando la función Algoritmo Simplex que es la implementación por defecto en el optim()
paquete en R
.
En cuanto a la forma de comprobar la asimetría: Podemos probar explícitamente la normalidad sesgada frente a la normalidad (ya que la normalidad es un submodelo) restringiendo α=0 y haciendo un prueba de razón de verosimilitud .
# log likelihood constraining alpha=0.
L2 = function(Q) L(c(Q[1],Q[2],0))
# log likelihood from the constrained model
-optim(c(1,1),L2)$value
[1] -202.8816
# log likelihood from the full model
-optim(c(1,1,1),L)$value
[1] -202.0064
# likelihood ratio test statistic
LRT = 2*(202.8816-202.0064)
# p-value under the null distribution (chi square 1)
1-pchisq(LRT,1)
[1] 0.1858265
Así que no rechazamos la hipótesis nula de que α=0 (es decir, no hay desviación).
En este caso la comparación era sencilla, ya que la distribución normal era un submodelo. En otros casos más generales, se podría comparar la sesgo-normal con otras distribuciones de referencia comparando, por ejemplo, AIC s (como se hace aquí ) si se utilizan estimadores de máxima verosimilitud en todos los ajustes de la competencia. Por ejemplo, podría ajustar los datos por máxima verosimilitud bajo una distribución gamma y bajo la normal sesgada y ver si la verosimilitud añadida justifica la complejidad añadida de la normal sesgada (3 parámetros en lugar de 2). También podría considerar el uso de la prueba de Kolmogorov Smirnov de una muestra para comparar sus datos con la estimación de mejor ajuste de la familia skew-normal.