- 一、变平稳
1.1 去趋势
差分、取对数
1.2去周期性
滤波、差分
1.3变平稳的原因除了1.1、1.2之外还有
稳定方差、使数据呈现正态分布、使周期效应累加
ARIMA模型的示例代码
from pandas import read_csv
from pandas import datetime
from matplotlib import pyplot
from statsmodels.tsa.arima_model import ARIMA
from sklearn.metrics import mean_squared_error
def parser(p):
return datetime.strptime('190'+p,'%Y-%m)
series = read_csv('input.csv',header = 0,parse_dates = [0],index_col = 0,squeeze = True,date_parser = parser)
P = series.values
size = int(len(P)*0.66)
train,test = P[0:size],P[size:len(P)]
history = [p for p in train]
predictions = list()
for t in range(len(test)):
model = ARIMA(history,order=(5,1,0))
model_fit = model.fit(disp=0)
output = model_fit.forecast()
yhat = output[0]
predictions.append(yhat)
obs = test[t]
history.append(obs) # 滑动窗口
print