31 votos

Ajuste de un modelo ARIMAX con la regularización o penalización (por ejemplo, con el lazo, red elástica, o la cresta de regresión)

Yo uso el auto.arima() en función de la previsión de paquete para adaptarse a modelos ARMAX con una variedad de covariables. Sin embargo, a menudo tienen una gran cantidad de variables para seleccionar y por lo general terminan con un final modelo que funciona con un subconjunto de ellos. No me gusta ad-hoc técnicas para la selección de variables porque soy humano y sujeto a sesgo, pero la validación cruzada de la serie de tiempo es difícil, por lo que no he encontrado una buena manera de intentar automáticamente diferentes subconjuntos de mis variables disponibles, y estoy pegado sintonía de mis modelos usando mi propio mejor juicio.

Cuando me caben modelos glm, puedo usar la red elástica o el lazo para la regularización y selección de variables, a través de la glmnet paquete. Hay un kit de herramientas existentes en R para el uso de la red elástica en modelos ARMAX, o voy a tener que rodar mi propia? Esto es incluso una buena idea?

edit: Tendría sentido calcular manualmente la AR y MA términos (dicen que hasta 5IE y MA5) y el uso glmnet para ajustar el modelo?

edit 2: parece que la FitAR paquete se me parte, pero no todos, de la manera allí.

8voto

Nathan Long Puntos 30303

Esta no es una solución sino algunas reflexiones sobre las posibilidades y dificultades, que yo sepa.

Siempre que es posible especificar un tiempo-modelo de serie como $$Y_{t+1} = \mathbf{x}_t \beta + \epsilon_{t+1}$$ con $\mathbf{x}_t$ computables a partir de las covariables y la hora quedado observaciones, también es posible calcular los mínimos cuadrados red elástica penalizado estimador de $\beta$ usando glmnet en R. Es necesario escribir código para calcular $\mathbf{x}_t$ para formar el modelo de la matriz que será especificado en glmnet. Esto funciona para AR-modelos, pero no directamente por ARMA de modelos, dicen. Por otra parte, la validación cruzada de los procedimientos de glmnet no son sensibles per se para datos de series de tiempo.

Para obtener más general de modelos $$Y_{t+1} = f(\mathbf{x}_t, \beta) + \epsilon_{t+1}$$ una implementación de un algoritmo para el cálculo de la no-lineal de mínimos cuadrados red elástica penalizado estimador de $\beta$ es necesario. Al mejor de mi conocimiento, no hay aplicación en R. actualmente estoy escribiendo una aplicación para resolver el caso donde
$$Y_{t+1} = \mathbf{x}_t g(\beta) + \epsilon_{t+1}$$ el punto es que es de suma importancia para la selección del modelo que el lazo de penalización es de $\beta$ e no $g(\beta)$. Si mal no recuerdo la ARIMA-parametrización correctamente también toma esta forma $-$ pero no puedo ofrecer ningún código en el momento. Es (será) basado en Una coordenada de gradiente de la pendiente método para nonsmooth separables de minimización.

Otro problema es la selección de la cantidad de penalización (los parámetros de ajuste). Por lo general, requieren un formulario de validación cruzada para series de tiempo, pero espero ser capaz de trabajar algunos menos computacionalmente exigente métodos para modelos específicos.

3voto

Owen Fraser-Green Puntos 642

Me fue desafiado por un cliente para resolver este problema de forma automática, es decir, llave en mano. He implementado un enfoque que, para cada par ( es decir, y un candidato x ) , prewhiten , calcular las correlaciones de la pre-blanqueado de la serie, identificar el PDL ( O ADL AUTORREGRESIVOS DISTRIBUIDO LAG MODELO incluyendo cualquier TIEMPO MUERTO ), incorporando a la Intervención de Detección para producir estimaciones sólidas, desarrollar una "medida" para esta estructura. Después de realizar esta para TODOS los candidatos regresores, clasificarlos por la "medida" y, a continuación, seleccione la parte superior K regresores a partir de la "medida". A veces esto se conoce como filtración Lineal. Hemos incorporado con éxito esta heurística en nuestro comercialmente disponibles de la serie de tiempo del paquete. Usted debe ser capaz de "RODAR SUS PROPIOS" si usted tiene el tiempo suficiente y estadístico de conocimientos de programación y/o módulos disponibles para implementar algunas de estas tareas.

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