识别特定的分位点

时间:2015-10-14 17:02:44

标签: r

我想确定百分点位于0.01到0.99之间,这产生了特定的覆盖概率o.90。在以下程序中,变量的值为' m'和' l'提供覆盖概率0.90,然后执行m和l?

的值
count<-0
for(m=seq(0.0, 0.05,0.01){
for(l=seq(0.50,0.99,0.01){
for(j in 1:100){
u[j]<-rchisq(1,1,0)
for(i in 1:100){
z[i]<-rnorm(1,0,1)
}
a1[j]<-quantile(z,m)
a2[j]<-quantile(z,l)
if(a1[j]<u[j] && a2[j]>u[j]){
count<-count+1
}
}
}
}
if(count==90)
m
l

1 个答案:

答案 0 :(得分:0)

对于R中的循环,组成为for( i in z) {},而不是使用等号。但是你不想把R代码写成Fortran,无论如何。目前还不清楚“执行价值”是什么意思。 (以及单个正常变量和单个chisq变量的绘制如何帮助超出我的范围。)

m=seq(0.0, 0.05,0.01)
l=seq(0.50,0.99,0.01)

> (q90.m <- quantile(m, prob=.9))
  90% 
0.045 
> ( q90.l <- quantile(l, prob=.9) )
  90% 
0.941 

请注意,由R计算的第90个百分位数(类型= 7)实际上并不在分位数的数据参数中,因此这为您提供了另一个可能的“答案”::

> m[ which(m >= q90.m) ]
[1] 0.05

请参阅帮助页面以了解分位数功能:

 ?quantile