本文整理匯總了Python中statsmodels.tsa.arima_model.ARIMA.summary2方法的典型用法代碼示例。如果您正苦於以下問題:Python ARIMA.summary2方法的具體用法?Python ARIMA.summary2怎麽用?Python ARIMA.summary2使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類statsmodels.tsa.arima_model.ARIMA
的用法示例。
在下文中一共展示了ARIMA.summary2方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: plot_acf
# 需要導入模塊: from statsmodels.tsa.arima_model import ARIMA [as 別名]
# 或者: from statsmodels.tsa.arima_model.ARIMA import summary2 [as 別名]
plot_acf(D_data).show() #自相關圖
from statsmodels.graphics.tsaplots import plot_pacf
plot_pacf(D_data).show() #偏自相關圖
print(u'差分序列的ADF檢驗結果為:', ADF(D_data[u'銷量差分'])) #平穩性檢測
#白噪聲檢驗
from statsmodels.stats.diagnostic import acorr_ljungbox
print(u'差分序列的白噪聲檢驗結果為:', acorr_ljungbox(D_data, lags=1)) #返回統計量和p值
from statsmodels.tsa.arima_model import ARIMA
#定階
pmax = int(len(D_data)/10) #一般階數不超過length/10
qmax = int(len(D_data)/10) #一般階數不超過length/10
bic_matrix = [] #bic矩陣
for p in range(pmax+1):
tmp = []
for q in range(qmax+1):
try: #存在部分報錯,所以用try來跳過報錯。
tmp.append(ARIMA(data, (p,1,q)).fit().bic)
except:
tmp.append(None)
bic_matrix.append(tmp)
bic_matrix = pd.DataFrame(bic_matrix) #從中可以找出最小值
p,q = bic_matrix.stack().idxmin() #先用stack展平,然後用idxmin找出最小值位置。
print(u'BIC最小的p值和q值為:%s、%s' %(p,q))
model = ARIMA(data, (p,1,q)).fit() #建立ARIMA(0, 1, 1)模型
model.summary2() #給出一份模型報告
model.forecast(5) #作為期5天的預測,返回預測結果、標準誤差、置信區間。
示例2: programmer_6
# 需要導入模塊: from statsmodels.tsa.arima_model import ARIMA [as 別名]
# 或者: from statsmodels.tsa.arima_model.ARIMA import summary2 [as 別名]
def programmer_6():
"""
警告解釋:
# UserWarning: matplotlib is currently using a non-GUI backend, so cannot show the figure
"matplotlib is currently using a non-GUI backend, "
調用了多次plt.show()
解決方案,使用plt.subplot()
# RuntimeWarning: overflow encountered in exp
運算精度不夠
forecastnum-->預測天數
plot_acf().show()-->自相關圖
plot_pacf().show()-->偏自相關圖
"""
discfile = 'data/arima_data.xls'
forecastnum = 5
data = pd.read_excel(discfile, index_col=u'日期')
fig = plt.figure(figsize=(8, 6))
# 第一幅自相關圖
ax1 = plt.subplot(411)
fig = plot_acf(data, ax=ax1)
# 平穩性檢測
print(u'原始序列的ADF檢驗結果為:', ADF(data[u'銷量']))
# 返回值依次為adf、pvalue、usedlag、nobs、critical values、icbest、regresults、resstore
# 差分後的結果
D_data = data.diff().dropna()
D_data.columns = [u'銷量差分']
# 時序圖
D_data.plot()
plt.show()
# 第二幅自相關圖
fig = plt.figure(figsize=(8, 6))
ax2 = plt.subplot(412)
fig = plot_acf(D_data, ax=ax2)
# 偏自相關圖
ax3 = plt.subplot(414)
fig = plot_pacf(D_data, ax=ax3)
plt.show()
fig.clf()
print(u'差分序列的ADF檢驗結果為:', ADF(D_data[u'銷量差分'])) # 平穩性檢測
# 白噪聲檢驗
print(u'差分序列的白噪聲檢驗結果為:', acorr_ljungbox(D_data, lags=1)) # 返回統計量和p值
data[u'銷量'] = data[u'銷量'].astype(float)
# 定階
pmax = int(len(D_data) / 10) # 一般階數不超過length/10
qmax = int(len(D_data) / 10) # 一般階數不超過length/10
bic_matrix = [] # bic矩陣
data.dropna(inplace=True)
# 存在部分報錯,所以用try來跳過報錯;存在warning,暫未解決使用warnings跳過
import warnings
warnings.filterwarnings('error')
for p in range(pmax + 1):
tmp = []
for q in range(qmax + 1):
try:
tmp.append(ARIMA(data, (p, 1, q)).fit().bic)
except:
tmp.append(None)
bic_matrix.append(tmp)
# 從中可以找出最小值
bic_matrix = pd.DataFrame(bic_matrix)
# 用stack展平,然後用idxmin找出最小值位置。
p, q = bic_matrix.stack().idxmin()
print(u'BIC最小的p值和q值為:%s、%s' % (p, q))
model = ARIMA(data, (p, 1, q)).fit() # 建立ARIMA(0, 1, 1)模型
model.summary2() # 給出一份模型報告
model.forecast(forecastnum) # 作為期5天的預測,返回預測結果、標準誤差、置信區間。
示例3: plot_acf
# 需要導入模塊: from statsmodels.tsa.arima_model import ARIMA [as 別名]
# 或者: from statsmodels.tsa.arima_model.ARIMA import summary2 [as 別名]
plt.rcParams['axes.unicode_minus'] = False
data.plot()
plt.show()
from statsmodels.graphics.tsaplots import plot_acf
plot_acf(data).show()
from statsmodels.tsa.stattools import adfuller as ADF
print 'ADF test result:', ADF(data['value'])
D_data = data.diff().dropna()
D_data.columns = ['diff value']
D_data.plot()
plt.show()
plot_acf(D_data).show()
from statsmodels.graphics.tsaplots import plot_pacf
plot_pacf(D_data).show()
print 'diff seq ADF test result:', ADF(D_data['diff value'])
from statsmodels.stats.diagnostic import acorr_ljungbox
print 'dff white noise test result:', acorr_ljungbox(D_data, lags = 1)
from statsmodels.tsa.arima_model import ARIMA
model = ARIMA(data, (1,1,1)).fit()
model.summary2()
model.forecast(5*6)