10 votos

Solución analítica para la estimación de coeficientes de regresión lineal

Estoy tratando de entender la notación de matrices y trabajar con vectores y matrices.

Ahora mismo me gustaría entender cómo se calcula el vector de estimaciones de coeficientes $\hat{\beta}$ en la regresión múltiple.

La ecuación básica parece ser

$$ \frac{d}{d\boldsymbol{\beta}} (\boldsymbol{y}-\boldsymbol{X\beta})'(\boldsymbol{y}-\boldsymbol{X\beta}) = 0 \>. $$

Ahora, ¿cómo resolvería aquí un vector $\beta$?

Editar: Espera, estoy atascado. Estoy aquí ahora y no sé cómo continuar:

$\frac{d}{d{\beta}} \left( \left(\begin{smallmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{smallmatrix}\right) - \left(\begin{smallmatrix} 1 & x_{11} & x_{12} & \dots & x_{1p} \\ 1 & x_{21} & x_{22} & \dots & x_{2p} \\ \vdots & & & & \vdots \\ 1 & x_{n1} & x_{n2} & \dots & x_{np} \\ \end{smallmatrix}\right) \left(\begin{smallmatrix} \beta_0 \\ \beta_1 \\ \vdots \\ \beta_p \end{smallmatrix}\right) \right) ' \left( \left(\begin{smallmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{smallmatrix}\right) - \left(\begin{smallmatrix} 1 & x_{11} & x_{12} & \dots & x_{1p} \\ 1 & x_{21} & x_{22} & \dots & x_{2p} \\ \vdots & & & & \vdots \\ 1 & x_{n1} & x_{n2} & \dots & x_{np} \\ \end{smallmatrix}\right) \left(\begin{smallmatrix} \beta_0 \\ \beta_1 \\ \vdots \\ \beta_p \end{smallmatrix}\right) \right) $

$ \frac{d}{d{\beta}} \sum_{i=1}^n \left( y_i - \begin{pmatrix} 1 & x_{i1} & x_{i2} & \dots & x_{ip} \end{pmatrix} \begin{pmatrix} \beta_0 \\ \beta_1 \\ \vdots \\ \beta_p \end{pmatrix} \right)^2$

Con $x_{i0} = 1$ para todo $i$ siendo la intercepción:

$\frac{d}{d{\beta}} \sum_{i=1}^n \left( y_i - \sum_{k=0}^p x_{ik} \beta_k \right)^2 $

¿Puedes indicarme en la dirección correcta?

0 votos

@ GaBorgulya, gracias por la edición, no conocía smallmatrix, así que no intenté editar, ya que la solución habitual de dividir la fórmula en varias líneas no habría funcionado aquí.

14voto

ocram Puntos 9992

Tenemos

$\frac{d}{d\beta} (y - X \beta)' (y - X\beta) = -2 X' (y - X \beta)$.

Se puede demostrar escribiendo la ecuación explícitamente con componentes. Por ejemplo, escribir $(\beta_{1}, \ldots, \beta_{p})'$ en lugar de $\beta$. Luego tomar derivadas con respecto a $\beta_{1}$, $\beta_{2}$, ..., $\beta_{p}$ y apilar todo para obtener la respuesta. Para una ilustración rápida y fácil, puedes comenzar con $p = 2$.

Con la experiencia se desarrollan reglas generales, algunas de las cuales se dan, por ejemplo, en ese documento.

Edición para guiar en la parte añadida de la pregunta

Con $p = 2$, tenemos

$(y - X \beta)'(y - X \beta) = (y_1 - x_{11} \beta_1 - x_{12} \beta_2)^2 + (y_2 - x_{21}\beta_1 - x_{22} \beta_2)^2$

La derivada con respecto a $\beta_1$ es

$-2x_{11}(y_1 - x_{11} \beta_1 - x_{12} \beta_2)-2x_{21}(y_2 - x_{21}\beta_1 - x_{22} \beta_2)$

De manera similar, la derivada con respecto a $\beta_2$ es

$-2x_{12}(y_1 - x_{11} \beta_1 - x_{12} \beta_2)-2x_{22}(y_2 - x_{21}\beta_1 - x_{22} \beta_2)$

Por lo tanto, la derivada con respecto a $\beta = (\beta_1, \beta_2)'$ es

$ \left( \begin{array}{c} -2x_{11}(y_1 - x_{11} \beta_1 - x_{12} \beta_2)-2x_{21}(y_2 - x_{21}\beta_1 - x_{22} \beta_2) \\ -2x_{12}(y_1 - x_{11} \beta_1 - x_{12} \beta_2)-2x_{22}(y_2 - x_{21}\beta_1 - x_{22} \beta_2) \end{array} \right) $

Ahora, observa que se puede reescribir la última expresión como

$-2\left( \begin{array}{cc} x_{11} & x_{21} \\ x_{12} & x_{22} \end{array} \right)\left( \begin{array}{c} y_{1} - x_{11}\beta_{1} - x_{12}\beta_2 \\ y_{2} - x_{21}\beta_{1} - x_{22}\beta_2 \end{array} \right) = -2 X' (y - X \beta)$

Por supuesto, todo se hace de la misma manera para un $p$ más grande.

0 votos

¡Genial, estaba buscando justamente ese tipo de pdf. ¡Gracias un montón!

0 votos

Oh, pensé que podía hacerlo yo mismo ahora, pero no puedo. ¿Puedes decirme si mis pasos son correctos o si debo tomar "otra vía" para resolver esto?

0 votos

@Alexx Hardt: Mi primera ecuación en la edición es la misma que tu última ecuación en el caso particular donde p = 2. Por lo tanto, puedes imitar mis cálculos para los componentes 3, 4, ..., p.

14voto

Marc-Andre R. Puntos 789

También puedes utilizar fórmulas de Matrix cookbook. Tenemos

$$(y-X\beta)'(y-X\beta)=y'y-\beta'X'y-y'X\beta+\beta'X'X\beta$$

Ahora tomamos las derivadas de cada término. Puede notar que $\beta'X'y=y'X\beta$. La derivada del término $y'y$ con respecto a $\beta$ es cero. El término restante

$$\beta'X'X\beta-2y'X\beta$$

es de la forma de la función

$$f(x)=x'Ax+b'x,$$

en la fórmula (88) en el libro en la página 11, con $x=\beta$, $A=X'X$ y $b=-2X'y$. La derivada se da en la fórmula (89):

$$\frac{\partial f}{\partial x}=(A+A')x+b$$

entonces

$$\frac{\partial}{\partial \beta}(y-X\beta)'(y-X\beta)=(X'X+(X'X)')\beta-2X'y$$

Ahora, dado que $(X'X)'=X'X$, obtenemos la solución deseada:

$$X'X\beta=X'y$$

0 votos

+1 mpiktas: Tu solución es más ingeniosa que la mía y creo que debería ser utilizada en situaciones prácticas más complejas.

1 votos

@ocram, gracias. No lo llamaría ingenioso, es una aplicación estándar de fórmulas existentes. Solo necesitas conocer las fórmulas :)

10voto

giulio Puntos 166

Aquí hay una técnica para minimizar la suma de cuadrados en la regresión que realmente tiene aplicaciones en configuraciones más generales y que encuentro útil.

Intentemos evitar por completo el cálculo de vectores y matrices.

Supongamos que estamos interesados en minimizar $$ \newcommand{\err}{\mathcal{E}}\newcommand{\my}{\mathbf{y}}\newcommand{\mX}{\mathbf{X}}\newcommand{\bhat}{\hat{\beta}}\newcommand{\reals}{\mathbb{R}} \err = (\my - \mX \beta)^T (\my - \mX \beta) = \|\my - \mX \beta\|_2^2 \> , $$ donde $\my \in \reals^n$, $\mX \in \reals^{n\times p}$ y $\beta \in \reals^p$. Suponemos para simplificar que $p \leq n$ y $\mathrm{rank}(\mX) = p$.

Para cualquier $\bhat \in \reals^p$, obtenemos $$ \err = \|\my - \mX \bhat + \mX \bhat - \mX \beta\|_2^2 = \|\my - \mX \bhat\|_2^2 + \|\mX(\beta-\bhat)\|_2^2 - 2(\beta - \bhat)^T \mX^T (\my - \mX \bhat) \>. $$

Si podemos elegir (encontrar!) un vector $\bhat$ tal que el último término del lado derecho sea cero para cada $\beta$, entonces estaríamos listos, ya que eso implicaría que $\min_\beta \err \geq \|\my - \mX \bhat\|_2^2$.

Pero, $(\beta - \bhat)^T \mX^T (\my - \mX \bhat) = 0$ para todo $\beta$ si y solo si $\mX^T (\my - \mX \bhat) = 0$ y esta última ecuación es verdadera si y solo si $\mX^T \mX \bhat = \mX^T \my$. Entonces $\err$ se minimiza tomando $\bhat = (\mX^T \mX)^{-1} \mX^T \my$.


Aunque esto puede parecer un "truco" para evitar el cálculo, en realidad tiene una aplicación más amplia y hay una geometría interesante en juego.

Un ejemplo donde esta técnica hace que una derivación sea mucho más simple que cualquier enfoque de cálculo de matrices y vectores es cuando generalizamos al caso de matrices. Sea $\newcommand{\mY}{\mathbf{Y}}\newcommand{\mB}{\mathbf{B}}\mY \in \reals^{n \times p}$, $\mX \in \reals^{n \times q}$ y $\mB \in \reals^{q \times p}$. Supongamos que queremos minimizar $$ \err = \mathrm{tr}( (\mY - \mX \mB) \Sigma^{-1} (\mY - \mX \mB)^T ) $$ sobre toda la matriz $\mB$ de parámetros. Aquí $\Sigma$ es una matriz de covarianza.

Un enfoque completamente análogo al anterior establece rápidamente que el mínimo de $\err$ se obtiene tomando $$ \hat{\mB} = (\mX^T \mX)^{-1} \mX^T \mY \>. $$ Es decir, en un entorno de regresión donde la respuesta es un vector con covarianza $\Sigma$ y las observaciones son independientes, entonces la estimación de ECO se obtiene realizando $p$ regresiones lineales separadas en los componentes de la respuesta.

0 votos

Afortunadamente las reglas del foro permiten añadir +1 a cada respuesta. ¡Gracias por la educación, chicos!

0 votos

@DWin, ¿querías publicar esto bajo los comentarios de la pregunta?

0 votos

Supongo que podría haberlo hecho. Había pasado secuencialmente por la pregunta y luego por todas las respuestas (después de que el procesamiento de MathML dejara de moverse) y encontré cada una de las respuestas informativas. Simplemente dejé mi comentario en el tuyo porque fue donde dejé de leer.

9voto

patfla Puntos 1

Una forma que puede ayudarte a comprender es no usar álgebra matricial, y diferenciar con respecto a cada componente, y luego "almacenar" los resultados en un vector columna. Entonces tenemos:

$$\frac{\partial}{\partial \beta_{k}}\sum_{i=1}^{N}\left(Y_{i}-\sum_{j=1}^{p}X_{ij}\beta_{j}\right)^{2}=0$$

Ahora tienes $p$ de estas ecuaciones, una para cada beta. Esta es una simple aplicación de la regla de la cadena:

$$\sum_{i=1}^{N}2\left(Y_{i}-\sum_{j=1}^{p}X_{ij}\beta_{j}\right)^{1}\left(\frac{\partial}{\partial \beta_{k}}\left[Y_{i}-\sum_{j=1}^{p}X_{ij}\beta_{j}\right]\right)=0$$ $$-2\sum_{i=1}^{N}X_{ik}\left(Y_{i}-\sum_{j=1}^{p}X_{ij}\beta_{j}\right)=0$$

Ahora podemos reescribir la suma dentro del paréntesis como $\sum_{j=1}^{p}X_{ij}\beta_{j}=\bf{x}_{i}^{T}\boldsymbol{\beta}$ Entonces obtienes:

$$\sum_{i=1}^{N}X_{ik}Y_{i}-\sum_{i=1}^{N}X_{ik}\bf{x}_{i}^{T}\boldsymbol{\beta}=0$$

Ahora tenemos $p$ de estas ecuaciones, y las "apilaremos" en un vector columna. Observa cómo $X_{ik}$ es el único término que depende de $k$, por lo que podemos apilar esto en el vector $\bf{x}_{i}$ y obtenemos:

$$\sum_{i=1}^{N}\bf{x}_{i}\rm{Y}_{i}=\sum_{i=1}^{N}\bf{x}_{i}\bf{x}_{i}^{T}\boldsymbol{\beta}$$

Ahora podemos sacar el beta fuera de la suma (pero debe permanecer en el lado derecho de la suma), y luego tomar la inversa:

$$\left(\sum_{i=1}^{N}\bf{x}_{i}\bf{x}_{i}^{T}\right)^{-1}\sum_{i=1}^{N}\bf{x}_{i}\rm{Y}_{i}=\boldsymbol{\beta}$$

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