背景: 我有一个要在尾部分布较大的情况下建模的样本。我有一些极端的值,以至于观察值的分布相对较大。我的想法是使用广义Pareto分布对此建模,所以我做到了。现在,我的经验数据的0.975分位数(约100个数据点)低于我拟合到我的数据的广义帕累托分布的0.975分位数。我想,现在有什么方法可以检查这种差异是否值得担心吗?
我们知道分位数的渐近分布为:
因此,我认为通过尝试在广义Pareto分布的0.975分位数附近绘制95%的置信带,并使用与我拟合数据时得到的参数相同的参数来激发我的好奇心是个好主意。
如您所见,我们在这里使用一些极限值。而且由于分布是如此之大,因此密度函数的值非常小,使用上面的渐近正态性公式的方差使置信带达到的数量级:
因此,这没有任何意义。我的分布只有积极的结果,而置信区间包括负值。所以这里发生了一些事情。如果我计算0.5分位数附近的谱带,则谱带并不是那么大,但仍然很大。
我继续看一下如何与另一个分布,即分布一起使用。从分布模拟观测值,并检查分位数是否在置信带内。我这样做了10000次,以查看置信区间内模拟观察值的0.975 / 0.5分位数的比例。
################################################
# 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
编辑:我固定了代码,并且两个分位数在n = 100和命中了大约95%。如果我将标准偏差提高到,则带内的命中很少。因此问题仍然存在。
EDIT2:我撤回了我在上面的第一次EDIT中所声称的内容,正如一位乐于助人的先生在评论中所指出的那样。实际上,看起来这些配置项对于正态分布是有益的。
如果要检查在给定的特定分布下是否有可能观察到某些分位数,那么阶跃统计量的这种渐近正态性只是一种非常不好的度量方法吗?
直观地,在我看来,分布的方差(一个人认为创建了数据,或者在我的R示例中,我们知道创建了数据)与观察数之间存在某种关系。如果您有1000个观测值并且方差很大,那么这些波段是不好的。如果一个人有1000个观测值,并且方差很小,那么这些频段可能会很有意义。
有人愿意为我解决这个问题吗?
band = 1.96*sqrt((0.975*0.025)/(100*n*(f_norm)^2))