如何计算"术语"当回归具有交互项时,从手动预测函数

时间:2016-07-11 12:30:03

标签: r

有人知道预测函数在回归模型中存在交互项时如何计算项?我知道如何在回归没有交互条件的情况下解决条件,但是当我添加一个时,我再也无法解决这些问题了。这是一些示例数据,我想看看如何手动计算这些值。谢谢! -Aleksi

set.seed(2)  
a <- c(4,3,2,5,3) # first I make some data  
b <- c(2,1,4,3,5)  
e <- rnorm(5)  
y= 0.6*a+e  
data <- data.frame(a,b,y)  
model1 <- lm(y~a*b,data=data) # regression  
predict(model1,type='terms',data) # terms  
#This gives the result:

       a          b        a:b
1  0.04870807 -0.3649011  0.2049069
2 -0.03247205 -0.7298021  0.7740928
3 -0.11365216  0.3649011  0.2049069
4  0.12988818  0.0000000 -0.5919534
5 -0.03247205  0.7298021 -0.5919534
attr(,"constant")
[1] 1.973031

1 个答案:

答案 0 :(得分:2)

您的模型在技术上是y ~ b0 + b1*a + b2*a*b + e。计算a是通过将自变量乘以其系数并使结果居中来完成的。例如,a的术语将是

cf <- coef(model1)

scale(a * cf[2], scale = FALSE)

            [,1]
[1,]  0.04870807
[2,] -0.03247205
[3,] -0.11365216
[4,]  0.12988818
[5,] -0.03247205

与上面的输出相匹配。

由于交互项只是乘以自变量,因此转换为

scale(a * b * cf[4], scale = FALSE)
           [,1]
[1,]  0.2049069
[2,]  0.7740928
[3,]  0.2049069
[4,] -0.5919534
[5,] -0.5919534