OLEH :
Walizaqhi Ridholalbis (2110951029)
Dengan:
n = jumlah keseluruhan data
Yt = data aktual waktu t.
Metode Penelitian
Alur Forecasting ARIMA
Make
For Future
Predictions on
Dates
Test Set
1. Read data
Langkah pertama dalam deret waktu apa pun adalah membaca data Anda dan melihat
tampilannya. Cuplikan kode berikut menunjukkan cara melakukannya. membaca data
membaca data menggunakan pd.read_csv dan menulis parse_date=True, untuk membuat date
sebagai index.
2. PLOT DATA
df['AvgTemp'].plot(figsize=(12,5))
untuk melihat stationary dari data yang di plot.
3. Check stationary
def adf_test(dataset):
dftest = adfuller(dataset, autolag = 'AIC')
print("1. ADF : ",dftest[0])
print("2. P-Value : ", dftest[1])
print("3. Num Of Lags : ", dftest[2])
print("4. Num Of Observations Used For ADF Regression and Critical
Values Calculation :", dftest[3])
print("5. Critical Values :")
for key, val in dftest[4].items():
print("\t",key, ": ", val)
adf_test(df['AvgTemp'])
In [7]:
stepwise_fit = auto_arima(df['AvgTemp'],trace=True,
suppress_warnings=True)
stepwise_fit.summary()
5. Split Data into Training and Testing
print(df.shape)
train=df.iloc[:-30]
test=df.iloc[-30:]
print(train.shape,test.shape)
print(test.iloc[0],test.iloc[-1])
6. Train the Model
from statsmodels.tsa.arima_model import ARIMA
model=ARIMA(train['AvgTemp'],order=(1,0,5))
model=model.fit()
model.summary()
7.Make Predictions on Test Set
start=len(train)
end=len(train)+len(test)-1
pred=model.predict(start=start+1,end=end+1,type='levels').rename('ARIMA
predictions')
pred.index=df.index[start:end+1]
print(pred)
pred.plot(legend='ARIMA Predictions')
test['AvgTemp'].plot(legend=True)
test['AvgTemp'].mean()
model2=ARIMA(df['AvgTemp'],order=(1,0,5))
model2=model2.fit()
df.tail()
8. For Future Dates
index_future_dates=pd.date_range(start='2018-12-30',end='2019-01-29')
#print(index_future_dates)
pred=model2.predict(start=len(df),end=len(df)
+30,typ='levels').rename('ARIMA Predictions')
#print(comp_pred)
pred.index=index_future_dates
print(pred)
pred.plot(figsize=(12,5),legend=True)