Estoy trabajando en un problema de regresión lineal múltiple en el que me gustaría restringir sólo algunos de los parámetros a valores no negativos. Ha habido discusiones sobre cómo resolver los parámetros publicados en SE aquí y en otro sitio . Ambas soluciones utilizaron optim() o constrOptim() para minimizar la suma de cuadrados residual, lo que me funcionó muy bien y da los mismos valores que lm() para la versión no restringida del problema.
Pero ahora me gustaría dar un paso más y estimar los errores estándar de esos parámetros, de forma similar a lo que obtendría si utilizara lm(). Sin embargo, no hay nada en el objeto optim() que sugiera una ruta para estimar los errores, y tampoco he encontrado nada en la configuración de control que sugiera una ruta. Así que estoy un poco perdido en cuanto a cómo proceder. Mi corazonada es que este enfoque - un problema de optimización que asume que los valores de los datos son fijos y las soluciones de los parámetros representan un mínimo global - no permite el error. ¿Hay alguna validez en esto, o es que se me escapa algo básico?
Este es un pequeño ejemplo reproducible, adaptado del ejemplo proporcionado en el primer enlace para trabajar con la función optim(), en lugar de constrOptim().
min.RSS <- function(data, par){
with(data, sum((par[1]*x1 + par[2]*x2 - y)^2))
}
dat = data.frame(x1=c(1,2), x2=c(2,3), y=c(5,6))
result = optim(par=c(0,1), min.RSS, data=dat, method="L-BFGS-B", lower=c(-Inf,0), upper=c(0,Inf))
result$convergence
result$par
Gracias por cualquier orientación que pueda proporcionar.