r - 约束最小二乘法

标签 r lm

我正在拟合 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/

相关文章:

python - 使用 Python popen 的奇怪位数问题

r - 使用 R 中的 xts 对象列表的段错误

r - 收到警告 : "' newdata' had 1 row but variables found have 32 rows"on predict. lm

r - 从 leaps regsubsets 中获取所有模型

使用 lm 对独特因子组合的子集进行回归

r - 扁平化/非规范化 R 聚合函数的结果

Rails 6.0 操作文本找不到类型为 'trix/dist/trix' 的文件 'text/css'

r - 缺失值 - Arima 模型

r - R 中使用汇总数据的方差分析

关于使用 lm 在 R 中的线性回归建模中的 I( ) 项