带约束的 R 线性模型

R linear model with constraints

我想拟合一个线性模型

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)

如果不使用渐变,请在 constrOptim 中明确设置 grad=NULL

希望对您有所帮助。