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 yi=α+βxi+ϵiyi=α+βxi+ϵi (donde ϵϵ es el término de error)

β=(nni=1xiyini=1xini=1yi)/(nni=1x2i(ni=1xi)2)β=(nni=1xiyini=1xini=1yi)/(nni=1x2i(ni=1xi)2)

α=(ni=1yiβni=1xi)/nα=(ni=1yiβni=1xi)/n

En este caso sólo tengo que mantener los valores de rodadura de xx , yy , xyxy y x2x2 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: yi=α+β1xi1+β2xi2+ϵiyi=α+β1xi1+β2xi2+ϵi

Es bastante desordenado: X1Y=ni=1xi1yi1n(ni=1xi1ni=1yi)X1Y=ni=1xi1yi1n(ni=1xi1ni=1yi) X2Y=ni=1xi2yi1n(ni=1xi2ni=1yi)X2Y=ni=1xi2yi1n(ni=1xi2ni=1yi) X1X2=ni=1xi1xi21n(ni=1xi1ni=1xi2)X1X2=ni=1xi1xi21n(ni=1xi1ni=1xi2) X1X1=ni=1x2i11n(ni=1xi1)2 X2X2=ni=1x2i21n(ni=1xi2)2

entonces obtenemos d=(X1X1X2X2)(X1X2)2 β1=1d(X2X2X1YX1X2X2Y) β2=1d(X1X1X2YX1X2X1Y)

De nuevo, aquí sólo necesito mantener sumas rodantes de x1 , x2 , y , x1y , x2y , x1x2 , x21 y x22 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 β 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 β 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 ˆx nuestra estimación, h es el dato independiente observado. z es el dato dependiente observado (escalar) y P=(HH)1 es parte de la covarianza del estimador ˆx .

Modelo de medición (para mediciones escalares)

zk+1=hT(k+1)x(k+1)+vk+1

Predictor-corrector ˆx(k+1)=ˆx(k)+K(k+1)[zk+1hT(k+1)ˆx(k)]

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

Cantidades de ganancia c(k+1)=[hT(k+1)P(k)h(k+1)+1]1

P(k+1)=P(k)P(k)h(k+1)c(k+1)hT(k+1)P(k) o P(k+1)=[IK(k+1)hT(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