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))
Antworten:
Ich gehe davon aus, dass Ihre Ableitung dort von so etwas wie der auf dieser Seite stammt .
Nun, angesichts der normalen Annäherung, die Sinn macht. Nichts hindert eine normale Näherung daran, negative Werte zu erhalten, weshalb es eine schlechte Näherung für einen begrenzten Wert ist, wenn die Stichprobengröße klein und / oder die Varianz groß ist. Wenn Sie die Stichprobengröße erhöhen, werden die Intervalle kleiner, da die Stichprobengröße im Nenner des Ausdrucks für die Breite des Intervalls liegt. Die Varianz tritt durch die Dichte in das Problem ein: Für den gleichen Mittelwert hat eine höhere Varianz eine andere Dichte, die an den Rändern höher und nahe der Mitte niedriger ist. Eine niedrigere Dichte bedeutet ein breiteres Konfidenzintervall, da die Dichte im Nenner des Ausdrucks liegt.
Ein bisschen googeln hat unter anderem diese Seite gefunden , die die normale Annäherung an die Binomialverteilung verwendet, um die Konfidenzgrenzen zu konstruieren. Die Grundidee ist, dass jede Beobachtung mit der Wahrscheinlichkeit q unter das Quantil fällt , so dass die Verteilung binomial ist. Wenn die Stichprobengröße ausreichend groß ist (das ist wichtig), wird die Binomialverteilung durch eine Normalverteilung mit dem Mittelwert und der Varianz gut angenähert . Die untere Konfidenzgrenze hat also den Index , und die obere Konfidenzgrenze hat den Index . Es besteht die Möglichkeit, dass entweder odernq nq(1−q) j=nq−1.96nq(1−q)−−−−−−−−√ k=nq−1.96nq(1−q)−−−−−−−−√ k>n j<1 wenn mit Quantilen nahe der Kante gearbeitet wird, und die Referenz, die ich gefunden habe, schweigt darüber. Ich habe mich dafür entschieden, nur das Maximum oder Minimum als relevanten Wert zu behandeln.
Beim folgenden Umschreiben Ihres Codes habe ich die Konfidenzgrenze für die empirischen Daten erstellt und getestet, ob das theoretische Quantil in diesen Bereich fällt. Das ist für mich sinnvoller, weil das Quantil des beobachteten Datensatzes die Zufallsvariable ist. Die Abdeckung für n> 1000 beträgt ~ 0,95. Für n = 100 ist es mit 0,85 schlechter, aber das ist für Quantile in der Nähe der Schwänze mit kleinen Stichprobengrößen zu erwarten.
Um festzustellen, welche Stichprobengröße "groß genug" ist, ist größer besser. Ob eine bestimmte Stichprobe "groß genug" ist, hängt stark vom jeweiligen Problem ab und davon, wie pingelig Sie in Bezug auf Dinge wie die Abdeckung Ihrer Vertrauensgrenzen sind.
quelle