我已经使用lm
进行多元回归分析。然后使用GVLMA
进行假设测试,结果表明不满足“全局统计”和“异方差”测试。
代码形式如下:(所有变量都是连续的)
model_1 <- lm (y ~ x1 + x2, data = abc)
然后我又运行了一个具有相同变量的模型(认为我必须引入交互作用来修正GVLMA假设)
model_2 <- lm (y ~ x1 + x2, x1 * x2, data = abc)
使用此model_2
,可以满足所有假设。但是当我检查时,我已经意识到引入的交互术语的方式是不准确的。我看不到变量之间的“逗号”是什么?
由于模型拟合良好,我处于困境中,但是我无法解释, x1 * x2
在方程式/结果中的作用?
请帮助我理解
答案 0 :(得分:0)
对于线性模型,交互项由:
定义,而项由+
分隔,因此具有单个项和交互项的模型为
lm(y ~ x1:x2 + x1 + x2)
但是,您可以编写x1*x2
,其中包括交互作用和单个效果,因此以下内容等同于以上内容
lm(y ~ x1*x2)
查看使用内置数据集虹膜时发生的情况,其中固定效果指定为Petal.Width*Sepal.Length
,所有三个术语均在模型摘要中:
Call:
lm(formula = Petal.Length ~ Petal.Width * Sepal.Length, data = iris)
Residuals:
Min 1Q Median 3Q Max
-0.99588 -0.24329 0.00355 0.29735 1.24780
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.24804 0.59586 -5.451 2.08e-07 ***
Petal.Width 2.97115 0.35836 8.291 6.74e-14 ***
Sepal.Length 0.87551 0.11667 7.504 5.60e-12 ***
Petal.Width:Sepal.Length -0.22248 0.06384 -3.485 0.00065 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.3888 on 146 degrees of freedom
Multiple R-squared: 0.9525, Adjusted R-squared: 0.9515
F-statistic: 975.4 on 3 and 146 DF, p-value: < 2.2e-16
关于逗号在模型中的作用,它正在创建子集。比较以下三个模型的摘要:第一个模型具有146和147个自由度-它们具有150个数据点,并分别估计4个和3个参数。第三个模型可以模拟您的规格,具有129个自由度-这就是让我意识到它是子集的原因。在检查lm()
的文档时,有一个用于子集的参数:lm(formula, data, subset, ...)
。因为data
是显式指定的,所以未指定的参数默认为formula
和subset
。您还可以在模型摘要中看到这一点,该摘要显示了模型调用中的一个子集。
summary(lm(Petal.Length ~ Petal.Width * Sepal.Length, data = iris))
summary(lm(Petal.Length ~ Petal.Width + Sepal.Length, data = iris))
summary(lm(Petal.Length ~ Petal.Width + Sepal.Length, Petal.Width * Sepal.Length, data = iris))
您可以通过传递向量iris$Petal.Width * iris$Sepal.Length
,as row numbers来重新创建您的结果-请注意,这会导致很多行并且也跳过了很多行,因此该模型的结果不匹配一个使用所有数据(每个数据点仅使用一次)的人。
summary(lm(Petal.Length ~ Petal.Width + Sepal.Length, data = iris[iris$Petal.Width * iris$Sepal.Length, ]))