Contexte: J'ai un échantillon que je veux modéliser avec une distribution à queue lourde. J'ai des valeurs extrêmes, telles que la diffusion des observations est relativement importante. Mon idée était de modéliser cela avec une distribution Pareto généralisée, et c'est ce que j'ai fait. Maintenant, le quantile 0,975 de mes données empiriques (environ 100 points de données) est inférieur au quantile 0,975 de la distribution de Pareto généralisée que j'ai ajusté à mes données. Maintenant, je pensais, est-il possible de vérifier si cette différence est quelque chose à craindre?
Nous savons que la distribution asymptotique des quantiles est donnée par:
J'ai donc pensé que ce serait une bonne idée de divertir ma curiosité en essayant de tracer les bandes de confiance à 95% autour du quantile de 0,975 d'une distribution de Pareto généralisée avec les mêmes paramètres que ceux obtenus par l'ajustement de mes données.
Comme vous le voyez, nous travaillons ici avec des valeurs extrêmes. Et comme la propagation est si énorme, la fonction de densité a des valeurs extrêmement faibles, ce qui fait passer les bandes de confiance à l'ordre de utilisant la variance de la formule de normalité asymptotique ci-dessus:
Donc, cela n'a aucun sens. J'ai une distribution avec uniquement des résultats positifs et les intervalles de confiance incluent des valeurs négatives. Il se passe donc quelque chose ici. Si je calcule les bandes autour du 0,5 quantile, les bandes ne sont pas si énormes, mais quand même énormes.
Je vais voir comment cela se passe avec une autre distribution, à savoir la distribution . Simulez observations à partir d'une distribution et vérifiez si les quantiles se trouvent dans les bandes de confiance. Je fais cela 10000 fois pour voir les proportions des quantiles 0,975 / 0,5 des observations simulées qui se trouvent dans les bandes de confiance.
################################################
# 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 : J'ai corrigé le code, et les deux quantiles donnent environ 95% de hits avec n = 100 et avec . Si je monte l'écart-type à , alors très peu de hits sont dans les bandes. La question est donc toujours en suspens.
EDIT2 : Je retire ce que j'ai réclamé dans le premier EDIT ci-dessus, comme indiqué dans les commentaires d'un gentleman serviable. Il semble que ces CI soient bons pour la distribution normale.
Cette normalité asymptotique de la statistique d'ordre n'est-elle qu'une très mauvaise mesure à utiliser, si l'on veut vérifier si un quantile observé est probable compte tenu d'une certaine distribution candidate?
Intuitivement, il me semble qu'il y a une relation entre la variance de la distribution (que l'on pense avoir créé les données, ou dans mon exemple R, que nous savons avoir créé les données) et le nombre d'observations. Si vous avez 1000 observations et une énorme variance, ces bandes sont mauvaises. Si l'on a 1000 observations et une petite variance, ces bandes auraient peut-être du sens.
Quelqu'un veut clarifier ça pour moi?
band = 1.96*sqrt((0.975*0.025)/(100*n*(f_norm)^2))
Réponses:
Je suppose que votre dérivation vient de quelque chose comme celle de cette page .
Eh bien, étant donné l'approximation normale qui a du sens. Rien n'empêche une approximation normale de vous donner des valeurs négatives, c'est pourquoi il s'agit d'une mauvaise approximation pour une valeur limitée lorsque la taille de l'échantillon est petite et / ou que la variance est grande. Si vous augmentez la taille de l'échantillon, les intervalles diminuent, car la taille de l'échantillon est au dénominateur de l'expression pour la largeur de l'intervalle. La variance entre dans le problème par la densité: pour la même moyenne, une variance plus élevée aura une densité différente, plus élevée aux marges et plus basse près du centre. Une densité plus faible signifie un intervalle de confiance plus large car la densité est au dénominateur de l'expression.
Un peu de recherche a trouvé cette page , entre autres, qui utilise l'approximation normale de la distribution binomiale pour construire les limites de confiance. L'idée de base est que chaque observation tombe en dessous du quantile avec la probabilité q , de sorte que la distribution est binomiale. Lorsque la taille de l'échantillon est suffisamment grande (c'est important), la distribution binomiale est bien approximée par une distribution normale avec moyen et variance . Ainsi, la limite de confiance inférieure aura l'index , et la limite de confiance supérieure aura l'index . Il est possible que ounq nq(1−q) k=nq-1,96 √j=nq−1.96nq(1−q)−−−−−−−−√ k>nj<1k=nq−1.96nq(1−q)−−−−−−−−√ k>n j<1 lorsque je travaille avec des quantiles près du bord, et la référence que j'ai trouvée est silencieuse à ce sujet. J'ai choisi de ne traiter que le maximum ou le minimum comme valeur pertinente.
Dans la réécriture suivante de votre code, j'ai construit la limite de confiance sur les données empiriques et testé pour voir si le quantile théorique se situe à l'intérieur de cela. Cela a plus de sens pour moi, car le quantile de l'ensemble de données observé est la variable aléatoire. La couverture pour n> 1000 est ~ 0,95. Pour n = 100, il est pire à 0,85, mais c'est normal pour les quantiles près des queues avec de petits échantillons.
Pour ce qui est de déterminer quelle taille d'échantillon est "assez grande", eh bien, plus c'est gros, mieux c'est. La question de savoir si un échantillon particulier est «suffisamment grand» dépend fortement du problème en question et de votre degré de difficulté à propos de choses comme la couverture de vos limites de confiance.
la source