Hemos usado 2 conjuntos de datos para esto. El primer conjunto de datos se ha obtenido del sitio web "World Gold Council". Este conjunto de datos es para los precios mundiales del oro de 1978 a 2018. Estos son datos mensuales.
Dado que este conjunto de datos no es el precio de mercado real del oro, decidimos obtener el precio de mercado del oro en la India. No había conjuntos de datos disponibles para el mismo. Rapamos los datos del mercado de Gold Price India de 2011 a 2018 por cada mes. Dado que los datos fueron raspados de la web, los verificamos manualmente antes de usar lo mismo para análisis.
Preprocesamos todos los datos utilizando técnicas básicas como soltar todas las filas con valores faltantes (¡no hubo ninguno!). El mayor preprocesamiento se realizó a las fechas, ya que los datos se recopilaron de diferentes fuentes, las fechas estaban en diferentes formatos y se formatearon a un formato común que Matplotlib lo entendería para trazarlo adecuadamente.
● Regresión múltiple
Intentamos crear un modelo de regresión simple. Es un modelo de regresión múltiple con parámetros de entrada como el promedio móvil de los últimos 1 mes y los últimos 2 meses. Podemos observar claramente el sobreajuste en este modelo. Este sobreajuste puede atribuirse a que los datos no son estacionarios.
● Verifique la estacionariedad
Para verificar la estacionariedad de los datos, trazamos los datos junto con las fechas. Con solo mirar la trama, podemos concluir que los datos no son estacionarios. También podemos ver en los histogramas (en el código) que los datos tienen estacionalidad y algún componente de las tendencias. También realizamos la prueba Dickey-Fuller para confirmar la estacionariedad. Podemos ver que el estadístico ADF es más alto que cualquiera de los valores críticos, y el valor de P es mucho mayor que 0.05, por lo que no podemos rechazar la hipótesis nula de que los datos no son estacionarios.
● Haga que los datos estacionaron para que los datos estacionaron, utilizamos la técnica más simple para tomar una transformación de registro.
Podemos observar que no hay cambios y que los datos siguen siendo no estacionarios. Ahora intentamos realizar la diferenciación de estos datos. Realizamos la diferenciación del orden 2 y observamos los siguientes resultados. Podemos ver que la estadística de ADF es inferior al 1% de valor crítico, por lo tanto, podemos rechazar la hipótesis nula y concluir con un nivel de confianza del 99% que los datos son estacionarios. Ahora podemos usar estos datos para un mayor modelado.
● Modelo de regresión nuevamente
Usamos el modelo de regresión anterior nuevamente para estos datos estacionarios. Vemos los siguientes resultados. Obtenemos un valor cuadrado R del 30%, que está por debajo de la par. Y el error cuadrado medio raíz también es muy alto. Aunque el RMSE es una estadística absoluta y no se puede usar para juzgar la bondad del ajuste, usaremos este valor para una comparación adicional con otros modelos
● Gráficos de ACF y PACF
Ahora intentamos trazar los gráficos de autocorrelación parcial de ACF IE y PACF IE IE para que estos datos encuentren los valores P, Q, D para crear un modelo ARIMA.
● Modelo Sarima
Modelamos estos datos utilizando un modelo Sarima. Un modelo de Sarima representa un modelo ARIMA estacional. El modelo Sarima es mejor sobre un modelo ARIMA simple cuando hay datos estacionales. Es decir, los datos de Timeseries tienen ciclos de repetición. Observamos que el modelo se ajusta mucho mejor que cualquiera de los modelos anteriores.
A continuación se presentan los resultados y los diagnósticos del modelo. Vemos que el valor cuadrado R es del 73%, lo que es aceptable y el error RMS se ha reducido a 1715 de 5000, lo cual es una buena señal.
Ahora usamos el otro (conjunto de datos del mercado indio) para intentar y encontrar tendencias interesantes en la fluctuación de precios. Interrestamente durante varios años los precios del oro han sido máximos durante la temporada de bodas correspondientes a ese año. También podemos ver una tendencia cíclica en el precio, hay 6-8 años de crecimiento alcista seguido de 6-8 años de mercado bajista. Por lo tanto, aparte de eso, no hay tendencias obvias en los datos. El precio máximo siempre ha sido de marzo-abril o septiembre-octubre que cae durante o justo antes de la temporada de bodas.
Ahora tenemos un modelo que puede predecir el precio del oro con casi el 73% de precisión y hemos encontrado una correlación interesante entre el precio de mercado del oro y la temporada de bodas en India.
Podemos concluir de manera segura que el precio del oro en el mercado mundial y el mercado indio regional son muy volátiles y dependen de muchos factores externos que no se pueden modelar tan fácilmente.
Para el trabajo futuro, podemos usar y construir sobre nuestro modelo existente para construir un sistema de recomendaciones que sugiera a los usuarios el momento adecuado para comprar y vender oro para las personas que se interesan en invertir en oro.