最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

拓端tecdat|Python用ARIMA和SARIMA模型預測銷量時間序列數(shù)據(jù)

2021-07-18 14:14 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=21573?

原文出處:拓端數(shù)據(jù)部落公眾號

介紹

ARIMA模型是時間序列預測中一種常用的統(tǒng)計方法。指數(shù)平滑和ARIMA模型是時間序列預測中應用最為廣泛的兩種方法,它們是解決這一問題的補充方法。指數(shù)平滑模型是基于對數(shù)據(jù)趨勢和季節(jié)性的描述,而ARIMA模型則是為了描述數(shù)據(jù)的自相關性。

在討論ARIMA模型之前,我們先來討論平穩(wěn)性的概念和時間序列的差分技術。

平穩(wěn)性

平穩(wěn)時間序列數(shù)據(jù)的性質(zhì)不依賴于時間,這就是為什么具有趨勢或季節(jié)性的時間序列不是平穩(wěn)的。趨勢和季節(jié)性會在不同的時間影響時間序列的值,另一方面,對于平穩(wěn)性,當你觀察它時并不重要,它在任何時間點看起來都應該是相同的。一般來說,一個平穩(wěn)的時間序列在長期內(nèi)沒有可預測的模式。

ARIMA是自回歸綜合移動平均線的縮寫。它是一類在時間序列數(shù)據(jù)中捕獲一組不同標準時間結構的模型。
在本教程中,我們將討論如何用Python開發(fā)時間序列預測的ARIMA模型。
ARIMA模型是一類用于分析和預測時間序列數(shù)據(jù)的統(tǒng)計模型。它在使用上確實簡化了,但是這個模型確實很強大。
ARIMA代表自回歸綜合移動平均。

ARIMA模型的參數(shù)定義如下:
p:模型中包含的滯后觀測數(shù),也稱為滯后階數(shù)。
d:原始觀測值的差異次數(shù),也稱為差分階數(shù)。
q:移動平均線窗口的大小,也叫移動平均階數(shù)。
建立一個包含指定數(shù)量和類型的項的線性回歸模型,并通過差分程度來準備數(shù)據(jù),使其平穩(wěn),即去除對回歸模型產(chǎn)生負面影響的趨勢和季節(jié)結構。

步驟

1可視化時間序列數(shù)據(jù)
2確定日期是否平穩(wěn)
3繪制相關圖和自相關圖
4根據(jù)數(shù)據(jù)建立ARIMA模型或季節(jié)ARIMA模型
?

在本教程中,我正在使用下面的數(shù)據(jù)集。

  1. df.head()


  2. #更新表頭

  3. df.columns=["月份","銷量"]

  4. df.head()


  5. df.plot()

如果我們看到上面的圖表,那么我們將能夠找到一個趨勢,即有一段時間銷售很高,反之亦然。這意味著我們可以看到數(shù)據(jù)是遵循季節(jié)性的。對于ARIMA,我們首先要做的是確定數(shù)據(jù)是平穩(wěn)的還是非平穩(wěn)的。如果數(shù)據(jù)是非平穩(wěn)的,我們會盡量使它們平穩(wěn),然后我們會進一步處理。
讓我們檢查給定的數(shù)據(jù)集是否是平穩(wěn)的,為此我們使用adfuller檢驗 。

我通過運行上述代碼導入了檢驗函數(shù)。

為了確定數(shù)據(jù)的性質(zhì),我們將使用零假設。
H0:零假設:這是一個關于總體的陳述,要么被認為是正確的,要么被用來提出一個論點。
H1:備選假設:與H0相矛盾,當我們拒絕H0時,我們得出的結論。
Ho:它是非平穩(wěn)的
H1:它是平穩(wěn)的
我們將考慮數(shù)據(jù)不平穩(wěn)的零假設和數(shù)據(jù)平穩(wěn)的備擇假設。


  1. adfuller_test(df['銷量'])

運行上述代碼后,我們將得到P值,

  1. ADF Test Statistic : -1.833

  2. p-value : 0.363915

  3. #Lags Used : 11

  4. Number of Observations : 93

這里P值是0.36,大于0.05,這意味著數(shù)據(jù)接受了零假設,這意味著數(shù)據(jù)是非平穩(wěn)的。
我們來看看一階差分和季節(jié)性差分:

df['Sales First Difference'] = df['銷量'] - df['銷量'].shift(1)

  1. # 再次測試數(shù)據(jù)是否平穩(wěn)

  2. adfuller_test(df['Seasonal First Difference'].dropna())

  1. ADF Test Statistic : -7.626619157213163

  2. p-value : 2.060579696813685e-11

  3. #Lags Used : 0

  4. Number of Observations : 92

這里p值是2.06,表示拒絕零假設。所以數(shù)據(jù)是平穩(wěn)的。

自相關系數(shù):

  1. autocorrelation_plot(df['銷量'])

  2. plt.show()

plot_acf(df['季節(jié)性一階差分'].dropna(),lags=40,ax=ax1)

建立ARIMA模型?

  1. #對于非季節(jié)性數(shù)據(jù)

  2. #p=1, d=1, q=0 or 1


  3. model=ARIMA(df['銷量'],order=(1,1,1))


?

predict(start=90,end=103,dynamic=True)

SARIMA模型?

然后建立SARIMA模型?


  1. plot(figsize=(12,8))

可以看到擬合效果要優(yōu)于ARIMA模型。

然后我們用SARIMA模型對未來進行預測。?


  1. future_df['預測'] = results.predict(start = 104, end = 120, dynamic= True)

  2. future_df.plot(figsize=(12, 8))

結論

時間序列預測是非常有用的,有很多其他模型可以做時間序列預測,但ARIMA是很容易理解的。

最受歡迎的見解

1.在python中使用lstm和pytorch進行時間序列預測

2.python中利用長短期記憶模型lstm進行時間序列預測分析

3.使用r語言進行時間序列(arima,指數(shù)平滑)分析

4.r語言多元copula-garch-模型時間序列預測

5.r語言copulas和金融時間序列案例

6.使用r語言隨機波動模型sv處理時間序列中的隨機波動

7.r語言時間序列tar閾值自回歸模型

8.r語言k-shape時間序列聚類方法對股票價格時間序列聚類

9.python3用arima模型進行時間序列預測


拓端tecdat|Python用ARIMA和SARIMA模型預測銷量時間序列數(shù)據(jù)的評論 (共 條)

分享到微博請遵守國家法律
永春县| 互助| 北流市| 察雅县| 祁东县| 米林县| 正安县| 平顶山市| 定结县| 洛川县| 桑日县| 赣州市| 连云港市| 客服| 奉新县| 黄骅市| 西乡县| 杭锦后旗| 电白县| 星座| 军事| 朝阳市| 吉木萨尔县| 遵化市| 嘉义县| 晋中市| 盐源县| 闻喜县| 泸定县| 威远县| 海门市| 沛县| 股票| 邳州市| 虎林市| 汉沽区| 永胜县| 上虞市| 庄河市| 湖南省| 甘南县|