6 votos

¿Cómo aplicar una restricción de coeficiente suave a una regresión OLS?

Me gustaría estimar una regresión por mínimos cuadrados ordinarios de la forma $$ y = X\beta + \varepsilon, \ $$ excepto que, en lugar de minimizar la suma de los residuos al cuadrado, $$ SSR(b)=(y-Xb)'(y-Xb) $$ Quiero minimizar $$ (y-Xb)'(y-Xb)+\lambda(b-\tilde{\beta})'(b-\tilde{\beta}) $$ donde $\lambda$ es una constante. Por lo demás, la notación anterior es como en wikipedia . Se cumplen todos los supuestos habituales.

¿Hay alguna forma de modificar la regresión para realizar la minimización conjunta?

7voto

jldugger Puntos 7490

Diferenciando la función objetivo con respecto a $b$ y que equivale a $0$ muestra que la solución de la ecuación modificada se obtiene resolviendo

$$(X'X + \lambda)b = X'y + \lambda\tilde{\beta}.$$

Si su software no lo hace directamente, puede obtener los mismos resultados con este truco:

  • Incluya una columna de 1's en el conjunto de datos para modelar explícitamente la constante. Realice el ajuste sin un término constante.

  • Para $p$ las variables independientes (incluida la constante), incluyen $p$ datos falsos adicionales. Para el caso falso $i$ , $i=1,\ldots,p$ , set $X_i = \sqrt{\lambda}$ , $y = \sqrt{\lambda}\tilde{\beta}$ y todos los demás $X_j=0$ . (Por supuesto, necesitamos $\lambda \ge 0$ .)

Aunque se puede obtener la solución $\hat{b}$ de esta manera, dudo que ninguna de las estadísticas que salgan de este ajuste sean significativas.

2voto

Eero Puntos 1612

Esto se parece mucho a regresión de cresta El lm.ridge en la función MASS para R realiza la regresión de crestas y el ols en la función MASS también realiza una regresión penalizada. Si ninguno de los dos hace exactamente lo que quieres, podrían utilizarse como punto de partida. También podría mirar los algoritmos lasso y lars (hay paquetes para estos para R también) que utiliza un término de penalización L1 en lugar de L2.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X