El porqué de los mínimos cuadrados con restricciones

Avisé en mi entrada del otro día: no me preguntéis por qué (imponer restricciones en un problema de mínimos cuadrados). Pero cuanto más pienso sobre ello, menos claro lo tengo. ¿Por qué restricciones? Primero, el contexto. O el casi contexto. Porque no es exactamente así. Pero sí parecido. Supongamos que queremos predecir algo y construimos, p.e., 4 modelos. Se nos ocurre (y hay buenas razones para ello) combinar los predictores. Uno puede pensar en usar la media de las predicciones. O la mediana. O tratar de usar un peso revelado por los datos. ...

9 de junio de 2014 · Carlos J. Gil Bellosta

Mínimos cuadrados con restricciones

Sí, había restricciones. No me preguntéis por qué, pero los coeficientes tenían que ser positivos y sumar uno. Es decir, buscaba la combinación convexa de cuatro vectores que más se aproximase a y en alguna métrica razonable. Y lo resolví así: # prepare constrained optimization y <- dat.clean$actual x <- t(dat.clean[,2:5]) # target function: L2 first, then other metrics L2 <- function(coef){ sum(abs((y - colSums(x * coef)))^1.5) } # restrictions: coefs > 0, sum(coefs) ~ 1 ui <- rbind(diag(4), c(-1,-1,-1,-1), c(1,1,1,1)) ci <- c(0,0,0,0,-1.000001,0.999999) theta <- rep(0.25, 4) best.coef <- constrOptim(theta, L2, grad = NULL, ui = ui, ci = ci) coefs <- best.coef$par Objetos aparte de x e y, hay: ...

5 de junio de 2014 · Carlos J. Gil Bellosta