在 R 中拟合模型,其中系数受线性限制?

机器算法验证 r 回归 造型 限制
2022-02-12 22:28:06

当绑定系数的一个(或多个)精确线性限制可用时,我应该如何在 R 中定义模型公式。例如,假设您知道在简单线性回归模型中 b1 = 2*b0。

1个回答

假设你的模型是

Y(t)=β0+β1X1(t)+β2X2(t)+ε(t)

并且您打算限制系数,例如:

β1=2β2

插入限制,重写你将得到的原始回归模型

Y(t)=β0+2β2X1(t)+β2X2(t)+ε(t)

Y(t)=β0+β2(2X1(t)+X2(t))+ε(t)

引入一个新变量Z(t)=2X1(t)+X2(t)你的有限制的模型将是

Y(t)=β0+β2Z(t)+ε(t)

通过这种方式,您可以处理任何精确的限制,因为等号的数量将未知参数的数量减少了相同的数量。

使用 R 公式可以直接通过 I() 函数进行

lm(formula = Y ~ I(1 + 2*X1) + X2 + X3 - 1, data = <your data>) 
lm(formula = Y ~ I(2*X1 + X2) + X3, data = <your data>)