Regressão com coeficientes restritos de igualdade e desigualdade em R

Estou tentando obter coeficientes de restrição estimados usando RSS. Os coeficientes beta são restritos entre [0,1] e somam 1. Além disso, meu terceiro parâmetro é restrito entre (-1,1). Utilizando o abaixo, posso obter uma boa solução usando variáveis simuladas, mas ao implementar a metodologia em meu conjunto de dados real, continuo chegando a uma solução não exclusiva. Por sua vez, estou me perguntando se existe uma maneira mais numericamente estável de obter meus parâmetros estimados.

set.seed(234)
k = 2
a = diff(c(0, sort(runif(k-1)), 1))
n = 1e4
x = matrix(rnorm(k*n), nc = k)
a2 = -0.5
y = a2 * (x %*% a) + rnorm(n)
f = function(u){sum((y - u[3] * (x %*% u[1:2]))^2)}
g = function(v){

v1 = v[1]
v2 = v[2]
u = vector(mode = "double", length = 3)

# ensure in (0,1)
v1 = 1 / (1 + exp(-v1))

# ensure add up to 1
u[1:2] = c(v1, 1 - sum(v1))

# ensure between [-1,1]
u[3] = (v2^2 - 1) / (v2^2 + 1)
u
}

res = optim(rnorm(2), function(v) f(g(v)), hessian = TRUE, method = "BFGS")
eigen(res$hessian)$values
res$convergence
rbind(Est = res$par, SE = sqrt(diag(solve(res$hessian))))
rbind(g(res$par),c(a,a2))

Tiramos o chapéu parahttp://zoonek.free.fr/blosxom/R/2012-06-01_Optimization.html

questionAnswers(2)

yourAnswerToTheQuestion