3 votos

Cálculo de la regresión lineal múltiple OLS con ventana móvil y/o actualización

¿Cómo puedo calcular eficazmente un ajuste OLS para N variables múltiples para una ventana móvil?

Ya he resuelto cómo hacerlo para ajustes lineales de 1 y 2 variables, me gustaría extenderlo al caso general de N variables si es posible (o al menos a 3). No quiero calcular toda la regresión para cada ventana individual, quiero actualizar mi cálculo con cada nuevo punto de datos.

Por ejemplo, para un ajuste de una variable de la forma $y_i = \alpha + \beta x_i + \epsilon_i$ (donde $\epsilon$ es el término de error)

$$\beta = (n\sum_{i=1}^{n} x_i y_i - \sum_{i=1}^{n} x_i \sum_{i=1}^{n} y_i) / (n \sum_{i=1}^{n} x_i^2 - (\sum_{i=1}^{n} x_i)^2)$$

$$\alpha = (\sum_{i=1}^{n} y_i - \beta \sum_{i=1}^{n} x_i)/n$$

En este caso sólo tengo que mantener los valores de rodadura de $\sum x$ , $\sum y$ , $\sum xy$ y $\sum x^2$ y puedo calcular rápidamente los parámetros de ajuste en cada paso de la ventana sin tener que volver a hacerlo todo.

He conseguido lo mismo para un ajuste múltiple de 2 variables de la forma: $y_i = \alpha + \beta_{1} x_{i1} + \beta_{2} x_{i2} + \epsilon_i$

Es bastante desordenado: $$\sum X_1Y = \sum_{i=1}^{n} x_{i1}y_i - \frac{1}{n}(\sum_{i=1}^{n}x_{i1} \sum_{i=1}^{n} y_i)$$ $$\sum X_2Y = \sum_{i=1}^{n} x_{i2}y_i - \frac{1}{n}(\sum_{i=1}^{n}x_{i2} \sum_{i=1}^{n} y_i)$$ $$\sum X_1X_2 = \sum_{i=1}^{n} x_{i1}x_{i2} - \frac{1}{n}(\sum_{i=1}^{n}x_{i1} \sum_{i=1}^{n} x_{i2})$$ $$\sum X_1X_1 = \sum_{i=1}^{n} x_{i1}^2 - \frac{1}{n}(\sum_{i=1}^{n}x_{i1})^2$$ $$\sum X_2X_2 = \sum_{i=1}^{n} x_{i2}^2 - \frac{1}{n}(\sum_{i=1}^{n}x_{i2})^2$$

entonces obtenemos $$d = (\sum X_1X_1 \sum X_2X_2) - (\sum X_1X_2)^2$$ $$\beta_1 = \frac{1}{d}(\sum X_2X_2 \sum X_1Y - \sum X_1X_2 \sum X_2Y)$$ $$\beta_2 = \frac{1}{d}(\sum X_1X_1 \sum X_2Y - \sum X_1X_2 \sum X_1Y)$$

De nuevo, aquí sólo necesito mantener sumas rodantes de $\sum x_1$ , $\sum x_2$ , $\sum y$ , $\sum x_1y$ , $\sum x_2y$ , $\sum x_1x_2$ , $\sum x_1^2$ y $\sum x_2^2$ para calcular la regresión, no necesito hacer el ajuste individualmente para cada ventana, y así es muy rápido. (Tenga en cuenta que sólo me importa el $\beta$ valores).

Ahora quiero ampliarlo a 3 variables (y posiblemente más). He empezado a trabajar con el álgebra y es peliagudo. Estoy seguro de que debo estar perdiendo un truco o un patrón aquí que hace que la extensión a 3 + variables relativamente fácil.

¿Puede alguien sugerirme cómo puedo ampliar mi técnica anterior a 3 variables (o posiblemente más) o de otro modo calcular eficientemente el $\beta$ para una ventana enrollable? Gracias.

1voto

MVCylon Puntos 194

Las fórmulas pueden ser completamente correctas, pero no son tan fáciles de extender. Sería mejor considerar el álgebra matricial apropiada. Este documento (especialmente las primeras 7 páginas) tiene todas las fórmulas necesarias para una regresión de ventana creciente mediante actualizaciones rápidas ( Hostetter, estimación recursiva ). Si descargas la referencia verás que es básicamente una aplicación de esta fórmula 'Sherman-Morrison-Woodbury' para actualizar matrices inversas.

La regresión que consideran es $$z = Hx + v$$ (notación graciosa pero es una publicación de Procesamiento de Señales). Las ecuaciones de actualización son similares a las del filtro de Kalman, pero más sencillas:

Las variables son $x$ son los coeficientes de regresión y $\hat{x}$ nuestra estimación, $h$ es el dato independiente observado. $z$ es el dato dependiente observado (escalar) y $P = (H'H)^{-1}$ es parte de la covarianza del estimador $\hat{x}$ .

Modelo de medición (para mediciones escalares)

$$z_{k+1}= h^T (k + 1 ) x ( k + 1 ) + v_{k+1} $$

Predictor-corrector $$\hat{x}(k + 1) = \hat{x}(k) + K(k + 1)[z_{k+1} - h^T(k + 1)\hat{x}(k)]$$

Ganancia del corrector $$K(k + 1) = P(k)h(k + 1)c(k + 1)$$

Cantidades de ganancia $$c(k + 1) = [h^T(k + 1)P(k)h(k + 1) + 1 ] ^{-1}$$

$$P(k + 1) = P(k) - P(k)h(k + 1)c(k + 1)h^T(k + 1)P(k)$$ o $$P(k+1) = [ I - K (k+ 1)h^T(k+ 1)]P(k)$$

Básicamente, es más sencillo tratar sus ecuaciones de actualización cuando se utiliza el álgebra matricial

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