Hintergrund: Ich habe ein Beispiel, das ich mit einer starken Schwanzverteilung modellieren möchte. Ich habe einige Extremwerte, so dass die Verbreitung der Beobachtungen relativ groß ist. Meine Idee war es, dies mit einer verallgemeinerten Pareto-Verteilung zu modellieren, und das habe ich auch getan. Jetzt ist das 0,975-Quantil meiner empirischen Daten (ungefähr 100 Datenpunkte) niedriger als das 0,975-Quantil der verallgemeinerten Pareto-Verteilung, das ich an meine Daten angepasst habe. Nun, dachte ich, gibt es eine Möglichkeit zu überprüfen, ob dieser Unterschied Anlass zur Sorge gibt?
Wir wissen, dass die asymptotische Verteilung der Quantile wie folgt angegeben ist:
Daher hielt ich es für eine gute Idee, meine Neugier zu wecken, indem ich versuchte, die 95% -Konfidenzbänder um das 0,975-Quantil einer verallgemeinerten Pareto-Verteilung mit denselben Parametern zu zeichnen, die ich aus der Anpassung meiner Daten erhalten hatte.
Wie Sie sehen, arbeiten wir hier mit einigen Extremwerten. Und da die Streuung so enorm ist, hat die Dichtefunktion extrem kleine Werte, wodurch die Konfidenzbänder unter Verwendung der Varianz der obigen asymptotischen Normalitätsformel in die Größenordnung von :
Das macht also keinen Sinn. Ich habe eine Verteilung mit nur positiven Ergebnissen, und die Konfidenzintervalle enthalten negative Werte. Hier ist also etwas los. Wenn ich die Banden um das 0,5-Quantil berechne, sind die Banden nicht so groß, aber immer noch riesig.
Ich gehe weiter, um zu sehen, wie dies mit einer anderen Verteilung funktioniert, nämlich der -Verteilung. Simulieren Sie Beobachtungen aus einer -Verteilung und prüfen Sie, ob die Quantile innerhalb der Konfidenzbänder liegen. Ich mache das 10000 Mal, um die Anteile der 0,975 / 0,5-Quantile der simulierten Beobachtungen zu sehen, die innerhalb der Konfidenzbänder liegen.
################################################
# Test at the 0.975 quantile
################################################
#normal(1,1)
#find 0.975 quantile
q_norm<-qnorm(0.975, mean=1, sd=1)
#find density value at 97.5 quantile:
f_norm<-dnorm(q_norm, mean=1, sd=1)
#confidence bands absolute value:
band=1.96*sqrt((0.975*0.025)/(100*(f_norm)^2))
u=q_norm+band
l=q_norm-band
hit<-1:10000
for(i in 1:10000){
d<-rnorm(n=100, mean=1, sd=1)
dq<-quantile(d, probs=0.975)
if(dq[[1]]>=l & dq[[1]]<=u) {hit[i]=1} else {hit[i]=0}
}
sum(hit)/10000
#################################################################3
# Test at the 0.5 quantile
#################################################################
#using lower quantile:
#normal(1,1)
#find 0.7 quantile
q_norm<-qnorm(0.7, mean=1, sd=1)
#find density value at 0.7 quantile:
f_norm<-dnorm(q_norm, mean=1, sd=1)
#confidence bands absolute value:
band=1.96*sqrt((0.7*0.3)/(100*(f_norm)^2))
u=q_norm+band
l=q_norm-band
hit<-1:10000
for(i in 1:10000){
d<-rnorm(n=100, mean=1, sd=1)
dq<-quantile(d, probs=0.7)
if(dq[[1]]>=l & dq[[1]]<=u) {hit[i]=1} else {hit[i]=0}
}
sum(hit)/10000
EDIT : Ich habe den Code korrigiert und beide Quantile ergeben ungefähr 95% Treffer mit n = 100 und mit . Wenn ich die Standardabweichung auf hochdrehe, sind nur sehr wenige Treffer innerhalb der Bänder. Die Frage steht also noch.
EDIT2 : Ich ziehe zurück , was ich in der ersten EDIT oben behauptet habe, wie in den Kommentaren eines hilfreichen Gentleman ausgeführt. Es sieht tatsächlich so aus, als wären diese CIs gut für die Normalverteilung.
Ist diese asymptotische Normalität der Ordnungsstatistik nur ein sehr schlechtes Maß, wenn man überprüfen möchte, ob ein beobachtetes Quantil bei einer bestimmten Kandidatenverteilung wahrscheinlich ist?
Intuitiv scheint es mir, dass es einen Zusammenhang zwischen der Varianz der Verteilung (von der man glaubt, dass sie die Daten erzeugt hat, oder in meinem R-Beispiel, von dem wir wissen, dass sie die Daten erzeugt hat) und der Anzahl der Beobachtungen gibt. Wenn Sie 1000 Beobachtungen und eine enorme Varianz haben, sind diese Bänder schlecht. Wenn man 1000 Beobachtungen und eine kleine Varianz hat, wären diese Bänder vielleicht sinnvoll.
Möchte jemand das für mich klären?
band = 1.96*sqrt((0.975*0.025)/(100*n*(f_norm)^2))