时间序列分析-2 forecast 、predict
forecast and get_forcast、predict and get_prediction
forecast 参数steps,表示预报多少个时间点(fit样本数据后)。
eg:
from statsmodels.tsa.arima.model import ARIMA
y=[1,2,3,4,5,6]
model=ARIMA(y,order=(1,1,0))
m=model.fit()
m.forecast(5)
在fit数据序列后(样本外),forecast5个点(为7,8,9,10,11)y的值。
predict 参数(start,end) ,start起始时间点,end结束时间点。
起始、结束都没有限制(in sample与out of sample 均可),end大于start。
样本内的为拟合值,样本外为预测。
如果只给一个int值,缺省认为:
大于fit样本的最后时间点,预测这个时刻的值。
小于fit样本的最后时间点,predict当前值到fit样本的最后时间点。
eg:
x=[1,2,3,4,5,6]
model=ARIMA(y,order=(1,1,0))
m=model.fit()
m.predict(2) #predict x等于2,3,4,5,6的y
m.predict(7) #forecast x等于7的y
get_prediction, get_forecast基本同上
但返回的值不一样。
他们都给出置信区间conf_int
预测结果为置信区间的均值。
通过.predicted_mean或forecast_mean属性获取预测值。
eg:
from statsmodels.tsa.arima.model import ARIMA
y=[1,2,3,4,5,6]
model=ARIMA(y,order=(1,1,0))
m=model.fit()
result=m.get_prediction(2)
result.conf_int() #返回置信区间
result.predicted_mean #返回预测结果