6

भविष्यवाणी करने के लिए मैं statsmodels.tsa.SARIMAX() का उपयोग कर रहा बहिर्जात चर के साथ एक मॉडल को प्रशिक्षित करने के। वहाँ get_prediction के समतुल्य() जब एक मॉडल ताकि वस्तु लौटे बहिर्जात चर के साथ प्रशिक्षित किया जाता है की भविष्यवाणी की मतलब और विश्वास का अंतराल नहीं बल्कि सिर्फ तुलना में भविष्यवाणी मतलब परिणामों की एक सरणी शामिल है? अनुमान है() और पूर्वानुमान() पद्धतियों बहिर्जात चर ले, लेकिन केवल भविष्यवाणी मतलब मान।अजगर Statsmodels: बहिर्जात regressors साथ SARIMAX का उपयोग करना मतलब और विश्वास के अंतराल

SARIMA_model = sm.tsa.SARIMAX(endog=y_train.astype('float64'), 
          exog=ExogenousFeature_train.values.astype('float64'), 
          order=(1,0,0), 
          seasonal_order=(2,1,0,7), 
          simple_differencing=False) 

model_results = SARIMA_model.fit() 

pred = model_results.predict(start=train_end_date, 
           end=test_end_date, 
           exog=ExogenousFeature_test.values.astype('float64').reshape(343,1), 
           dynamic=False) 

यहाँ महीनो के बजाय एक वस्तु की भविष्यवाणी मतलब मूल्यों और विश्वास के अंतराल है कि आप अगर आप get_predict दौड़ा मिलेगा युक्त() की भविष्यवाणी की मानों की एक सरणी है। ध्यान दें, get_predict() बहिर्जात चर नहीं लेता है।

statsmodels की मेरी संस्करण 0.8

उत्तर

3

जो पूर्ण परिणाम (साथ महीनो के अंतराल आदि) संपर्क में नहीं किया जा रहा है की वजह से कुछ पश्चगामी संगतता संबंधित मुद्दों हुई है है।

आप प्राप्त करने के लिए अब आप क्या चाहते हैं: लेखक द्वारा

  • https://github.com/statsmodels/statsmodels/issues/2823
  • समाधान: उपयोग get_prediction और मानकों के साथ get_forecast कार्यों नीचे

    pred_res = sarimax_model.get_prediction(exog=ExogenousFeature_train.values.astype('float64'), full_results=True,alpha=0.05) 
        pred_means = pred_res.predicted_mean 
        # Specify your prediction intervals by alpha parameter. alpha=0.05 implies 95% CI 
        pred_cis = pred_res.conf_int(alpha=0.05) 
    
        # You can then plot it (import matplotlib first) 
        fig = plt.figure(figsize=(12, 8)) 
        ax = fig.add_subplot(1,1,1) 
        #Actual data 
        ax.plot(y_train.astype('float64'), '--', color="blue", label='data') 
        # Means 
        ax.plot(pred_means, lw=1, color="black", alpha=0.5, label='SARIMAX') 
        ax.fill_between(pred_means.index, pred_cis.iloc[:, 0], pred_cis.iloc[:, 1], alpha=0.05) 
        ax.legend(loc='upper right') 
        plt.draw() 
    

    वर्णित अधिक जानकारी के लिए, पर जाएँ: http://www.statsmodels.org/dev/examples/notebooks/generated/statespace_local_linear_trend.html

संबंधित मुद्दे