如何在R中进行lm()输出welch t检验

如何在R中进行lm()输出welch t检验,r,R,有人告诉过我,也看到过一些例子,其中线性模型和t检验基本上是相同的检验,只是t检验是一种特殊的线性模型,带有虚拟编码预测。是否有方法获得lm的输出,以输出与r中正常t.test函数相同的t值、p值、置信区间和标准误差,其中var.equal参数的默认值为FALSE 例如,现在lm和t.test的输出是不同的 data("mtcars") #these outputs below give me different values summary(lm(mpg ~ am, mtcars)) t.t

有人告诉过我,也看到过一些例子,其中线性模型和t检验基本上是相同的检验,只是t检验是一种特殊的线性模型,带有虚拟编码预测。是否有方法获得
lm
的输出,以输出与r中正常
t.test
函数相同的t值、p值、置信区间和标准误差,其中
var.equal
参数的默认值为
FALSE

例如,现在lm和t.test的输出是不同的

data("mtcars")
#these outputs below give me different values 
summary(lm(mpg ~ am, mtcars))
t.test(mpg ~ am, mtcars)

我想要的是使
lm
具有与t.test函数相同的值,这是一个Welch t测试。我该怎么做?

线性回归的假设是残差正态分布,平均值为0,方差为常数。因此,只有在假设方差相等的情况下,你的t检验和回归总结才会有一致的结果。

首先,交叉验证上有一篇很棒的帖子,提供了大量关于t检验、线性回归和方差分析之间关系的背景信息

本质上,t检验的p值对应于线性模型中斜率参数的p值

在您的情况下,您需要进行比较

t.test(mpg ~ am, mtcars, alternative = "two.sided", var.equal = T)
#
#   Two Sample t-test
#
#data:  mpg by am
#t = -4.1061, df = 30, p-value = 0.000285
#alternative hypothesis: true difference in means is not equal to 0
#95 percent confidence interval:
# -10.84837  -3.64151
#sample estimates:
#mean in group 0 mean in group 1
#       17.14737        24.39231

fit <- lm(mpg ~ as.factor(am), mtcars)
summary(fit)
#
#Call:
#lm(formula = mpg ~ as.factor(am), data = mtcars)
#
#Residuals:
#    Min      1Q  Median      3Q     Max
#-9.3923 -3.0923 -0.2974  3.2439  9.5077
#
#Coefficients:
#               Estimate Std. Error t value Pr(>|t|)
#(Intercept)      17.147      1.125  15.247 1.13e-15 ***
#as.factor(am)1    7.245      1.764   4.106 0.000285 ***
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
#Residual standard error: 4.902 on 30 degrees of freedom
#Multiple R-squared:  0.3598,   Adjusted R-squared:  0.3385
#F-statistic: 16.86 on 1 and 30 DF,  p-value: 0.000285

这个答案不是展示如何使用
lm
进行Welch的t检验,而是展示如何使
t.test
的行为类似于
summary(lm())
中的测试(即学生的t检验)。演示如何使用
lme4::lmer
进行Welch t检验;使用
stats::lm
是不可能的。
lm(mpg ~ as.factor(am) - 1, mtcars)
#
#Call:
#lm(formula = mpg ~ as.factor(am) - 1, data = mtcars)
#
#Coefficients:
#as.factor(am)0  as.factor(am)1
#         17.15           24.39