Другие пакеты, содержащие процедуру «расширенного лагранжиана», см. В представлении задач CRAN по оптимизации.

аюсь получить приблизительные коэффициенты с использованием RSS. Бета-коэффициенты ограничены между [0,1] и суммой в 1. Кроме того, мой третий параметр ограничен между (-1,1). Используя приведенное ниже, я могу получить хорошее решение, используя смоделированные переменные, но при реализации методологии на моем реальном наборе данных я продолжаю приходить к неуникальному решению. В свою очередь, мне интересно, есть ли более численно устойчивый способ получения моих оценочных параметров.

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))

Снимаю шляпуhttp://zoonek.free.fr/blosxom/R/2012-06-01_Optimization.html

Ответы на вопрос(2)

Ваш ответ на вопрос