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))