gpt4 book ai didi

r - 解决R中具有复杂约束的二次优化问题

转载 作者:行者123 更新时间:2023-12-03 17:38:53 25 4
gpt4 key购买 nike

有谁知道如何在R的情况下实现回归,而我们的目标是在所有残差均为非负数且同时受系数约束的情况下,最小化残差平方和?具体来说,我要问的是具有二次项的单变量回归,其中b_0 <= 0,b_1> = 0和b_2> = 0。

我能够解决类似的问题,其目标是使用lpSolve软件包使残差的总和最小化。在R中求平方和似乎要困难得多。有什么想法吗?

在交叉验证中也提出了问题:

https://stats.stackexchange.com/questions/272234/restrictions-on-residuals-and-coefficients-in-regression-dfa

最佳答案

这是一个代码片段,试图实现上面给出的解决方案:

library(quadprog)

xvec <- c(8.1,6.4,6.8,13.3,0.7,2.4,3.5,6.5,1.9,2.8,8.0,6.8,4.6,18.6,1.1,9.5,1.4,3.8,0.7,11.5,7.1,8.2,7.0,7.0,2.2,9.8,0.3,2.5,10.6,1.4,31.0)
yvec <- c(15.8,10.6,12.8,26.5,1.3,3.9,6.2,13.1,3.1,4.4,12.6,11.6,9.3,35.3,1.8,16.0,2.7,6.4,1.3,18.9,12.0,14.3,13.5,11.3,3.5,16.0,0.6,4.8,17.7,2.5,71.0)

K <- length(xvec)

# decision vars: c(beta0, beta1, beta2, r1, ..., rK)

Amat <- cbind(rep(1,K), xvec, xvec^2, diag(rep(1, K)))
Amat <- rbind(Amat, c(-1, rep(0,K+2)), c(0,1, rep(0,K+1)), c(0,0,1, rep(0,K)))

bvec <- c(yvec, rep(0,3))

Dmat <- diag(rep(1, K+3))
Dmat[1:3, 1:3] <- diag(rep(0.000001, 3))

s <- solve.QP(Dmat=Dmat, dvec=rep(0, K+3), Amat=t(Amat), bvec=bvec, meq=K)

s$solution

关于r - 解决R中具有复杂约束的二次优化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43278295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com