带约束的 R 线性模型

标签 r mathematical-optimization

我想拟合一个线性模型

y ~ a_1 * x_1 + ... + a_n * x_n

带参数约束
a_1,...,a_n >=0 


a_1 + ... + a_n <= 1 

在 R。

有没有一种优雅而快速的方法来做到这一点,而不使用 quadprog 包的 solve.QP 。
如果能够为提议的解决方案概述一个简短但详细的用例,那就太好了。

最佳答案

您可以使用 constrOptim成本函数最小二乘和约束定义为 ui %*% a >= ci .

假设 n=3 .您需要约束,例如:

 a1         >=  0
     a2     >=  0
         a3 >=  0
-a1 -a2 -a3 >= -1

因此您必须提供constrOptim以下参数:
ui = rbind(c(1,0,0),
           c(0,1,0),
           c(0,0,1),
           c(-1,-1,-1))

ci = c(0,0,0,-1)

也明确设置 grad=NULLconstrOptim如果不使用渐变。

希望能帮助到你。

关于带约束的 R 线性模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28383685/

相关文章:

在 Netbeans 中编译使用 R 库的 C 代码

r - 如何在ggplot的箱线图中按组绘制均值

r - 如何使用data.table按组跨多列(位点)有效计算等位基因频率(比例)

mathematical-optimization - 建议 ILP 求解器的下限

julia - 如何使用 JuMP 寻求 MIP 的第二最佳解决方案

read.csv 使用日期值附加/修改列标题

r - lpsolve 不在 R 中打印 lp 模型

matrix - D 编程语言的线性代数库

python - 在 Python 中使用 limfit.minimize 最小化目标函数

r - 使用 Shiny 的动态向网页添加图