我正在尝试找到一个函数,该函数可以让我轻松获得两个均值之差的置信区间。
我很确定t.test
具有此功能,但我无法使其正常工作。下面是到目前为止我尝试过的屏幕截图:
这是我正在使用的数据集
Indoor Outdoor
1 0.07 0.29
2 0.08 0.68
3 0.09 0.47
4 0.12 0.54
5 0.12 0.97
6 0.12 0.35
7 0.13 0.49
8 0.14 0.84
9 0.15 0.86
10 0.15 0.28
11 0.17 0.32
12 0.17 0.32
13 0.18 1.55
14 0.18 0.66
15 0.18 0.29
16 0.18 0.21
17 0.19 1.02
18 0.20 1.59
19 0.22 0.90
20 0.22 0.52
21 0.23 0.12
22 0.23 0.54
23 0.25 0.88
24 0.26 0.49
25 0.28 1.24
26 0.28 0.48
27 0.29 0.27
28 0.34 0.37
29 0.39 1.26
30 0.40 0.70
31 0.45 0.76
32 0.54 0.99
33 0.62 0.36
我一直在尝试使用从{p>安装的t.test
功能
install.packages("ggpubr")
我对R很陌生,所以很抱歉,如果对此问题有一个简单的答案。我搜索了很多东西,却找不到我想要的东西。
注意:我要查找的输出在-1.224和0.376之间
编辑:
我要寻找的均值之差的CI是是否通过在“室内”列中选择一个随机值并在“室外”列中选择一个随机值并将其复制来向图表中添加第34个随机数据点。对于给定的样本量33,运行t.test
将为均值差输出正确的CI。
我该如何假装样本大小为34?
答案 0 :(得分:1)
标准库中可能有一些更方便的东西,但是它很容易计算。给定您的df
变量,我们可以做到:
# calculate mean of difference
d_mu <- mean(df$Indoor) - mean(df$Outdoor)
# calculate SD of difference
d_sd <- sqrt(var(df$Indoor) + var(df$Outdoor))
# calculate 95% CI of this
d_mu + d_sd * qt(c(0.025, 0.975), nrow(df)*2)
给我:-1.2246 0.3767
主要用于@AkselA:我经常发现通过抽样更简单的分布来检查我的工作很有帮助,在这种情况下,我会做类似的事情:
a <- mean(df$Indoor) + sd(df$Indoor) * rt(1000000, nrow(df)-1)
b <- mean(df$Outdoor) + sd(df$Outdoor) * rt(1000000, nrow(df)-1)
quantile(a - b, c(0.025, 0.975))
这使我的答案更接近我在评论中给出的配置项
答案 1 :(得分:0)
尽管我总是找到手动计算结果的方法,如最有见地的@Sam Mason 所示,但仍有一些人想要捷径。有时候,偷懒也没关系:)
所以在计算 CI 的不同方法中,这是最舒服的:
DescTools::MeanDiffCI(Indoor, Outdoor)
这是一个reprex:
IV <- diamonds$price
DV <- rnorm(length(IV), mean = mean(IV), sd = sd(IV))
DescTools::MeanDiffCI(IV, DV)
给予
meandiff lwr.ci upr.ci
-18.94825 -66.51845 28.62195
默认情况下,这是使用 999 个自举样本计算的。如果您想要 1000 或更多,您可以将其添加到参数 R
:
DescTools::MeanDiffCI(IV, DV, R = 1000)