滞后回归约束优化

时间:2019-04-06 14:20:30

标签: optimization cvx cvxr

我正在尝试使用R中的CVXR包对凸优化问题进行编码,并且在实际上可行的情况下,努力将目标函数重新构造为凸形。

这是我对问题的数学表述。请原谅我混合使用矩阵和常规符号,但是在下面的 F 中是收益矩阵。

equation

因此,它基本上是封装在带有约束的最小二乘法优化中的因子基准。我希望这可以作为凸优化问题来解决,因为我正在使外部函数的平方误差的总和最小化,但到目前为止,内部Beta已被证明是有问题的。

以下是对此进行可重复编码的尝试:

library(CVXR)

# number of inner beta variables
IB <- 4
# number of outer beta variables
OB <- 3

n <- 102
Y <- rnorm(n-2,mean=1,sd=2)

# F Matrix
F.mat <- matrix(rnorm(n * IB),ncol=IB)

# establish variables for optimization
InnerBetas <- Variable(IB)
OuterBetas <- Variable(OB)

# Set up objective function
OB_IB.obj <- Minimize(sum((Y - (OuterBetas[1] * (F.mat %*% InnerBetas)[1:100] +
                                OuterBetas[2] * (F.mat %*% InnerBetas)[2:101] + 
                                OuterBetas[3] * (F.mat %*% InnerBetas)[3:102]))^2))

#> Error in OuterBetas[1] * (F.mat %*% InnerBetas)[1:100]: 
#> Cannot multiply elementwise AFFINE and AFFINE

如果我为内部或外部beta插入数字并为其他beta进行优化,则它起作用,但是当我尝试制定此目标函数时,您会看到上面的错误。有没有办法表述它是凸的?

0 个答案:

没有答案