La predicción es la ciencia de estimar situaciones de incertidumbre, donde en este caso lograremos predecir el futuro utilizando datos de series temporales anteriores.
Los datos que utilizaremos datos del Departamento de Estadísticas e información en salud del Ministerio de Salud de Chile, estos datos están libremente disponibles en el sitio web del Departamento. Utilizaremos datos desde el año 2017 para predecir el mes de Marzo y Abril del año 2020.
El caso de estudio que analizaremos son los casos totales de Chile para atenciones de urgencia respiratoria.
Además de la biblioteca Prophet utilizaremos Pandas para manejar el conjunto de datos y Matplotlib para la visualización.
Importamos las bibliotecas necesarias:
import pandas as pd
from fbprophet import Prophet
import matplotlib.pyplot as plt
Primero cargaremos el conjunto de datos en memoria:
df = pd.read_csv('2017-today.csv', sep=';')
Convertimos la fecha del punto de datos en un objeto Datetime de Pandas y el valor en un Integer:
df['ds'] = pd.to_datetime(df.ds)
df['y'] = pd.to_numeric(df.y,errors='coerce')
Instanciamos Prophet y entrenamos el modelo:
m = Prophet()
m.fit(df)
Creamos un DataFrame que contiene los datos futuros que vamos a predecir:
future = m.make_future_dataframe(periods=60)
Predecimos sobre el DataFrame anteriormente creado:
forecast = m.predict(future)
Generamos la figura que contiene un mes de datos reales y dos meses de datos predichos:
predicted = forecast.tail(63)
real = df[-30:-2]
fig, ax = plt.subplots()
ax.plot(predicted["ds"],predicted["yhat"],label="Predicción")
ax.plot(real["ds"],real["y"],label="Real")
ax.fill_between(predicted["ds"], predicted["yhat_lower"], predicted["yhat_upper"],color="aliceblue",label="Intervalo de Confianza")
ax.legend()
ax.set_title("Predicción de Atenciones de Urgencia por Causas Respiratorias")
ax.set_ylabel("Atenciones")
ax.set_xlabel("Fecha")
fig.text(0.5, 0.5, 'fabianvillena.cl', fontsize=40, color='gray', ha='center', va='center', alpha=0.5)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
He aquí la predicción:
¡Comparte la imagen en tus Redes Sociales!
Desde la predicción se desprende que desde la próxima semana se dispararán las atenciones de urgencias alrededor de dos veces más que los valores actuales.