4

我在 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 系数。有没有一种简单的方法可以lm在 R 中实现这个(可能在函数中)而不必使用constrOptim()函数?

4

1 回答 1

8

修改你的回归如下:

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]
于 2009-10-11T21:58:45.010 回答