En ce qui concerne l'ajustement des données à une distribution asymétrique-normale Vous pouvez calculer l'estimateur du maximum de vraisemblance à partir des premiers principes. Notez d'abord que la fonction de densité de probabilité pour la distribution normale de biais avec le paramètre de localisation , le paramètre d'échelle et le paramètre de forme estξωα
2ωϕ ( x - ξω) Φ ( α ( x - ξω) )
où est la fonction de densité normale standard et est le CDF normal standard. Notez que cette densité fait partie de la classe décrite dans ma réponse à cette question .ϕ ( ⋅ )Φ ( ⋅ )
La log-vraisemblance basée sur un échantillon de observations indépendantes de cette distribution est:n
- n log( ω ) + ∑i = 1nJournalϕ ( x - ξω) +journalΦ ( α ( x - ξω) )
C'est un fait qu'il n'y a pas de solution sous forme fermée pour ce MLE. Mais, il peut être résolu numériquement. Par exemple, dans R
, vous pouvez coder la fonction de vraisemblance comme (remarque, je l'ai rendue moins compacte / efficace que possible pour la rendre complètement transparente sur la façon dont cela calcule la fonction de vraisemblance ci-dessus):
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]))
}
Maintenant, nous minimisons simplement cette fonction numériquement (c.-à-d. Maximisons la probabilité). Vous pouvez le faire sans avoir à calculer les dérivées à l'aide de l' algorithme Simplex , qui est l'implémentation par défaut du optim()
package dans R
.
Concernant la façon de tester l'asymétrie: nous pouvons explicitement tester l' asymétrie normale par rapport à la normale (puisque la normale est un sous-modèle) en contraignant et en faisant un test de rapport de vraisemblance .α=0
# 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
Donc nous ne rejetons donc pas l'hypothèse nulle que (ie pas de biais).α=0
Ici, la comparaison était simple, car la distribution normale était un sous-modèle. Dans d'autres cas, plus généraux, vous pouvez comparer le skew-normal à d'autres distributions de référence en comparant, par exemple, les AIC (comme ici ) si vous utilisez des estimateurs du maximum de vraisemblance dans tous les ajustements concurrents. Par exemple, vous pouvez ajuster les données selon la probabilité maximale sous une distribution gamma et sous la normale de biais et voir si la probabilité ajoutée justifie la complexité supplémentaire de la normale de biais (3 paramètres au lieu de 2). Vous pouvez également envisager d'utiliser le test de Kolmogorov Smirnov pour comparer vos données avec la meilleure estimation d'ajustement de la famille skew-normal.
Je suis un statisticien qui travaille dans cette profession depuis plus de 30 ans et avant de lire ce post, je n'avais jamais entendu parler de la distribution normale asymétrique. Si vous avez des données très asymétriques, pourquoi voulez-vous spécifiquement considérer l'asymétrie normale plutôt que lognormale ou gamma? Chaque fois que vous avez une famille paramétrique de distributions telles que le gamma, lognormal ou skew normal, vous pouvez appliquer un test d'ajustement tel que le chi carré ou Kolmogorov-Smirnov.
la source
Donc, ma solution à la fin était de télécharger le package fGarch , et
snormFit
fourni par fGarch pour obtenir des MLE pour les paramètres à un Skewed-Normal.J'ai ensuite branché ces paramètres, avec la
dsnorm
fonction fournie par fGarch, dans un test de Kolmogorov-Smirnov.la source
Consultez http://www.egyankosh.ac.in/bitstream/123456789/25807/1/Unit6.pdf et http://en.wikipedia.org/wiki/Skewness
Vous pouvez utiliser le test de Karl Pearson pour l'asymétrie. Le rapport du troisième moment au cube de l'écart type est appelé coefficient d'asymétrie. Les distributions symétriques auraient une asymétrie = 0
la source
dans SPSS, vous pouvez obtenir une estimation de l'asymétrie (en analysant puis en décrivant puis en marquant l'asymétrie), puis vous obtenez un score d'asymétrie et SE (erreur standard) d'asymétrie. Divisez l'asymétrie par son SE et si votre score est compris entre + -1,96, il est normalement asymétrique. Si ce n'est pas asymétrique, il existe de nombreux tests non paramétriques! Bonne chance, et tout mes voeux de réussite!
la source