R语言LearningStats包variance.CI与手动计算方差置信区间结果不一致问题
已知总体均值时正态总体方差的95%置信区间计算验证
问题描述
给定正态总体样本:
x = c(15.6,14.8,14.4,16.6,13.8,14.0,17.3,17.4,18.6,16.2,14.7,15.7,16.4,13.9,14.8,17.5)
已知总体均值$\mu=15$,需计算总体方差的95%置信区间。手动计算与LearningStats包的variance.CI函数结果不一致,需验证正确性。
手动计算代码及结果
mu = 15 n = length(x) alpha = 0.05 # Alpha水平 S2mu = sum((x - mu)^2)/n # 已知总体均值时的方差估计量 x1 = qchisq(1 - alpha/2, df = n) x2 = qchisq(alpha/2, df = n) interval_var = c(n*S2mu/x1, n*S2mu/x2) # 方差置信区间
计算结果:
interval_var = [1.430040, 5.971628]
LearningStats包计算结果
调用函数:
variance.CI(x, mu = mu, conf.level = 0.95)
输出:
S²μ: 6.64673 units² 95% confidence interval for the variance of a Normal population with known mean (nS²μ/χ²ₙ,₁₋α̸₂ , nS²μ/χ²ₙ,α̸₂) (3.68682 , 15.3956) units²
分析验证
核心公式确认:当总体均值$\mu$已知时,构造的卡方统计量为:
$$\frac{nS2_\mu}{\sigma2} \sim \chi^2(n)$$
其中$S^2_\mu = \frac{1}{n}\sum_{i=1}^n (X_i - \mu)2$,对应的总体方差$\sigma2$的95%置信区间公式为:
$$\left( \frac{nS2_\mu}{\chi2_{n, 1-\alpha/2}}, \frac{nS2_\mu}{\chi2_{n, \alpha/2}} \right)$$关键数值计算:
- 样本量$n=16$,$\alpha=0.05$,查卡方分位数得:$\chi2_{16,0.975}=28.84537$,$\chi2_{16,0.025}=6.90766$
- 计算$\sum(x-\mu)2$:代入样本数据得总和为41.25,因此$S2_\mu=41.25/16=2.578125$
- 计算置信区间:
- 下限:$41.25 / 28.84537 ≈1.4300$
- 上限:$41.25 / 6.90766≈5.9716$
包结果异常原因:
包输出的$S2_\mu=6.64673$,对应$\sum(x-\mu)2=6.64673×16=106.3476$,与实际样本计算的41.25不符。推测可能是以下原因之一:- 调用函数时样本数据或
mu参数传入错误 LearningStats包的variance.CI函数在处理已知总体均值的场景时存在计算bug
- 调用函数时样本数据或
结论
在给定样本和已知总体均值$\mu=15$的前提下,手动计算的方差95%置信区间[1.430040, 5.971628]是正确的。
内容的提问来源于stack exchange,提问作者Little Jonny
相关产品推荐
相关产品推荐

