我在使用 R 的quadprog
库来实现具有 2 个限制的加权最小二乘时遇到了困难。第一个限制是所有系数必须大于或等于 0。第二个限制是系数需要总和为 1。
更正式地说,我试图对 W 最小化以下等式:(Y - XW)^T * V * (Y - XW),其中 V 是对角矩阵。
Y 是 (px 1),X 是 (pxs),W 是 (sx 1),V 是对角线 (pxp)。下面是一个可重现的例子:我正在尝试找到合适的参数来使用quadprog::solve.QP
library(quadprog)
set.seed(1)
y = rnorm(100)
X = matrix(nrow = 100, ncol = 3)
for (i in 1:ncol(X)) {
X[,i]<- rnorm(100, mean = i)
}
v_vec = rnorm(ncol(X))
V = diag(v_vec)