【问题标题】:Confidence interval calculation in RR中的置信区间计算
【发布时间】:2021-04-09 16:43:09
【问题描述】:

我在尝试计算 R 中的 CI 时发现了差异:

x=c(25,30,15,45,22,54)

#IC 1
install.packages("Rmisc")
library(Rmisc)
CI(x,0.95) # [16.30429  ; 47.36238]

#IC2
lclm=mean(x)-(1.96*sd(x)/sqrt(length(x))) #19.99285
Uclm=mean(x)+(1.96*sd(x)/sqrt(length(x))) #43.67382

我想知道为什么我用这两种方法没有得到相同的间隔。 谢谢!

【问题讨论】:

  • 1.96 不是正确的系数。它应该是学生 t 分布的分位数。看看获取高斯样本均值置信区间的方法。

标签: r confidence-interval


【解决方案1】:

您的 1.96 是来自标准正态分布的所需分位数的近似值,随着样本量趋于无穷大,它渐近地等效于学生 t 分布。由于您的样本量为 N = 6,标准正态分布和学生 t 分布之间存在相当大的差异。

这是根据 Stéphane 的评论计算所需的分位数:

library(Rmisc)

x <- c(25, 30, 15, 45, 22, 54)

#IC 1
CI(x, 0.95) 
#>    upper     mean    lower 
#> 47.36238 31.83333 16.30429

#IC2
m <- mean(x)
s <- sd(x)
n <- length(x)
q <- qt(1 - 0.05 / 2, n - 1)
c(
  "upper" = m + q * s / sqrt(n), 
  "mean"  = m, 
  "lower" = m - q * s / sqrt(n)
)
#>    upper     mean    lower 
#> 47.36238 31.83333 16.30429

reprex package 创建于 2021-04-09 (v1.0.0)

【讨论】:

    【解决方案2】:

    除了 the-mad-statter 和 Stéphane。

    这是Rmisc包中计算CI的函数:

    function (x, ci = 0.95) 
    {
        a <- mean(x)
        s <- sd(x)
        n <- length(x)
        error <- qt(ci + (1 - ci)/2, df = n - 1) * s/sqrt(n)
        return(c(upper = a + error, mean = a, lower = a - error))
    }
    

    在这里您可以找到更深入的信息: https://stats.stackexchange.com/questions/467015/what-is-the-confidence-interval-formula-that-rmisc-package-in-r-uses

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-04
      • 1970-01-01
      • 2017-06-16
      • 2016-01-15
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      相关资源
      最近更新 更多