<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 11 Python 中的經典時間序列預測方法(備忘單) > 原文: [https://machinelearningmastery.com/time-series-forecasting-methods-in-python-cheat-sheet/](https://machinelearningmastery.com/time-series-forecasting-methods-in-python-cheat-sheet/) 機器學習方法可用于分類和預測時間序列問題。 在探索時間序列的機器學習方法之前,最好確保使用經典的線性時間序列預測方法。經典時間序列預測方法可能側重于線性關系,然而,它們是復雜的并且在廣泛的問題上表現良好,假設您的數據已經適當準備并且方法配置良好。 在這篇文章中,您將發現一套用于時間序列預測的經典方法,您可以在探索機器學習方法之前測試您的預測問題。 該帖子被構造為一個備忘單,為您提供有關每個方法的足夠信息,以便開始使用工作代碼示例以及在何處查看有關該方法的更多信息。 所有代碼示例都在 Python 中并使用 Statsmodels 庫。這個庫的 API 對于初學者來說可能很棘手(相信我!),因此以一個工作代碼示例作為起點將大大加快您的進度。 這是一個很大的帖子;你可能想要為它添加書簽。 讓我們開始吧。 ![11 Classical Time Series Forecasting Methods in Python (Cheat Sheet)](https://img.kancloud.cn/9b/72/9b72867d425e8c6c999c065b7ec858fe_640x400.jpg) 11 Python 中的經典時間序列預測方法(備忘單) [Ron Reiring](https://www.flickr.com/photos/84263554@N00/33076725455/) 的照片,保留一些權利。 ## 概觀 該備忘單演示了 11 種不同的經典時間序列預測方法;他們是: 1. 自回歸(AR) 2. 移動平均線(MA) 3. 自回歸移動平均線(ARMA) 4. 自回歸綜合移動平均線(ARIMA) 5. 季節性自回歸整合移動平均線(SARIMA) 6. 具有外生回歸量的季節性自回歸整合移動平均線(SARIMAX) 7. 向量自回歸(VAR) 8. 向量自回歸移動平均值(VARMA) 9. 具有外源回歸量的向量自回歸移動平均值(VARMAX) 10. 簡單指數平滑(SES) 11. 霍爾特·溫特的指數平滑(HWES) 我錯過了您最喜歡的古典時間序列預測方法嗎? 請在下面的評論中告訴我。 每種方法都以一致的方式呈現。 這包括: * **說明**。對該技術的簡短而精確的描述。 * **Python 代碼**。一個簡短的工作示例,用于擬合模型并在 Python 中進行預測。 * **更多信息**。 API 和算法的參考。 每個代碼示例都在一個簡單的人為數據集上進行演示,該數據集可能適合或不適合該方法。用您的數據替換人為的數據集以測試方法。 請記住:每種方法都需要調整您的具體問題。在很多情況下,我已經有了如何在博客上配置甚至網格搜索參數的示例,請嘗試搜索功能。 如果您發現此備忘單有用,請在下面的評論中告訴我。 ## 自回歸(AR) 自回歸(AR)方法將序列中的下一步建模為先前時間步驟的觀察的線性函數。 該模型的符號涉及指定模型 p 的順序作為 AR 函數的參數,例如, AR(P)。例如,AR(1)是一階自回歸模型。 該方法適用于沒有趨勢和季節性成分的單變量時間序列。 ### Python 代碼 ```py # AR example from statsmodels.tsa.ar_model import AR from random import random # contrived dataset data = [x + random() for x in range(1, 100)] # fit model model = AR(data) model_fit = model.fit() # make prediction yhat = model_fit.predict(len(data), len(data)) print(yhat) ``` ### 更多信息 * [statsmodels.tsa.ar_model.AR API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.ar_model.AR.html) * [statsmodels.tsa.ar_model.ARResults API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.ar_model.ARResults.html) * [維基百科上的自回歸模型](https://en.wikipedia.org/wiki/Autoregressive_model) ## 移動平均線(MA) 移動平均(MA)方法將序列中的下一步建模為來自先前時間步驟的平均過程的殘余誤差的線性函數。 移動平均模型與計算時間序列的移動平均值不同。 該模型的表示法涉及將模型 q 的順序指定為 MA 函數的參數,例如, MA(Q)。例如,MA(1)是一階移動平均模型。 該方法適用于沒有趨勢和季節性成分的單變量時間序列。 ### Python 代碼 我們可以使用 ARMA 類創建 MA 模型并設置零階 AR 模型。我們必須在 order 參數中指定 MA 模型的順序。 ```py # MA example from statsmodels.tsa.arima_model import ARMA from random import random # contrived dataset data = [x + random() for x in range(1, 100)] # fit model model = ARMA(data, order=(0, 1)) model_fit = model.fit(disp=False) # make prediction yhat = model_fit.predict(len(data), len(data)) print(yhat) ``` ### 更多信息 * [statsmodels.tsa.arima_model.ARMA API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.arima_model.ARMA.html) * [statsmodels.tsa.arima_model.ARMAResults API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.arima_model.ARMAResults.html) * [維基百科上的移動平均模型](https://en.wikipedia.org/wiki/Moving-average_model) ## 自回歸移動平均線(ARMA) 自回歸移動平均(ARMA)方法將序列中的下一步建模為先前時間步驟的觀測和再造誤差的線性函數。 它結合了自回歸(AR)和移動平均(MA)模型。 該模型的表示法涉及將 AR(p)和 MA(q)模型的順序指定為 ARMA 函數的參數,例如,ARMA 函數的參數。 ARMA(p,q)。 ARIMA 模型可用于開發 AR 或 MA 模型。 該方法適用于沒有趨勢和季節性成分的單變量時間序列。 ### Python 代碼 ```py # ARMA example from statsmodels.tsa.arima_model import ARMA from random import random # contrived dataset data = [random() for x in range(1, 100)] # fit model model = ARMA(data, order=(2, 1)) model_fit = model.fit(disp=False) # make prediction yhat = model_fit.predict(len(data), len(data)) print(yhat) ``` ### 更多信息 * [statsmodels.tsa.arima_model.ARMA API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.arima_model.ARMA.html) * [statsmodels.tsa.arima_model.ARMAResults API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.arima_model.ARMAResults.html) * [維基百科上的自回歸移動平均模型](https://en.wikipedia.org/wiki/Autoregressive%E2%80%93moving-average_model) ## 自回歸綜合移動平均線(ARIMA) 自回歸整合移動平均(ARIMA)方法將序列中的下一步建模為先前時間步長的差異觀測值和殘差誤差的線性函數。 它結合了自回歸(AR)和移動平均(MA)模型以及序列的差分預處理步驟,使序列靜止,稱為積分(I)。 該模型的表示法涉及將 AR(p),I(d)和 MA(q)模型的順序指定為 ARIMA 函數的參數,例如 ARIMA 函數的參數。 ARIMA(p,d,q)。 ARIMA 模型也可用于開發 AR,MA 和 ARMA 模型。 該方法適用于具有趨勢且沒有季節性成分的單變量時間序列。 ### Python 代碼 ```py # ARIMA example from statsmodels.tsa.arima_model import ARIMA from random import random # contrived dataset data = [x + random() for x in range(1, 100)] # fit model model = ARIMA(data, order=(1, 1, 1)) model_fit = model.fit(disp=False) # make prediction yhat = model_fit.predict(len(data), len(data), typ='levels') print(yhat) ``` ### 更多信息 * [statsmodels.tsa.arima_model.ARIMA API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.arima_model.ARIMA.html#statsmodels.tsa.arima_model.ARIMA) * [statsmodels.tsa.arima_model.ARIMAResults API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.arima_model.ARIMAResults.html) * [維基百科上的自回歸綜合移動平均線](https://en.wikipedia.org/wiki/Autoregressive_integrated_moving_average) ## 季節性自回歸整合移動平均線(SARIMA) 季節性自回歸綜合移動平均線(SARIMA)方法將序列中的下一步建模為差異觀測值,誤差,差異季節觀測值和先前時間步長的季節誤差的線性函數。 它結合了 ARIMA 模型,能夠在季節性水平上執行相同的自回歸,差分和移動平均建模。 該模型的表示法涉及指定 AR(p),I(d)和 MA(q)模型的順序作為 ARIMA 函數和 AR(P),I(D),MA(Q)和 m 的參數。季節性參數,例如 SARIMA(p,d,q)(P,D,Q)m 其中“m”是每個季節(季節性時期)的時間步數。 SARIMA 模型可用于開發 AR,MA,ARMA 和 ARIMA 模型。 該方法適用于具有趨勢和/或季節性分量的單變量時間序列。 ### Python 代碼 ```py # SARIMA example from statsmodels.tsa.statespace.sarimax import SARIMAX from random import random # contrived dataset data = [x + random() for x in range(1, 100)] # fit model model = SARIMAX(data, order=(1, 1, 1), seasonal_order=(1, 1, 1, 1)) model_fit = model.fit(disp=False) # make prediction yhat = model_fit.predict(len(data), len(data)) print(yhat) ``` ### 更多信息 * [statsmodels.tsa.statespace.sarimax.SARIMAX API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.statespace.sarimax.SARIMAX.html) * [statsmodels.tsa.statespace.sarimax.SARIMAXResults API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.statespace.sarimax.SARIMAXResults.html) * [維基百科上的自回歸綜合移動平均線](https://en.wikipedia.org/wiki/Autoregressive_integrated_moving_average) ## 具有外生回歸量的季節性自回歸整合移動平均線(SARIMAX) 具有外源回歸量的季節性自回歸整合移動平均值(SARIMAX)是 SARIMA 模型的擴展,其還包括外生變量的建模。 外生變量也稱為協變量,可以被認為是并行輸入序列,其在與原始序列相同的時間步驟中具有觀察結果。初級系列可以稱為內源性數據,以將其與外源序列進行對比。對于外源變量的觀察結果直接在每個時間步驟包括在模型中,并且不以與主要內源序列相同的方式建模(例如作為 AR,MA 等過程)。 SARIMAX 方法還可用于使用外生變量對包含的模型進行建模,例如 ARX,MAX,ARMAX 和 ARIMAX。 該方法適用于具有趨勢和/或季節性成分和外生變量的單變量時間序列。 ### Python 代碼 ```py # SARIMAX example from statsmodels.tsa.statespace.sarimax import SARIMAX from random import random # contrived dataset data1 = [x + random() for x in range(1, 100)] data2 = [x + random() for x in range(101, 200)] # fit model model = SARIMAX(data1, exog=data2, order=(1, 1, 1), seasonal_order=(0, 0, 0, 0)) model_fit = model.fit(disp=False) # make prediction exog2 = [200 + random()] yhat = model_fit.predict(len(data1), len(data1), exog=[exog2]) print(yhat) ``` ### 更多信息 * [statsmodels.tsa.statespace.sarimax.SARIMAX API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.statespace.sarimax.SARIMAX.html) * [statsmodels.tsa.statespace.sarimax.SARIMAXResults API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.statespace.sarimax.SARIMAXResults.html) * [維基百科上的自回歸綜合移動平均線](https://en.wikipedia.org/wiki/Autoregressive_integrated_moving_average) ## 向量自回歸(VAR) 向量自回歸(VAR)方法使用 AR 模型模擬每個時間序列中的下一步。 AR 是多個并行時間序列的推廣,例如,多變量時間序列。 該模型的表示法涉及將 AR(p)模型的順序指定為 VAR 函數的參數,例如, VAR(P)。 該方法適用于沒有趨勢和季節性成分的多變量時間序列。 ### Python 代碼 ```py # VAR example from statsmodels.tsa.vector_ar.var_model import VAR from random import random # contrived dataset with dependency data = list() for i in range(100): v1 = i + random() v2 = v1 + random() row = [v1, v2] data.append(row) # fit model model = VAR(data) model_fit = model.fit() # make prediction yhat = model_fit.forecast(model_fit.y, steps=1) print(yhat) ``` ### 更多信息 * [statsmodels.tsa.vector_ar.var_model.VAR API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.vector_ar.var_model.VAR.html) * [statsmodels.tsa.vector_ar.var_model.VARResults API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.vector_ar.var_model.VARResults.html) * [維基百科](https://en.wikipedia.org/wiki/Vector_autoregression)上的向量自回歸 ## 向量自回歸移動平均值(VARMA) 向量自回歸移動平均(VARMA)方法使用 ARMA 模型對每個時間序列中的下一步進行建模。這是 ARMA 對多個并行時間序列的推廣,例如多變量時間序列。 該模型的表示法涉及將 AR(p)和 MA(q)模型的順序指定為 VARMA 函數的參數,例如, VARMA(p,q)。 VARMA 模型也可用于開發 VAR 或 VMA 模型。 該方法適用于沒有趨勢和季節性成分的多變量時間序列。 ### Python 代碼 ```py # VARMA example from statsmodels.tsa.statespace.varmax import VARMAX from random import random # contrived dataset with dependency data = list() for i in range(100): v1 = random() v2 = v1 + random() row = [v1, v2] data.append(row) # fit model model = VARMAX(data, order=(1, 1)) model_fit = model.fit(disp=False) # make prediction yhat = model_fit.forecast() print(yhat) ``` ### 更多信息 * [statsmodels.tsa.statespace.varmax.VARMAX API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.statespace.varmax.VARMAX.html) * [statsmodels.tsa.statespace.varmax.VARMAXResults](http://www.statsmodels.org/dev/generated/statsmodels.tsa.statespace.varmax.VARMAXResults.html) * [維基百科](https://en.wikipedia.org/wiki/Vector_autoregression)上的向量自回歸 ## 具有外源回歸量的向量自回歸移動平均值(VARMAX) 具有外源回歸量的向量自回歸移動平均值(VARMAX)是 VARMA 模型的擴展,其還包括外生變量的建模。它是 ARMAX 方法的多變量版本。 外生變量也稱為協變量,可以被認為是并行輸入序列,其在與原始序列相同的時間步驟中具有觀察結果。初級系列被稱為內源性數據,以將其與外源序列進行對比。對于外源變量的觀察結果直接在每個時間步驟包括在模型中,并且不以與主要內源序列相同的方式建模(例如作為 AR,MA 等過程)。 VARMAX 方法還可用于使用外生變量(如 VARX 和 VMAX)對包含的模型進行建模。 該方法適用于沒有趨勢和季節性成分以及外生變量的多變量時間序列。 ### Python 代碼 ```py # VARMAX example from statsmodels.tsa.statespace.varmax import VARMAX from random import random # contrived dataset with dependency data = list() for i in range(100): v1 = random() v2 = v1 + random() row = [v1, v2] data.append(row) data_exog = [x + random() for x in range(100)] # fit model model = VARMAX(data, exog=data_exog, order=(1, 1)) model_fit = model.fit(disp=False) # make prediction data_exog2 = [[100]] yhat = model_fit.forecast(exog=data_exog2) print(yhat) ``` ### 更多信息 * [statsmodels.tsa.statespace.varmax.VARMAX API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.statespace.varmax.VARMAX.html) * [statsmodels.tsa.statespace.varmax.VARMAXResults](http://www.statsmodels.org/dev/generated/statsmodels.tsa.statespace.varmax.VARMAXResults.html) * [維基百科](https://en.wikipedia.org/wiki/Vector_autoregression)上的向量自回歸 ## 簡單指數平滑(SES) 簡單指數平滑(SES)方法將下一個時間步長建模為先前時間步長的觀測值的指數加權線性函數。 該方法適用于沒有趨勢和季節性成分的單變量時間序列。 ### Python 代碼 ```py # SES example from statsmodels.tsa.holtwinters import SimpleExpSmoothing from random import random # contrived dataset data = [x + random() for x in range(1, 100)] # fit model model = SimpleExpSmoothing(data) model_fit = model.fit() # make prediction yhat = model_fit.predict(len(data), len(data)) print(yhat) ``` ### 更多信息 * [statsmodels.tsa.holtwinters.SimpleExpSmoothing API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.holtwinters.SimpleExpSmoothing.html) * [statsmodels.tsa.holtwinters.HoltWintersResults API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.holtwinters.HoltWintersResults.html) * [維基百科上的指數平滑](https://en.wikipedia.org/wiki/Exponential_smoothing) ## 霍爾特·溫特的指數平滑(HWES) Holt Winter 的指數平滑(HWES)也稱為三次指數平滑方法,將下一個時間步長建模為先前時間步長的觀測值的指數加權線性函數,并考慮趨勢和季節性。 該方法適用于具有趨勢和/或季節性分量的單變量時間序列。 ### Python 代碼 ```py # HWES example from statsmodels.tsa.holtwinters import ExponentialSmoothing from random import random # contrived dataset data = [x + random() for x in range(1, 100)] # fit model model = ExponentialSmoothing(data) model_fit = model.fit() # make prediction yhat = model_fit.predict(len(data), len(data)) print(yhat) ``` ### 更多信息 * [statsmodels.tsa.holtwinters.ExponentialSmoothing API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.holtwinters.ExponentialSmoothing.html) * [statsmodels.tsa.holtwinters.HoltWintersResults API](http://www.statsmodels.org/dev/generated/statsmodels.tsa.holtwinters.HoltWintersResults.html) * [維基百科上的指數平滑](https://en.wikipedia.org/wiki/Exponential_smoothing) ## 進一步閱讀 如果您希望深入了解,本節將提供有關該主題的更多資源。 * [Statsmodels:時間序列分析 API](http://www.statsmodels.org/dev/tsa.html) * [Statsmodels:狀態空間方法的時間序列分析](http://www.statsmodels.org/dev/statespace.html) ## 摘要 在這篇文章中,您發現了一套經典的時間序列預測方法,您可以測試和調整時間序列數據集。 我錯過了您最喜歡的古典時間序列預測方法嗎? 請在下面的評論中告訴我。 您是否在數據集上嘗試了這些方法? 請在評論中告訴我你的發現。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看