Puis-je tester l'hypothèse pour les données normales asymétriques?


11

J'ai une collection de données, que je pensais à l'origine être normalement distribuée. Ensuite, je l'ai regardé et j'ai réalisé que ce n'était pas le cas, principalement parce que les données sont biaisées, et j'ai également fait un test de shapiro-wilks.

Je voudrais toujours l'analyser en utilisant des méthodes statistiques, et je voudrais donc tester l'hypothèse de la asymétrie-normalité.

J'aimerais donc savoir s'il existe un moyen de tester la normalité de l'inclinaison et, si possible, une bibliothèque pour effectuer le test pour moi.

Réponses:


8

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

nlog(ω)+i=1nlogϕ(xξω)+logΦ(α(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.


1
+1, je pense que c'est une réponse claire, approfondie et constructive. J'ai 1 piqûre / préoccupation dans le dernier paragraphe concernant l'utilisation de l'AIC. Un problème que j'ai avec les divers critères d'information est qu'ils supposent que tous les paramètres contribuent également à la capacité du modèle à ajuster les données. Lors de l'évaluation de différents modèles de régression multiple, je pense que c'est bien; cependant, si l'on examine différents types de distributions, il n'est pas clair pour moi a priori que tous les paramètres offrent une flexibilité égale. Ainsi, je suis mal à l'aise avec ça. Quelle est votre position sur cette question?
gung - Reinstate Monica

+1 Je suis juste un peu inquiet à propos de certains problèmes avec le biais normal d'Azzalini tels que: (1) la matrice d'informations Fisher de , le paramètre d'asymétrie, est singulière à ce qui indique des problèmes inférentiels à ce stade, spécialement lorsque en utilisant la statistique du rapport de vraisemblance; (2) La probabilité de profil de est généralement très plate ; (3) Il a deux points d'inflexion et l'articulation MLE de n'existe pas pour certains ensembles de données. α = 0 α ( μ , σ , α )αα=0α(μ,σ,α)

@gung, c'est un bon point. J'utilisais AIC comme exemple plus que tout - quelque chose d'autre pourrait être utilisé - mais j'ai vu des gens utiliser AIC pour comparer des modèles avec différentes distributions d'erreur, ce qui fait en fait cette même hypothèse que tous les paramètres sont "créés égaux". Avez-vous vu de la littérature sur ce sujet? Je serais intéressé.
Macro

@Procrastinator, lorsque , vous avez la distribution normale régulière en tant que sous-modèle. Il est simple de faire cette comparaison sans inverser les informations du pêcheur. Re: (2), oui c'est vrai, il est également vrai que le niveau d'asymétrie réalisable avec cette distribution est assez modeste (maximum autour de qui se produit lorsque diverge vers ), donc à tout moment l'ensemble de données affiche ce niveau d'asymétrie, la probabilité de sera assez plate (c'est-à-dire qu'elle augmentera lentement à mesure que diverge). Je suppose que la dernière remarque était également liée à (3)± .9 α ± α αα=0±.9α±αα
Macro

1
@Macro Merci pour cela. Cela dépend également de la façon dont vous mesurez l'asymétrie, les mesures basées sur le moment ne sont pas très utilisées de nos jours car elles n'existent que pour les distributions à queue légère. Le problème est également que la probabilité de profil de a deux points d'inflexion (comme indiqué dans mon premier lien). Dans le site Web d'Azzalini, il mentionne également que le MLE n'existe pas pour certains ensembles de données qu'il caractérise également. C'est un point délicat sur cette distribution qui a suscité de nombreuses critiques. Merci pour la discussion. α

5

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.


5
L'Azzalini skew normal est une distribution populaire proposée en 1985. Il a un support sur toute la ligne réelle.

1
@Procrastinator Je le sais maintenant et j'aurais probablement dû en entendre parler auparavant. Mais je suppose que mon point est que puisque je n'en avais pas entendu parler, c'est peut-être un peu plus obscur que les autres distributions asymétriques. J'obtiens le point sur le support sur toute la ligne réelle par opposition à mes exemples qui ne supportent que sur [0.∞) ou {a, ∞) si un paramètre shift est ajouté. Ces distributions ne sont que des approximations pour décrire comment les données sont distribuées. Savons-nous vraiment que toutes les valeurs négatives sont possibles? Dans des cas pratiques, les données ont probablement des limites inférieures et supérieures.
Michael R. Chernick

1
@Procrastinator Cela n'a rien à voir avec mon commentaire. Je dis que les données réelles sont souvent vraiment limitées même lorsqu'elles peuvent être bien approximées avec des distributions illimitées.
Michael R. Chernick

1
@Procrastinator Pas tout à fait. Si on vous donne un ensemble fini de nombres, vous ne pouvez pas dire à partir des données s'ils proviennent ou non d'une distribution discrète ou continue. Il en va de même pour les limites. Je dis qu'en dehors des données, vous sauriez strictement sur la base de ce que vous mesurez si elles sont limitées et continues ou discrètes. Si, par exemple, vous mesurez le poids d'une personne, vous savez que le poids est supérieur à 0 et limité par des limitations physiques, disons 5000 livres.
Michael R. Chernick

1
De plus, même si les mesures de poids ne peuvent être déterminées qu'à un certain nombre de décimales, il est raisonnable de traiter le poids comme continu. Maintenant, si vous allez lancer une pièce 10 fois, vous savez que le nombre de têtes que vous obtiendrez doit être un entier compris entre 0 et 10 (donc discret et borné). Mon point est que les limites de la distribution sont généralement très apparentes. Ce n'est pas aussi clair lorsque l'on décide entre des distributions continues et discrètes.
Michael R. Chernick

1

Donc, ma solution à la fin était de télécharger le package fGarch , et snormFitfourni par fGarch pour obtenir des MLE pour les paramètres à un Skewed-Normal.

J'ai ensuite branché ces paramètres, avec la dsnormfonction fournie par fGarch, dans un test de Kolmogorov-Smirnov.


Comment combiner le MLE et le test de Kolmogorov-Smirnov, qui est un test non paramétrique?

Je voudrais souligner que je n'ai aucune idée de ce que je fais et que je me promène aveuglément. J'ai supposé que KS fonctionnait comme le chi carré, et il a examiné les différences entre les données d'échantillonnage que j'ai et la distribution elle-même. Le ks.test de R accepte d'abord les données d'échantillon, puis une distribution, ainsi que les paramètres de cette distribution. J'ai utilisé les MLE comme paramètres. En outre, mon hypothèse / souvenir de la façon dont fonctionne le Chi au carré aurait également pu être erronée ...
Squidly

H0:λ=0

H0=λ=0H0

1
@Procrastinator Il existe de nombreux tests d'adéquation basés sur le cdf empirique. Kolmogorov Smirnov en est un. Ces tests peuvent être utilisés pour comparer le cdf empirique à n'importe quelle distribution spécifique (et avec des ajustements lorsque des paramètres inconnus sont estimés avant le test. Vous avez tout à fait raison de dire que le rejet d'une distribution pour la normalité par exemple ne dit pas comment les distributions diffèrent. Mais MrBones s'il veut le faire formellement, il peut tester une asymétrie significative, puis faire un test KS ou chi carré pour une asymétrie normale. Des ajustements peuvent être effectués pour plusieurs tests. Pourquoi être suffisant avec l'OP?
Michael R. Chernick

0

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


2
Je ne veux pas corriger le biais de mes données. Je sais que c'est biaisé. Je veux savoir si mes données suivent une distribution asymétrique normale.
Squidly

2
Quel logiciel utilisez-vous, R a un package 'sn' (skew normal) qui contient des fonctions qui calculent les estimations ML. Je ne suis pas sûr des fonctions exactes cependant - consultez ce site azzalini.stat.unipd.it/SN pour plus de détails sur le package R
NaN

0

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!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.