Skip to content

Instantly share code, notes, and snippets.

@gonzalezgouveia
Last active November 2, 2018 10:09
Show Gist options
  • Save gonzalezgouveia/79c0c126be06e7baac6a8bbe8f4ba6a1 to your computer and use it in GitHub Desktop.
Save gonzalezgouveia/79c0c126be06e7baac6a8bbe8f4ba6a1 to your computer and use it in GitHub Desktop.
ecobici order sarima
from statsmodels.tsa.statespace.sarimax import SARIMAX # modelo SARIMA
from itertools import product # facilita ejecicion del ciclo for
# definiendo niveles del modelo
niveles = ['p', 'd', 'q', 'sp', 'sd', 'sq', 'AIC', 'BIC','log-like']
resultados_modelos = pd.DataFrame(columns=niveles)
grados = [0,1,2]
# recorriendo todos los modelos posibles
for p, d, q, sp, sd, sq in product(grados, repeat=6):
print('Modelo: (p = {}, d = {}, q = {}, sp = {}, sd = {}, sq = {})'.format(p,d,q,sp,sd,sq))
try:
sarima_model = SARIMAX(x, order=(p,d,q), seasonal_order=(sp, sd, sq, 24))
results = sarima_model.fit()
fila_de_resultados = pd.DataFrame([[p, d, q, sp, sd, sq, results.aic, results.bic, results.llf]], columns=niveles)
resultados_modelos = resultados_modelos.append(fila_de_resultados)
except:
print('|-----> no se pudo modelizar')
fila_de_resultados = pd.DataFrame([[p, d, q, sp, sd, sq, float('inf'), float('inf'), -float('inf')]], columns=niveles)
resultados_modelos = resultados_modelos.append(fila_de_resultados)
# mostrando tabla
resultados_modelos.sort_values(by=['log-like'], ascending=False).head(10)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment