我正在拟合 R 中人均天然气使用量的简单回归。回归公式如下所示:
gas_b <- lm(log(gasq_pop) ~ log(gasp) + log(pcincome) + log(pn) +
log(pd) + log(ps) + log(years),
data=gas)
summary(gas_b)
我想包含一个线性约束,即
log(pn)+log(pd)+log(ps)=1
的 beta 系数(总和为 1)。有没有一种简单的方法可以在 R 中实现这个(可能在 lm
函数中)而不必使用 constrOptim()
函数?
最佳答案
修改你的回归如下:
gas_b <- lm(log(gasq_pop) - log(ps) ~ log(gasp) + log(pcincome) +
I(log(pn)-log(ps)) + I(log(pd)-log(ps)) + log(years), data=gas)
summary(gas_b)
如果
b=coef(gas_b)
,则相关系数为log(pn): b[4]
log(pd): b[5]
log(ps): 1 - b[4] - b[5]
关于r - 约束最小二乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1551554/