前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「R」t 检验

「R」t 检验

作者头像
王诗翔呀
发布2020-07-02 21:28:12
1.4K0
发布2020-07-02 21:28:12
举报
文章被收录于专栏:优雅R

今天把之前组团翻译的 Cookbook for R 也放到了 Gitee 上,国内访问和阅读的体验感会上升很多。https://shixiangwang.gitee.io/cookbook-for-r-chinese/

问题

你想要检验来自两个总体的样本是否有不同的均值(显著性差异),或者检验从一个总体抽取的样本均值和理论均值有显著性差异。

方案

样本数据

我们将使用内置的sleep数据集。

代码语言:javascript
复制
sleep
#>    extra group ID
#> 1    0.7     1  1
#> 2   -1.6     1  2
#> 3   -0.2     1  3
#> 4   -1.2     1  4
#> 5   -0.1     1  5
#> 6    3.4     1  6
#> 7    3.7     1  7
#> 8    0.8     1  8
#> 9    0.0     1  9
#> 10   2.0     1 10
#> 11   1.9     2  1
#> 12   0.8     2  2
#> 13   1.1     2  3
#> 14   0.1     2  4
#> 15  -0.1     2  5
#> 16   4.4     2  6
#> 17   5.5     2  7
#> 18   1.6     2  8
#> 19   4.6     2  9
#> 20   3.4     2 10

我们将制造sleep数据的宽格式版本;下面我们将看看如何处理长格式和宽格式的数据。

代码语言:javascript
复制
sleep_wide <- data.frame(
    ID=1:10,
    group1=sleep$extra[1:10],
    group2=sleep$extra[11:20]
)
sleep_wide
#>    ID group1 group2
#> 1   1    0.7    1.9
#> 2   2   -1.6    0.8
#> 3   3   -0.2    1.1
#> 4   4   -1.2    0.1
#> 5   5   -0.1   -0.1
#> 6   6    3.4    4.4
#> 7   7    3.7    5.5
#> 8   8    0.8    1.6
#> 9   9    0.0    4.6
#> 10 10    2.0    3.4

比较两组:独立双样本t检验

假设有两组独立样本(我们这里忽略ID变量)。

t.test函数能够操作像sleep这样的长格式数据——一列记录测量值,一列指定组别;或者操作两个单独的向量。

代码语言:javascript
复制
# Welch t-test
t.test(extra ~ group, sleep)
#>
#> 	Welch Two Sample t-test
#>
#> data:  extra by group
#> t = -1.8608, df = 17.776, p-value = 0.07939
#> alternative hypothesis: true difference in means is not equal to 0
#> 95 percent confidence interval:
#>  -3.3654832  0.2054832
#> sample estimates:
#> mean in group 1 mean in group 2
#>            0.75            2.33

# Same for wide data (two separate vectors)
# t.test(sleep_wide$group1, sleep_wide$group2)

默认,t.test不假设有方差齐性(或称作方差同质)。默认的不是Student t检验而是使用了Welch t检验。注意Welch t-test结果中df=17.776,这是因为对不同质方差进行了校正。要使用Student t检验的话,设置var.equal=TRUE

代码语言:javascript
复制
# Student t-test
t.test(extra ~ group, sleep, var.equal=TRUE)
#>
#> 	Two Sample t-test
#>
#> data:  extra by group
#> t = -1.8608, df = 18, p-value = 0.07919
#> alternative hypothesis: true difference in means is not equal to 0
#> 95 percent confidence interval:
#>  -3.363874  0.203874
#> sample estimates:
#> mean in group 1 mean in group 2
#>            0.75            2.33

# Same for wide data (two separate vectors)
# t.test(sleep_wide$group1, sleep_wide$group2, var.equal=TRUE)

配对样本t检验

你也可以使用配对样本t检验比较配对的数据。数据配对是指你可能有对某种药物治疗前后有观测值或者不同治疗有配对的研究对象。

再次说明,t-test函数可以用于有分组变量的数据框或者两个向量。它依赖相对位置来决定配对。如果你使用有分组变量的长格式数据,group=1的第一行与group2的第一行配对。确保数据排序好并且不存在缺失值是非常重要的;否则配对可以丢弃。这种情况中,我们能通过groupID变量进行排序来确保顺序是一样的。关于排序更多信息参见Sorting。

代码语言:javascript
复制
# Sort by group then ID
sleep <- sleep[order(sleep$group, sleep$ID), ]

# Paired t-test
t.test(extra ~ group, sleep, paired=TRUE)
#>
#> 	Paired t-test
#>
#> data:  extra by group
#> t = -4.0621, df = 9, p-value = 0.002833
#> alternative hypothesis: true difference in means is not equal to 0
#> 95 percent confidence interval:
#>  -2.4598858 -0.7001142
#> sample estimates:
#> mean of the differences
#>                   -1.58

# Same for wide data (two separate vectors)
# t.test(sleep.wide$group1, sleep.wide$group2, paired=TRUE)

配对t检验等价于检测是否配对的观察值的总体均值是否为0。

代码语言:javascript
复制
t.test(sleep.wide$group1 - sleep.wide$group2, mu=0, var.equal=TRUE)
#> Error in t.test(sleep.wide$group1 - sleep.wide$group2, mu = 0, var.equal = TRUE): object 'sleep.wide' not found

与期望的总体均值进行比较:单样本t检验

假设你想要检测是否extra列的数据抽取自总体均值为0的总体。(这里忽略groupID列)

代码语言:javascript
复制
t.test(sleep$extra, mu=0)
#>
#> 	One Sample t-test
#>
#> data:  sleep$extra
#> t = 3.413, df = 19, p-value = 0.002918
#> alternative hypothesis: true mean is not equal to 0
#> 95 percent confidence interval:
#>  0.5955845 2.4844155
#> sample estimates:
#> mean of x
#>      1.54

可视化结果?见 12个ggplot2扩展包帮你实现更强大的可视化

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 优雅R 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 方案
    • 样本数据
      • 比较两组:独立双样本t检验
        • 配对样本t检验
          • 与期望的总体均值进行比较:单样本t检验
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档