R のquadprog
ライブラリを使用して、2 つの制限がある加重最小二乗法を実装するのに問題があります。最初の制限は、すべての係数が 0 以上である必要があることです。2 つ目の制限は、係数の合計が 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)