如何在R中进行lm()输出welch t检验
有人告诉过我,也看到过一些例子,其中线性模型和t检验基本上是相同的检验,只是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
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