使用 lm,我想拟合模型: y = b0 + b1*x1 + b2*x2 + b1*b2*x1*x2
我的问题是:如何指定交互作用的系数应该等于主效应系数的乘积?
我已经看到要将系数设置为特定值,您可以使用 offset() 和 I() 但我不知道如何指定系数之间的关系。
这是一个简单的模拟数据集:
n <- 50 # Sample size
x1 <- rnorm(n, 1:n, 0.5) # Independent variable 1
x2 <- rnorm(n, 1:n, 0.5) # Independent variable 2
b0 <- 1
b1 <- 0.5
b2 <- 0.2
y <- b0 + b1*x1 + b2*x2 + b1*b2*x1*x2 + rnorm(n,0,0.1)
为了拟合模型 1:y = b0 + b1*x1 + b2*x2 + b3*x1*x2,我会使用:
summary(lm(y~ x1 + x2 + x1:x2))
但是如何拟合模型 2:y = b0 + b1*x1 + b2*x2 + b1*b2*x1*x2?
两个模型之间的主要区别之一是要估计的参数数量。在模型 1 中,我们估计 4 个参数:b0(截距)、b1(变量 1 的斜率)、b2(变量 2 的斜率)和 b3(变量 1 和 2 之间相互作用的斜率)。在模型 2 中,我们估计了 3 个参数:b0(截距)、b1(var.1 的斜率和 var.1 和 2 之间相互作用的部分斜率)和 b2(var.2 的斜率和部分斜率) vars. 1 和 2 之间的交互)
我之所以要这样做是因为在调查x1和x2之间是否存在显着交互时,模型2,y = b0 + b1*x1 + b2*x2 + b1*b2*x1*x2,可以更好比 y = b0 + b1*x1 + b2*x2 的空模型。
非常感谢!
玛丽