在多元线性回归模型中,如何检验多个系数同时等于零的原假设?

机器算法验证 r 假设检验 多重回归 同时测试
2022-04-08 20:11:48

例如,如果我有Y = b0 + b1X1 + b2X2 + b3X3 + b4X4,我想在 alpha = 0.05 处测试 H0:b1 = b3 = 0。

lm在 R 中运行了一个模型,得到了每个系数的 p 值和整体 F 统计量,但我不确定如何同时测试它们。

2个回答

在您的情况下,您想知道系数是否等于系数为的模型与不包含这些变量的模型相同。因此,您可以对没有这些变量的简化模型与包含所有变量的完整模型执行嵌套模型测试。 00

在线性模型上下文中,这称为变化测试或变化测试,因为您可以从两个模型的(或)统计数据计算测试值(有时也称为一个'多重部分测试,以及十几个其他名称)。我在这里展示了一个版本的公式:Testing for moderation with Continuous vs. categorical moderators在非线性环境中(例如逻辑回归模型),可以使用似然比检验。更一般地,同时测试多个参数称为同时测试或块测试。 FR2FR2F

具体来说,要做到这一点,R你会做这样的事情:

m.full    = lm(Y~X1+X2+X3+X4)
m.reduced = lm(Y~X2+X4)
anova(m.reduced, m.full)

我将说明具有一个和两个回归量的模型,对四个变量的泛化应该是显而易见的。

library(lmtest)
y <- rnorm(100)
x1 <- rnorm(100)
x2 <- rnorm(100)

reg1 <- lm(y~x1)
reg2 <- lm(y~x1+x2)
waldtest(reg1,reg2)

因此,加载lmtest包(接下来的三行只是创建一些示例数据),运行受限的回归reg1,不受限制的回归,reg2然后waldtest为您进行比较。

对于我的随机数,我得到以下输出:

Wald test

Model 1: y ~ x1
Model 2: y ~ x1 + x2
  Res.Df Df      F Pr(>F)
1     98                 
2     97  1 0.0178 0.8942

因此,的空值不能在处被拒绝,因为更大。鉴于我是如何生成数据的,这并不奇怪:和之间没有关系β2=0α=0.05pPr(>F)xy