ARIMA es una abreviatura que representa AutoRegressive Incorporated Moving Normal. Es una clase de modelos que capta un conjunto de varias estructuras mundanas estándar en la información de la disposición del tiempo.

En este ejercicio de instrucción, encontrará cómo construir un modelo ARIMA para la información del arreglo de tiempo con Python.

Después de terminar este ejercicio de instrucción, lo sabrás:

Sobre el modelo ARIMA los parámetros utilizados y las sospechas hechas por el modelo.

Instrucciones paso a paso para ajustar un modelo ARIMA a la información y usarlo para hacer figuras.

Instrucciones paso a paso para diseñar el modelo ARIMA en su asunto de arreglo de tiempo.

Encuentra cómo prepararte y visualizar la información de la disposición del tiempo y crear modelos determinantes autorregresivos en mi nuevo libro, con 28 ejercicios de instrucción poco a poco, y un código pitón completo.

¿Qué tal si empezamos.

Actualizado en abril de 2011: Actualizada la conexión con el conjunto de datos.

Actualizado en septiembre de 2011: Guías actualizadas para utilizar la interfaz de programación más reciente.

Modelo normal de movimiento coordinado autorregresivo

Un modelo ARIMA es una clase de modelos fácticos para descomponer y determinar la información de la disposición del tiempo.

Tiene en cuenta inequívocamente un conjunto de estructuras estándar en la información sobre la ordenación del tiempo, y en esa capacidad ofrece una técnica sencilla pero innovadora para hacer medidores de ordenación del tiempo adecuados.

ARIMA es una abreviatura que representa AutoRegressive Incorporated Moving Normal. Es una especulación de la más directa Normal Móvil Auto-Regresiva e incluye el pensamiento de combinación.

Esta abreviatura es inconfundible, capturando las partes clave del propio modelo. Rápidamente, lo son:

AR: Autoregresión. Un modelo que utiliza la conexión necesaria entre la percepción y un cierto número de percepciones flojas.

I: Incorporado. La utilización de la diferenciación de las percepciones crudas (por ejemplo, restando una percepción de la percepción en el paso de tiempo pasado) para hacer que la disposición temporal sea estacionaria.

Moverse con normalidad. Un modelo que utiliza la dependencia entre una percepción y un error garrafal persistente de un modelo de movimiento normal aplicado a las percepciones flojas.

Cada una de estas partes se indica inequívocamente en el modelo como un parámetro. Se utiliza la documentación estándar de ARIMA(p,d,q) donde los parámetros se sustituyen por calidades de números enteros para mostrar rápidamente el modelo ARIMA particular que se está utilizando.

Los parámetros del modelo ARIMA se caracterizan como perseguidos:

p: El número de percepciones de holgura incorporadas en el modelo, también llamado petición de holgura.

d: Las ocasiones en que las percepciones crudas se diferencian se llaman también el nivel de diferencia.

q: El tamaño de la ventana de movimiento normal, adicionalmente llamado la solicitud de movimiento normal.

Se elabora un modelo de recaída recta que incluye el número y el tipo de términos predefinidos, y la información se establece por un nivel de diferenciación para hacerla estacionaria, por ejemplo, para expulsar patrones y estructuras regulares que influyen negativamente en el modelo de recaída.

Se puede utilizar una estimación de 0 para un parámetro, lo que demuestra que no se utiliza ese componente del modelo. Por lo tanto, el modelo ARIMA puede ser diseñado para reproducir la capacidad de un modelo ARMA, e incluso un modelo básico AR, I o Mama.

Al recibir un modelo ARIMA para un arreglo de períodos, se acepta que el procedimiento básico que produjo las percepciones es un procedimiento ARIMA. Esto puede parecer evidente, sin embargo, inspira la necesidad de afirmar las sospechas del modelo en las crudas percepciones y en los persistentes desaciertos de las figuras del modelo.

A continuación, ¿qué tal si echamos un vistazo a cómo podemos utilizar el modelo ARIMA en Python. Empezaremos apilando un arreglo básico de tiempo univariado.

