使用 R 进行失拟 F 检验

Using R for lack-of-fit F-test

我学会了如何使用 R 执行 F 检验以解决回归模型的拟合不足问题,其中 $H_0$: "there is no lack of fit in the regression model".

其中 df_1 是 SSLF 的自由度(失拟平方和),df_2 是 SSPE 的自由度(纯误差平方和) .

在 R 中,F 检验(比如具有 2 个预测变量的模型)可以用

计算

anova(lm(y~x1+x2), lm(y~factor(x1)*factor(x2)))

示例输出:

Model 1: y ~ x1 + x2
Model 2: y ~ factor(x1) * factor(x2)
  Res.Df    RSS Df Sum of Sq      F Pr(>F)
1     19 18.122                           
2     11 12.456  8    5.6658 0.6254 0.7419

F 统计量:0.6254,p 值为 0.7419。

由于 p 值大于 0.05,我们不拒绝 $H_0$ 不存在失拟。因此模型是足够的。

我想知道的是为什么要用2个模型,为什么要用命令factor(x1)*factor(x2)?显然,来自 Model 2 的 12.456 是 神奇地 Model 1.

的 SSPE

为什么?

您正在测试具有交互作用的模型是否改进了模型拟合。

模型 1 对应于 x1x2 的加性效应。

如果模型的复杂性足够(在您的情况下,具有加性效应的多元回归是否对您的数据有意义),"check" 的一种方法是将建议的模型与更 flexible/complex 模型.

您的模型 2 具有这种更灵活的模型的作用。首先,预测变量是分类的(通过使用 factor(x1)factor(x2)),然后它们之间的相互作用由 factor(x1)*factor(x2) 构建。交互模型包括作为特例的加法模型(即模型 1 嵌套在模型 2 中),并且有几个额外的参数可以更好地拟合数据。

您可以在 anova 的输出中看到两个模型之间的参数数量差异。模型 2 有 8 个额外的参数可以更好地拟合,但由于 p 值不显着,您会得出结论,模型 2(具有基于额外 8 个参数的额外灵活性)实际上并没有提供更好的拟合数据。因此,与模型 2 相比,加法模型提供了足够好的数据拟合。

请注意,上面制作 x1x2 类别(因素)的技巧仅在 x1x2 的唯一值数量较少时才真正起作用.如果 x1x2 是数字并且每个人都有自己的值,那么模型 2 就没有那么有用,因为您最终得到的参数数量与您的观察结果数量相同。在这些情况下,会使用更多 ad hoc 修改,例如对变量进行装箱。