6

Statik değişkenlere sahip bir modeli eğitmek için statsmodels.tsa.SARIMAX() kullanıyorum. Bir model exogenous değişkenler ile eğitildiğinde get_prediction() eşdeğeri var mıdır, böylece nesne, öngörülen ortalama sonuçlar dizisinden ziyade, öngörülen ortalama ve güven aralığını içerir. Tahmin() ve tahmin() yöntemleri, eksojen değişkenler alır, ancak sadece öngörülen ortalama değeri döndürür. Burada bekleneninPython Statsmodels: Öngörülen ortalama ve güven aralıkları elde etmek için eksojen regresörler ile SARIMAX kullanarak

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) 

tahmin edilen değerler dizisi yerine, get_predict koştu eğer alacağı tahmin ortalama değerler ve güven aralıkları içeren bir nesne() 'dir. Not, get_predict() eksojen değişkenler almaz.

statsmodels Benim sürümü 0.8

cevap

3

hangi tam sonuçları (pred aralıkları vb) ile maruz edilmiyor nedeniyle bazı geriye dönük uyumluluk ilgili sorunları olmuştur olduğunu.

almak için şu anda ne istiyorum: Yazar tarafından

  • https://github.com/statsmodels/statsmodels/issues/2823
  • Çözüm: parametrelerle Kullanım get_prediction ve get_forecast fonksiyonları daha fazla bilgi için

    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() 
    

    aşağıda açıklanan adrese gidin: http://www.statsmodels.org/dev/examples/notebooks/generated/statespace_local_linear_trend.html

İlgili konular