Arka plan: Ağır kuyruklu bir dağılımla modellemek istediğim bir örnek var. Gözlemlerin yayılması nispeten büyük olacak şekilde bazı aşırı değerlerim var. Benim fikrim bunu genel bir Pareto dağılımı ile modellemekti ve ben de yaptım. Şimdi, ampirik verilerimin 0.975 kantili (yaklaşık 100 veri noktası) verilerime taktığım Genelleştirilmiş Pareto dağılımının 0.975 kantilinden daha düşük. Şimdi, bu farkın endişelenecek bir şey olup olmadığını kontrol etmenin bir yolu var mı diye düşündüm.
Kuantillerin asimptotik dağılımının şu şekilde verildiğini biliyoruz:
Bu nedenle, verilerimin uyumundan elde ettiğim parametrelerle aynı parametrelerle 0.975 kantil genelleştirilmiş Pareto dağılımının etrafında% 95 güven bandını çizmeye çalışarak merakımı eğlendirmenin iyi bir fikir olacağını düşündüm.
Gördüğünüz gibi, burada bazı aşırı değerlerle çalışıyoruz. Ve yayılma çok büyük olduğundan, yoğunluk fonksiyonu son derece küçük değerlere sahiptir, bu da güven bantlarını yukarıdaki asimtotik normallik formülünün varyansını kullanarak sırasına getirir:
Yani, bu bir anlam ifade etmiyor. Sadece olumlu sonuçlara sahip bir dağılımım var ve güven aralıkları negatif değerler içeriyor. Yani burada bir şeyler oluyor. Bantları 0,5 kantil civarında hesaplarsam, bantlar o kadar büyük değil , yine de çok büyüktür.
Bunun başka bir dağıtımla, yani dağıtımı ile nasıl gittiğini görmeye devam ediyorum . Bir dağılımından gözlemi simüle edin ve niceliklerin güven bantları içinde olup olmadığını kontrol edin. Güven bantları içindeki simüle edilmiş gözlemlerin 0.975 / 0.5 miktarlarının oranlarını görmek için bunu 10000 kez yapıyorum.
################################################
# 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 : Ben kodu sabit, ve her iki quantiles n = 100 ve ile yaklaşık% 95 isabet verir . Eğer standart sapmayı getirirsem , bantlar içinde çok az isabet olur. Yani soru hala duruyor.
EDIT2 : Yararlı bir beyefendi tarafından yapılan yorumlarda belirtildiği gibi yukarıdaki ilk EDIT'te iddia ettiğim şeyi geri çekiyorum . Aslında bu CI'ler normal dağılım için iyi görünüyor.
Belli bir aday dağılımı göz önüne alındığında, gözlemlenen bir miktar kantilin mümkün olup olmadığını kontrol etmek istiyorsa, sipariş istatistiğindeki bu asimtotik normallik sadece çok kötü bir önlem midir?
Sezgisel olarak, bana göre, dağılımın varyansı (birinin veri yarattığını düşünen veya R örneğimde, veri yarattığını bildiğimiz) ve gözlem sayısı arasında bir ilişki var gibi görünüyor. 1000 gözleminiz ve muazzam bir varyansınız varsa, bu gruplar kötüdür. Eğer bir kişinin 1000 gözlemi ve küçük bir varyansı varsa, bu gruplar belki mantıklı olur.
Bunu benim için temizlemek isteyen var mı?
band = 1.96*sqrt((0.975*0.025)/(100*n*(f_norm)^2))
, bu yardımcı olabilir. Üzgünüm bunu ilk kez özledim. (Belki de bunu düzelttiniz ancak sorunun ilgili bölümlerini güncellemediniz.)