我想拟合线性模型
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=NULL
,constrOptim
则也要明确设置。
希望能帮助到你。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句