r - 查找均值的平行 t 检验和斜率 = 0 t 检验的检验
问题描述
想象一下这两组女性和男性的年龄:
femalesage<-c(30,52,59,25,26,72,46,32,64,45)
malesage<-c(40,56,31,63,63,78,42,45,67)
我可以轻松地做一个 t.test(females age,malesage) 来达到以下结果:
t.test(femalesage,malesage)
Welch Two Sample t-test
data: femalesage and malesage
t = -1.2013, df = 16.99, p-value = 0.2461
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-24.224797 6.647019
sample estimates:
mean of x mean of y
45.10000 53.88889
现在,假设我将相同的数据以不同的方式组织起来,如下所示:
ages<-c(30,52,59,25,26,72,46,32,64,45,40,56,31,63,63,78,42,45,67)
genders<-c("F","F","F","F","F","F","F","F","F","F","M","M","M","M","M","M","M","M","M","M")
df<-data.frame(ages, genders)
我想使用某种回归测试来获得与威尔士双样本 t 检验类似的结果,测试 Beta1=0 与 Beta1 不等于 0 的斜率,其中 B1 是性别系数,响应是年龄. 知道如何获得相同的结果吗?
解决方案
t 检验和线性回归都是一般线性模型的特例。在单个预测变量的情况下,回归系数的显着性检验等同于 t 检验的显着性。
R 的t.test
函数允许以两种不同的方式指定输入数据:或者作为两个单独的向量,就像您所做的那样,或者像我在这里所做的那样使用公式接口。同样,lm
执行简单线性回归的函数也需要公式接口。在这种情况下,这使得两个函数调用相同,我们只需要更改函数的名称。
您的数据:
ages <- c(30,52,59,25,26,72,46,32,64,45,40,56,31,63,63,78,42,45,67)
genders <- c("F","F","F","F","F","F","F","F","F","F","M","M","M","M","M","M","M","M","M","M")
df <- data.frame(ages, genders)
t 检验:
t.test(ages ~ genders, data = df)
Welch Two Sample t-test
data: ages by genders
t = -1.2013, df = 16.99, p-value = 0.2461
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-24.224797 6.647019
sample estimates:
mean in group F mean in group M
45.10000 53.88889
一个(几乎)相同的回归:
summary(lm(ages ~ genders, data = df))
Call:
lm(formula = ages ~ genders, data = df)
Residuals:
Min 1Q Median 3Q Max
-22.89 -13.49 0.90 11.11 26.90
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 45.100 5.060 8.914 8.12e-08 ***
gendersM 8.789 7.351 1.196 0.248
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 16 on 17 degrees of freedom
Multiple R-squared: 0.07756, Adjusted R-squared: 0.0233
F-statistic: 1.429 on 1 and 17 DF, p-value: 0.2483
请注意,性别的 t 和 beta 几乎相同,p 值也是如此。
推荐阅读
- ios - Swift:消息过滤器扩展不起作用
- c - 要构建的正确返回类型是什么?
- python - pytorch 使用标签进行自定义梯度更新
- javascript - 按下主 GUI 上的按钮时,即使步骤正确执行,编辑 GUI JDialog 也不会打开
- python - 如何在python中为冒泡排序算法添加反向功能
- android - 如何从房间数据库中获取与 recyclerView 中单击项目相关的数据到新活动?
- python - 如何在熊猫滚动对象上应用分配?
- java - 将照片保存到图库时出错 - Android Studio (java)
- c# - 将 ViewModel 中的 Id 转换为 ControlTemplate
- ios - 如何在 SwiftUI 中处理点击开始