import pmdarima as pm
import pandas as pd
park_type = ['bukhan', 'byeonsan', 'chiak', 'dadohae', 'deogyu', 'gaya', 'gyeongju',
'gyeryong', 'halla', 'hallyeo', 'jiri', 'juwang', 'mudeung', 'naejang',
'odae', 'seorak', 'sobaek', 'songni', 'taean', 'taebaek', 'wolchul', 'worak']
R2_list = []
RMSE_list = []
MAPE_list = []
cls = []
code = []
for park in park_type:
for i in range(4):
data = load_data(park, i)
data['date'] = pd.to_datetime(data['date'])
train_data = data[data['date'] <= '2020-01-01']
test_data = data[data['date'] >= '2020-01-01']
model = pm.ARIMA(order=(2, 1, 0),
seasonal_order=(2, 1, 0, 46),
scoring='mse'
)
model_fit = model.fit(train_data['avg'])
model_predict = model_fit.predict(len(test_data['avg']))
R2_list.append(R2(test_data['avg'], model_predict))
RMSE_list.append(RMSE(test_data['avg'], model_predict))
MAPE_list.append(MAPE(test_data['avg'], model_predict))
cls.append(i)
code.append(park)
df = pd.DataFrame({'park': code, 'class': cls, 'R2': R2_list, 'RMSE': RMSE_list, 'MAPE': MAPE_list})
df.to_csv(root+'arima_final.csv')