成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

時間序列分解:將時間序列分解成基本的構建塊

開發 前端
大多數時間序列可以分解為不同的組件,在本文中,我將討論這些不同的組件是什么,如何獲取它們以及如何使用 Python 進行時間序列分解。

大多數時間序列可以分解為不同的組件,在本文中,我將討論這些不同的組件是什么,如何獲取它們以及如何使用 Python 進行時間序列分解。

時間序列組成

時間序列是(主要)三個組成部分的組合:趨勢、季節性和殘差/剩余部分。讓我們簡單的解釋這三個組成部分

趨勢:這是該序列的整體運動。它可能會持續增加、也可能持續減少,或者是波動的。

季節性:系列中的任何常規季節性模式。比如,夏季冰淇淋的銷量通常高于冬季。

殘差:這是我們考慮到趨勢和季節性后剩下的部分。它也可以被認為只是統計噪聲,或者是臨時性事件的影響,這個殘差量也有一個單獨的周期分量,但它通常被歸入趨勢分量。

加法模型與乘法模型

這些組件的組合方式取決于時間序列的性質。對于加法模型:

圖片

對于乘法模型:

圖片

其中 Y 是序列,T 是趨勢,S 是季節性,R 是殘差分量。

當序列變化的大小尺度一致的時候,加法模型是最合適的。而當序列的波動處于相對和比例范圍內時乘法模型是比較合適的。

例如,如果夏季冰淇淋的銷量每年高出 1,000 個,則該模型是加法的。如果每年夏天銷售額持續增長 20%,但絕對銷售額在變化,則該模型是乘法的。稍后我們將討論一個示例,該示例可以使該理論更加具體。

為了計算和可視化的漸變,可以通過對數變換或Box-Cox變換將乘法模型轉換為加法模型:

圖片

分解是如何工作的

有多種算法和方法可以將時間序列分解為三個分量。以下的經典方法,經常會使用并且非常直觀。

  • 使用移動/滾動平均值計算趨勢分量 T。
  • 對序列進行去趨勢處理,Y-T 用于加法模型,Y/T 用于乘法模型。
  • 通過取每個季節的去趨勢序列的平均值來計算季節分量 S。
  • 殘差分量 R 的計算公式為:對于加法模型R = Y-T-R,對于乘法模型R = Y/(TR)。

還有其他幾種可用于分解的方法,例如 STL、X11 和 SEATS。這些是先進的方法,是對經典方法的基本方法的補充,并改進了它的缺點。如果有想了解這些最新方法的可以留言,我們單開一篇文章介紹。

Python中進行時間序列分解

這里讓我們使用1948年至1961年的美國航空客運量數據集:

#https://www.kaggle.com/datasets/ashfakyeafi/air-passenger-data-for-time-series-analysis

import plotly.express as px
import pandas as pd

# Read in the data
data = pd.read_csv('AirPassengers.csv', index_col=0)
data.index = pd.to_datetime(data.index)

# Plot the data
fig = px.line(data, x=data.index, y='#Passengers',


fig.update_layout(template="simple_white", fnotallow=dict(size=18),


fig.show()

圖片

從圖中我們觀察到趨勢是增加的,每年也有季節性。波動的大小隨著時間的推移而增加,因此我們可以說這是一個乘法模型。

statmodels中包含了seasonal_decomposition函數可以幫我們來分解時間序列,并在我們要在調用函數時指定這是一個“乘法”模型:

from statsmodels.tsa.seasonal import seasonal_decompose
import matplotlib.pyplot as plt

# Plot the decomposition for multiplicative series
data.rename(columns={'#Passengers': 'Multiplicative Decomposition'}, inplace=True)
decomposition_plot_multi = seasonal_decompose(data['Multiplicative Decomposition'],

decomposition_plot_multi.plot()
plt.show()

圖片

從上圖中可以看到,該函數確實成功地捕獲了這三個組成部分。

通過應用Scipy的函數boxcox ,可以使用Box-Cox變換穩定方差,這樣可以將序列轉換為一個加法模型:

# Import packages
from statsmodels.tsa.seasonal import seasonal_decompose
import matplotlib.pyplot as plt
from scipy.stats import boxcox

# Apply boxcox to acquire additive model
data['Additive Decomposition'], lam = boxcox(data['#Passengers'])

# Plot the decomposition for additive series
decomposition_plot_add = seasonal_decompose(data['Additive Decomposition'],

decomposition_plot_add.plot()
plt.show()

圖片

這個函數也很好地捕獲了這三個組件。但是我們看到殘差在早期和后期具有更高的波動性。所以在為這個時間序列構建預測模型時,需要考慮到這一點。

總結

在這篇文章中,我們展示了如何將時間序列分解為三個基本組成部分:趨勢、季節性和殘差。這三個組成部分的組合產生了實際的時間序列,它們的組合可以是加性的也可以是乘性的。有幾種更新技術可以執行分解,如STL, SEAL和X11,但是經典的方法簡單并且直觀。最后通過分解時間序列有助于建立對數據的理解,從而更容易做出未來的預測。

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2025-01-14 14:04:45

2023-05-05 00:19:22

2022-05-12 11:12:46

MongoDB索引元數據

2022-11-14 14:36:59

數據集Python自相關

2023-10-13 15:34:55

時間序列TimesNet

2024-09-09 14:57:31

2021-03-31 11:20:57

PythonADTK異常檢測

2024-06-27 16:38:57

2022-12-15 16:53:55

2024-03-18 00:00:03

時間序列Prompt模型

2024-08-23 13:40:00

AI模型

2024-11-15 15:20:00

模型數據

2017-05-08 14:42:36

2020-10-27 10:13:06

Python時間序列代碼

2024-05-09 16:23:14

2020-09-09 12:33:05

檢測時間卷積網絡TCN

2023-01-05 16:36:55

2022-12-05 16:38:48

Python統計信息預測模型

2020-02-18 16:07:17

物聯網表存儲數據庫

2022-08-16 09:00:00

機器學習人工智能數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久亚洲7777 | 美女久久久久久久 | 91黄色片免费看 | 国产精品一区二区精品 | 一区二区三区中文字幕 | 美女爽到呻吟久久久久 | 成人免费在线网 | 99国产精品99久久久久久 | 国产一区二区精品自拍 | 精品入口麻豆88视频 | 激情五月综合 | 国产成人精品一区二区三区 | 国产精品一区在线观看 | 日韩欧美高清dvd碟片 | 一区二区国产精品 | 欧美韩一区二区 | 午夜视频大全 | 日韩欧美黄色 | 日韩色视频 | 久久久噜噜噜久久中文字幕色伊伊 | 亚洲精品粉嫩美女一区 | 国产精品福利一区二区三区 | 精品国产欧美一区二区三区成人 | 97超碰免费 | 91一区二区三区 | 日韩第1页| 精精精精xxxx免费视频 | 国产精品五区 | 99一级毛片 | 九九视频网 | 精品国产欧美一区二区 | 免费看片国产 | 国产精品不卡视频 | 祝你幸福电影在线观看 | 午夜影院毛片 | 亚洲欧洲成人av每日更新 | 久久精品国产99国产精品 | 欧美又大粗又爽又黄大片视频 | 欧美日韩高清在线观看 | 99视频入口| 欧美aaaaaaaa|