约束最小二乘法

发布于 2024-08-07 04:23:52 字数 350 浏览 1 评论 0原文

我正在 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() 函数?

I am fitting a simple regression in R on gas usage per capita. The regression formulas looks like:

gas_b <- lm(log(gasq_pop) ~ log(gasp) + log(pcincome) + log(pn) +
            log(pd) + log(ps) + log(years), 
            data=gas)
summary(gas_b)

I want to include a linear constraint that the beta coefficients of log(pn)+log(pd)+log(ps)=1 (sum to one). Is there a simple way of implementing this (possibly in the lm function) in R without having to use constrOptim() function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜中书 2024-08-14 04:23:52

按如下方式修改回归:

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]

Modify your regression as follows:

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)

If b=coef(gas_b), then the relevant coefficients are

log(pn): b[4]
log(pd): b[5]
log(ps): 1 - b[4] - b[5]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文