Conjunto de datos de Cleanser Deals

Este conjunto de datos retrata el número de ofertas de limpiador mes a mes en un marco de tiempo de varios años.

Las unidades son un recuento de negocios y hay 36 percepciones. El primer conjunto de datos se atribuye a Makridakis, Wheelwright y Hyndman (1998).

A continuación se muestra un caso de apilamiento del conjunto de datos de Cleanser Deals con Pandas con una capacidad personalizada para analizar el campo fecha-hora. El conjunto de datos está basado en un año subjetivo, para esta situación 1900.

3

4

5

6

7

8

9

10

11

de la importación de pandas read_csv

de la fecha de importación de los pandas

de matplotlib import pyplot

def parser(x):

return datetime.strptime(‘190’+x, ‘%Y-%m’)

series = read_csv(‘shampoo-sales.csv’, header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser)

print(series.head())

series.plot()

pyplot.show()

Ejecutando el ejemplo se imprimen las primeras 5 filas del conjunto de datos.

Mes

1901-01-01 266.0

1901-02-01 145.9

1901-03-01 183.1

1901-04-01 119.3

1901-05-01 180.3

Nombre: Ventas, tipo: float64

1

2

3

4

5

6

7

Mes

1901-01-01 266.0

1901-02-01 145.9

1901-03-01 183.1

1901-04-01 119.3

1901-05-01 180.3

Nombre: Ventas, tipo: float64

Los datos también se trazan como una serie temporal con el mes a lo largo del eje x y las cifras de ventas en el eje y.

Echemos también un vistazo rápido a un gráfico de autocorrelación de las series temporales. Esto también está incorporado en los Pandas. El siguiente ejemplo muestra la autocorrelación de un gran número de retrasos en la serie de tiempo.

de la importación de pandas read_csv

de la fecha de importación de los pandas

de matplotlib import pyplot

de pandas.plotting import autocorrelation_plot

def parser(x):

return datetime.strptime(‘190’+x, ‘%Y-%m’)

series = read_csv(‘shampoo-sales.csv’, header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser)

autocorrelación_trama(serie)

pyplot.show()

1

2

3

4

5

6

7

8

9

10

11

de la importación de pandas read_csv

de la fecha de importación de los pandas

de matplotlib import pyplot

de pandas.plotting import autocorrelation_plot

def parser(x):

return datetime.strptime(‘190’+x, ‘%Y-%m’)

series = read_csv(‘shampoo-sales.csv’, header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser)

autocorrelación_trama(serie)

pyplot.show()

Ejecutando el modelo, podemos ver que hay una relación positiva con los 10 o 12 pantalones iniciales que es quizás enorme para los 5 pantalones iniciales.

Una etapa inicial decente para el parámetro AR del modelo podría ser 5.

ARIMA con Python

La biblioteca de modelos estadísticos permite ajustar un modelo ARIMA.

Se puede hacer un modelo ARIMA utilizando la biblioteca de modelos estadísticos como se persigue:

Caracterizar el modelo llamando a ARIMA() y entrando en los parámetros p, d y q.

El modelo se establece en la información de la preparación llamando al trabajo fit().

Las previsiones pueden hacerse llamando al trabajo de anticipación() y determinando la lista del tiempo o tiempos que se anticiparán.

Deberíamos empezar con algo sencillo. Ajustaremos un modelo ARIMA a todo el conjunto de datos de Cleanser Deals y estudiaremos los errores restantes.

Para empezar, ajustamos un modelo ARIMA(5,1,0). Esto establece la holgura un incentivo a 5 para la autoregresión, utiliza una petición de distinción de 1 para hacer el arreglo de tiempo estacionario, y utiliza un modelo normal móvil de 0.

Al ajustar el modelo, se dan muchos datos de investigación sobre el ataque del modelo de recaída recta. Podemos matar esto poniendo la contención de la disipación a 0.