當前位置: 首頁>>代碼示例>>Python>>正文


Python ARIMA.forecast方法代碼示例

本文整理匯總了Python中statsmodels.tsa.arima_model.ARIMA.forecast方法的典型用法代碼示例。如果您正苦於以下問題:Python ARIMA.forecast方法的具體用法?Python ARIMA.forecast怎麽用?Python ARIMA.forecast使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在statsmodels.tsa.arima_model.ARIMA的用法示例。


在下文中一共展示了ARIMA.forecast方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: getLikelihood

# 需要導入模塊: from statsmodels.tsa.arima_model import ARIMA [as 別名]
# 或者: from statsmodels.tsa.arima_model.ARIMA import forecast [as 別名]
def getLikelihood(endog,exog, order = None,n_forecasted_data=1):
    
    '''
    train_en = endog[:predict_start-1]
    test_en = endog[predict_start:]
    print train_en
    print test_en
    train_ex = exog[:predict_start-1]
    test_ex = exog[predict_start:]
    '''
    # Automatically determine values of orders
    if order is None:
        from scipy.optimize import brute
        grid = (slice(1, 3, 1), slice(1, 3, 1),slice(0, 3, 1))
        
        print "############################################"
        print endog
        print "############################################"
        
        try: 
            order =  brute(objfunc, grid, args=(exog, endog), finish=None)
            order = order.astype(int)
        except :
            order = [1,1,3]
        # Model fits given data (endog) with optimized order
        
        
    print "*********************************************"
    print "Choose order of ",
    print order
    print "*********************************************"
    
    model = ARIMA(endog,order).fit(full_output=False,disp=False)
    
    # 1st element of array x is the forecasted data.
    x = model.forecast(n_forecasted_data)
    return x[0]
開發者ID:harusametime,項目名稱:Gradian,代碼行數:39,代碼來源:segment.py

示例2: plot_pacf

# 需要導入模塊: from statsmodels.tsa.arima_model import ARIMA [as 別名]
# 或者: from statsmodels.tsa.arima_model.ARIMA import forecast [as 別名]
from statsmodels.graphics.tsaplots import plot_pacf
plot_pacf(D_data).show() #偏自相關圖
ADF(D_data[u'銷量差分'])#平穩性檢測

#白噪聲檢驗
from statsmodels.stats.diagnostic import acorr_ljungbox
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, (0,1,1)).fit() #建立ARIMA(0, 1, 1)模型
model.summary() #給出一份模型報告
model.forecast(5) #作為期5天的預測,返回預測結果、標準誤差、置信區間。
開發者ID:mkoxly,項目名稱:ora11g,代碼行數:32,代碼來源:week12-demo.py

示例3: programmer_6

# 需要導入模塊: from statsmodels.tsa.arima_model import ARIMA [as 別名]
# 或者: from statsmodels.tsa.arima_model.ARIMA import forecast [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天的預測,返回預測結果、標準誤差、置信區間。
開發者ID:Ctipsy,項目名稱:python_data_analysis_and_mining_action,代碼行數:76,代碼來源:code.py

示例4: plot_acf

# 需要導入模塊: from statsmodels.tsa.arima_model import ARIMA [as 別名]
# 或者: from statsmodels.tsa.arima_model.ARIMA import forecast [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)

開發者ID:memoiry,項目名稱:2016-,代碼行數:31,代碼來源:arima.py


注:本文中的statsmodels.tsa.arima_model.ARIMA.forecast方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。