我正在使用模型的输出,其中存在可能不符合先验预期的参数估计.我想写一个函数,迫使这些效用估计值符合这些预期.为此,该函数应最小化起始值和新估计之间的平方偏差之和.由于我们有先验预测,因此优化应遵循以下约束:
B0 < B1
B1 < B2
...
Bj < Bj+1
Run Code Online (Sandbox Code Playgroud)
例如,下面的原始参数估计是针对B2和B3的翻转翻转.列Delta和Delta^2显示原始参数估计和新系数之间的偏差.我想尽量减少列Delta^2.我在Excel中对此进行了编码,并显示了Excel的Solver如何在提供约束条件的情况下优化此问题:
Beta BetaRaw Delta Delta^2 BetaNew
B0 1.2 0 0 1.2
B1 1.3 0 0 1.3
B2 1.6 -0.2 0.04 1.4
B3 1.4 0 0 1.4
B4 2.2 0 0 2.2
Run Code Online (Sandbox Code Playgroud)
通过阅读后?optim和?constrOptim,我不能神交如何设置这在R.我敢肯定,我只是作为一个有点迟钝,但可以在正确的方向上使用一些指针!
3/24/2012 - 添加了赏金,因为我不够聪明,无法翻译第一个答案.
这里有一些R代码应该在正确的路径上.假设测试版开始于:
betas <- c(1.2,1.3,1.6,1.4,2.2)
Run Code Online (Sandbox Code Playgroud)
我想尽量减少以下功能 b0 <= b1 <= b2 <= b3 <= b4
f <- function(x) {
x1 <- x[1]
x2 <- x[2] …Run Code Online (Sandbox Code Playgroud) r ×1