Bezüglich der Anpassung von Daten an eine Schrägnormalverteilung Sie können den Maximum-Likelihood-Schätzer anhand der ersten Prinzipien berechnen. Zunächst ist zu beachten, dass die Wahrscheinlichkeitsdichtefunktion für die Schrägnormalverteilung mit dem Ortsparameter , dem Skalenparameter ω und dem Formparameter α istξωα
2ωϕ(x−ξω)Φ(α(x−ξω))
Dabei ist die Standardfunktion der normalen Dichte und Φ ( ⋅ ) die Standard-Normal-CDF. Beachten Sie, dass diese Dichte ein Mitglied der Klasse ist, die in meiner Antwort auf diese Frage beschrieben ist .ϕ(⋅)Φ(⋅)
Die Log-Wahrscheinlichkeit basierend auf einer Stichprobe von unabhängigen Beobachtungen aus dieser Verteilung ist:n
−nlog(ω)+∑i=1nlogϕ(x−ξω)+logΦ(α(x−ξω))
Es ist eine Tatsache, dass es für diese MLE keine geschlossene Lösung gibt. Es kann jedoch numerisch gelöst werden. Zum Beispiel R
könnten Sie in die Wahrscheinlichkeitsfunktion wie folgt codieren (Hinweis: Ich habe sie weniger kompakt / effizient als möglich gemacht, um sie vollständig transparent zu machen, wie dies die Wahrscheinlichkeitsfunktion oben berechnet).
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]))
}
Jetzt minimieren wir diese Funktion nur numerisch (dh maximieren die Wahrscheinlichkeit). Sie können dies tun, ohne Ableitungen berechnen zu müssen, indem Sie den Simplex-Algorithmus verwenden , der die Standardimplementierung im optim()
Paket in ist R
.
In Bezug auf das Testen auf Schiefe: Wir können explizit auf Schiefe-Normal gegenüber Normal testen (da Normal ein Submodell ist), indem wir einschränken und einen Likelihood-Ratio-Test durchführen .α=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
Wir lehnen also die Nullhypothese, dass (dh kein Versatz), nicht ab.α=0
Hier war der Vergleich einfach, da die Normalverteilung ein Untermodell war. In anderen, allgemeineren Fällen können Sie die Versatznormale mit anderen Referenzverteilungen vergleichen, indem Sie beispielsweise AICs (wie hier ausgeführt ) vergleichen, wenn Sie in allen konkurrierenden Anpassungen Schätzer für die maximale Wahrscheinlichkeit verwenden. Beispielsweise könnten Sie die Daten nach maximaler Wahrscheinlichkeit unter einer Gammaverteilung und unter der Versatznormalen anpassen und prüfen, ob die hinzugefügte Wahrscheinlichkeit die zusätzliche Komplexität der Versatznormalen rechtfertigt (3 Parameter anstelle von 2). Sie können auch den Kolmogorov-Smirnov-Test mit einer Stichprobe verwenden , um Ihre Daten mit der am besten passenden Schätzung aus der Familie der Schrägnormalen zu vergleichen.