12 votos

¿Puedo hacer una prueba de hipótesis para datos normales sesgados?

Tengo una colección de datos, que originalmente pensé que se distribuía normalmente. Luego los miré y me di cuenta de que no era así, sobre todo porque los datos están sesgados, y también hice una prueba de shapiro-wilks.

Todavía me gustaría analizarlo con métodos estadísticos, por lo que me gustaría hacer una prueba de hipótesis para la normalidad sesgada.

Así que me gustaría saber si hay una manera de probar la normalidad sesgada, y si es posible, una biblioteca para hacer la prueba para mí.

8voto

Niall Puntos 51

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(ω)+ni=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.

1 votos

+1, creo que es una respuesta clara, completa y constructiva. Tengo una objeción en el último párrafo sobre el uso del AIC. Un problema que tengo con los distintos criterios de información es que suponen que todos los parámetros contribuyen por igual a la capacidad del modelo para ajustarse a los datos. Cuando se evalúan diferentes modelos de regresión múltiple, creo que esto está bien; sin embargo, si se examinan diferentes tipos de distribuciones, no me queda claro a priori que todos los parámetros ofrezcan la misma flexibilidad. Por lo tanto, me siento incómodo al respecto. ¿Cuál es su posición al respecto?

0 votos

+1 Sólo estoy un poco preocupado por algunas cuestiones con el Azzalini sesgo normal, tales como: (1) la matriz de información de Fisher de α el parámetro de asimetría, es singular en α=0 lo que indica problemas inferenciales en este punto, especialmente cuando se utiliza el estadístico de razón de verosimilitudes; (2) El perfil de verosimilitud de α suele ser muy plano ; (3) Tiene dos puntos de inflexión y la MLE conjunta de (μ,σ,α) no existe para algunos conjuntos de datos.

0 votos

@gung, este es un buen punto. Yo estaba usando AIC como un ejemplo más que nada - otra cosa podría ser utilizado - pero he visto a la gente usar AIC para comparar modelos con diferentes distribuciones de error, que está haciendo efectivamente esta misma suposición de que todos los parámetros son "creados iguales". ¿Ha visto alguna literatura sobre este tema? Me interesaría.

5voto

mat_geek Puntos 1367

Soy un estadístico que lleva más de 30 años trabajando en esta profesión y antes de leer este post nunca había oído hablar de la distribución normal sesgada. Si tienes datos muy asimétricos, ¿por qué quieres buscar específicamente la normal asimétrica en lugar de la lognormal o la gamma? Cada vez que se tiene una familia paramétrica de distribuciones como la gamma, la lognormal o la normal oblicua, se puede aplicar una prueba de bondad de ajuste como la de chi-cuadrado o la de Kolmogorov-Smirnov.

5 votos

Los Azzalini sesgo normal es una distribución popular propuesta en 1985. Tiene soporte en toda la línea real.

1 votos

@Procrastinator Ahora lo sé y probablemente debería haberlo oído antes. Pero supongo que mi punto es que ya que no había oído hablar de él tal vez es un poco más oscuro que otras distribuciones sesgadas. Entiendo el punto sobre el apoyo en toda la línea real a diferencia de mis ejemplos que tienen apoyo sólo en [0.) o {a,) si se añade un parámetro de desplazamiento. Todas estas distribuciones son sólo aproximaciones para describir cómo se distribuyen los datos. ¿Sabemos realmente que todos los valores negativos son posibles? En la práctica, es probable que los datos tengan límites inferiores y superiores.

0 votos

En muchos casos, el soporte de los datos está realmente en toda la línea real. Si quiere ver algunos ejemplos, quizá le interese echar un vistazo a la obra de Azzalini sitio web .

1voto

Ryan Thompson Puntos 111

Así que mi solución al final fue descargar el fGarch paquete, y snormFit proporcionado por fGarch para obtener MLEs para los parámetros de una Skewed-Normal.

A continuación, introduje esos parámetros, con el dsnorm proporcionada por fGarch, en una prueba de Kolmogorov-Smirnov.

0 votos

¿Cómo se pueden combinar el MLE y la prueba de Kolmogorov-Smirnov, que es una prueba no paramétrica?

0 votos

Me gustaría señalar que tengo ni idea lo que estoy haciendo, y vagando a ciegas. Asumí que KS funcionaba como chi-cuadrado, y miraba las diferencias entre los datos de la muestra que tengo, y lo que debería ser la distribución en sí. R's ks.test acepta en primer lugar los datos de la muestra, y luego una distribución, junto con los parámetros de esa distribución. Utilicé los MLE como parámetros. Además, mi suposición/recuerdo de cómo funciona Chi-cuadrado también podría haber sido errónea...

0 votos

Creo que hay que tener cuidado con este planteamiento. En primer lugar, tienes que responder: ¿quieres realizar una prueba de bondad de ajuste para la normalidad sesgada de tus datos? o, ¿quieres comprobar si los datos son normales o normales sesgados, es decir. H0:λ=0 ?

0voto

NaN Puntos 313

Comprueba http://www.egyankosh.ac.in/bitstream/123456789/25807/1/Unit6.pdf y http://en.wikipedia.org/wiki/Skewness

Puede utilizar la prueba de Karl Pearson para la asimetría. La relación entre el tercer momento y el cubo de la desviación estándar se llama coeficiente de asimetría. Las distribuciones simétricas tendrían una asimetría = 0

2 votos

No quiero calcular el sesgo de mis datos. Sé que están sesgados. Quiero saber si mis datos siguen una distribución asimétrica normal.

2 votos

R tiene un paquete 'sn' (skew normal) que contiene funciones que calculan las estimaciones ML. No estoy seguro de las funciones exactas, sin embargo - echa un vistazo a este sitio azzalini.stat.unipd.it/SN para obtener más información sobre el paquete R

0voto

user2771704 Puntos 145

En SPSS puede obtener una estimación de la asimetría (yendo a analizar y luego a descriptivos y marcando la asimetría), entonces obtendrá una puntuación de asimetría y S.E (error estándar) de asimetría. Divida la asimetría por su E.S. y si su puntuación está entre +-1,96 es normalmente asimétrica. Si no es asimétrica, existen muchas pruebas no paramétricas. Buena suerte y todo lo mejor.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X