我在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()
函数?
答案 0 :(得分:7)
按如下方式修改回归:
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]