如何在给定置信区间和正态分布或伽马分布的情况下计算 R 的均值和标准差?

机器算法验证 r 置信区间
2022-04-03 09:03:58

假设给你一个95%CI(1,6)基于正态分布。有什么简单的方法可以找到μσ? 如果它来自伽马分布怎么办?我们可以在 R 中做到这一点吗?

4个回答

请阅读答案末尾的勘误表。

首先请注意,没有足够的信息来解决这个问题。在这两种情况下,n样本量缺失。在高斯分布的情况下,假设你知道n,您可以按照@Michael Chernick 的说明轻松完成。在 R 中会给出这样的东西(用n=43为了这个例子)。

n <- 43
ci <- c(1,6)
# Take the middle of the CI to get x_bar (3.5).
x_bar <- mean(ci)
# Use 1 = x_bar - 1.96 * sd/sqrt(n)
S2 <- n^2 * (x_bar - ci[1])/1.96

对于 Gamma 分布,情况有点复杂,因为它不是对称的。所以平均值不在 CI 的中心。

例如,假设您从 Gamma 总体中抽样Γ(α,1)在哪里α是未知的。样本均值是n变量分布为Γ(α,1)除以n, 所以它是一个分布为的变量 Γ(nα,1/n). 假设我们观察到一个平均值1.7对于样本量n=5. 正如我们可以检查的那样,有几个 CI 包含此值。

> qgamma(.975, shape=1.7*5, scale=1/5)
[1] 3.019101
> qgamma(.975, shape=1.7*5, scale=1/5, lower.tail=F)
[1] 0.7564186

95% CIα(.756,3.019), 中间是1.89, 不是1.70. 简而言之,找到αθ产生 95% CI 是可能的,因为解决方案是独一无二的,但它是一个 hack。

幸运的是,作为n增加,分布变得越来越高斯和对称,因此 CI 将围绕均值对称。a 的均值和方差Γ(nα,θ/n)αθαθ/n,因此您可以使用高斯情况的结果并求解这个非常简单的方程得到αθ.

勘误:在@whuber 的评论之后,我意识到建议的方法来获得置信区间α不好。

上面给出的示例旨在证明使用 Gamma 变量获取 CI 比使用 Gaussian 变量更乏味。我的错误更好地证明了这一点。在@whuber 的提示下,我将表明我提出的 CI 不正确。

set.seed(123)
# Simulate 100,000 means of 5 Gaussian(0,1) variables (positive control).
means <- rnorm(100000, sd=1/sqrt(5))
upper <- means + qnorm(.975)/sqrt(5)
lower <- means - qnorm(.975)/sqrt(5)
mean((upper > 0) & (lower < 0))
[1] 0.95007 # OK.
# Simulate 100,000 means of 5 Gamma(1,1) variables.
means <- rgamma(100000, shape=5, scale=1/5)
upper <- qgamma(.975, shape=5*means, scale=1/5)
lower <- qgamma(.975, shape=5*means, scale=1/5, lower.tail=FALSE)
mean((upper > 1) & (lower < 1))
[1] 0.94666 # Almost, but not quite.

如果您指的是真实参数,那么答案当然是否定的。但是,如果您的意思是要从置信区间中恢复样本估计值,那么对于正态分布的答案是肯定的,如果样本量n也给出了。

如果置信区间是(1,6), 然后1=X¯1.96S/n6=X¯+1.96S/n. 所以X¯=(6+1)/2=3.5 接着6=3.5+1.96S/n或者S=n2.5/(1.96).

对于 gamma 分布,本文展示了获取比率的近似和准确置信区间的各种方法。从这些置信区间获取参数估计可能很复杂。

您可以围绕任何可以估计的东西构建置信区间,无论是平均值、标准差,甚至是任何给定概率分布的最大值。

假设您有一个围绕从实验估计的平均值的 CI,其中有限样本大小n取自独立的、同分布的随机正态变量,那么您知道确切的置信区间是由样本均值加上或减去标准误差的 1.96 倍给出的,标准误差是按样本大小的平方根缩放的样本标准偏差。x¯±Zα/2(s/n). 您对这些参数的估计,通常标记为x¯s是“总体均值”的“最佳猜测”μ和“标准差”σ.

无论独立样本的分布或均值的相应抽样分布如何,这些估计器也会估计相同的值。但是请注意,置信区间是渐近的,这些估计不一定是最好的。

如果给出的是正态分布的分位数(尽管与置信区间不同),那么问题的解决方案会减少以从分位数中找到分布参数。

对于我们想要找到的正态分布μσ使得随机变量X满足:

P(X<x1)=p1
P(X<x2)=p2

随机变量X具有相同的分布μZ+σ在哪里Z是标准正态随机变量ZN(0,1)和 cdfϕ.

这意味着:

ϕ1(pi)σ+μ=xi
在 R 中,假设 20 和 40 是 0.05 和 0.95 的分位数。

approx_sd <- function(x1, x2){
  (x2-x1) / (qnorm(0.95) - qnorm(0.05) )
}
approx_sd(20, 40)


approx_mean <- function(x1, x2){
  (x1*qnorm(0.95) - x2*qnorm(0.05)) / (qnorm(0.95) - qnorm(0.05) )
}
approx_mean(20, 40)

对于 gamma,解决方案更复杂,因为逆 CDF 没有封闭形式。但是,有一些工具和软件可以自动处理这个复杂的问题,例如 ParameterSolver 可从以下存储库下载https://biostatistics.mdanderson.org/SoftwareDownload/

尽管您的问题来自频率论置信区间,当然不是分位数,但文本可能表明读者可以找到这个问题,寻找分位数参数化分布,这是一个积极研究的主题。