首先手动计算分位数的置信区间(比在R中)

时间:2013-12-09 21:25:15

标签: r percentile confidence-interval quantile

如果有人能够检查我的方法是否正确,那就太好了。 简而言之,如果误差计算是正确的方法。 我假设我有以下数据。

data = c(23.7,25.47,25.16,23.08,24.86,27.89,25.9,25.08,25.08,24.16,20.89)

此外,我想检查我的数据是否遵循正态分布。

编辑:我知道有测试等,但我会集中精力构建带有置信线的qqplot。我知道汽车包装中有一种方法,但我想了解这些生产线的构建。

所以我计算了我的样本数据的百分位数以及我的理论分布(估计mu = 24.6609sigma = 1.6828。所以我最终得到这两个包含百分位数的向量。

percentileReal =  c(23.08,23.7,24.16,24.86,25.08,25.08,25.16,25.47,25.90)
percentileTheo =  c(22.50,23.24,23.78,24.23,24.66,25.09,25.54,26.08,26.82)

现在我想计算alpha=0.05对理论百分位数的置信度。如果我记得自己是正确的,公式由

给出
error = z*sigma/sqrt(n),
value = +- error

n=length(data)z=quantil of the normal distribution for the given p

因此,为了获得第二百分位数的信任,我将执行以下操作:

error = (qnorm(20+alpha/2,mu,sigma)-qnorm(20-alpha/2,mu,sigma))*sigma/sqrt(n) 

插入值:

error = (qnorm(0.225,24.6609,1.6828)-qnorm(0.175,24.6609,1.6828)) * 1.6828/sqrt(11)
error = 0.152985
confidenceInterval(for 2nd percentil) = [23.24+0.152985,23.24-0.152985]
confidenceInterval(for 2nd percentil) = [23.0870,23.3929]

最后我有

percentileTheoLower = c(...,23.0870,.....)
percentileTheoUpper = c(...,23.3929,.....)

其余的......

那你觉得怎么样,我可以继续吗?

1 个答案:

答案 0 :(得分:0)

如果您的目标是测试数据是否遵循正态分布,请使用shapiro.wilk test

shapiro.test(data)
# Shapiro-Wilk normality test
# data:  data
# W = 0.9409, p-value = 0.5306

1-p是分布非正常的概率。所以,因为p>0.05我们不能断言分布是非正常的。粗略的解释是“分配正常的可能性为53%。”

您也可以使用qqplot(...)。该图越接近线性,您的数据正常分布的可能性就越大。

 qqnorm(data)

最后,R中有nortest个包,其中包括Pearson Chi-Sq正常性测试:

 library(nortest)
 pearson.test(data)
 #  Pearson chi-square normality test
 #  data:  data
 #  P = 3.7273, p-value = 0.2925

这个(更保守的)测试表明,分布正常的可能性只有29%。所有这些测试都在文档中进行了完整的解释。