两个数据集之间均值差的置信区间

时间:2014-01-20 13:53:00

标签: r dataset confidence-interval

我正在开发两个数据集,来自于cats,一个内置的R数据集。

> cats
    Sex Bwt  Hwt
1     F 2.0  7.0
2     F 2.0  7.4
3     F 2.0  9.5
4     F 2.1  7.2
5     F 2.1  7.3
6     F 2.1  7.6
7     F 2.1  8.1
8     F 2.1  8.2
9     F 2.1  8.3
10    F 2.1  8.5
11    F 2.1  8.7
12    F 2.1  9.8
...
137   M 3.6 13.3
138   M 3.6 14.8
139   M 3.6 15.0
140   M 3.7 11.0
141   M 3.8 14.8
142   M 3.8 16.8
143   M 3.9 14.4
144   M 3.9 20.5

我想在男性和女性标本的Bwt(性别== M和性别= = F)之间找到 99%置信区间差异均值

我知道t.test执行此操作,除其他事项外,如果我将cats分解为包含男性和女性Bwt的两个数据集,则t.test()会抱怨两个数据集的长度不同,这是真的。 cats只有47名女性,而男性只有87名。

是否可以通过某种其他方式进行操作,还是通过分解数据来误解数据?

编辑: 我有一个回答者在另一个问题上向我建议的函数,它可以得到数据集中的均值CI,可能会派上用场:

ci_func <- function(data, ALPHA){
  c(
    mean(data) - qnorm(1-ALPHA/2) * sd(data)/sqrt(length(data)),
    mean(data) + qnorm(1-ALPHA/2) * sd(data)/sqrt(length(data))
    )
}

2 个答案:

答案 0 :(得分:5)

您应该使用公式界面应用t.test:

t.test(Bwt ~ Sex, data=cats, conf.level=.99)

答案 1 :(得分:0)

替代t.test,如果你真的只对手段的差异感兴趣,你可以使用:

DescTools::MeanDiffCI(cats$Bwt, cats$Sex)

它给出了类似的东西

 meandiff    lwr.ci    upr.ci 
-23.71474 -71.30611  23.87662 

默认情况下,这是使用 999 个自举样本计算的。如果需要更多,可以在 R 参数中指定:

DescTools::MeanDiffCI(cats$Bwt, cats$Sex, R = 1000)
相关问题