時間序列分析在資料科學領域中扮演著關鍵角色,特別是在預測和模式識別方面。常見的應用包括預測股票價格、銷售額、氣溫變化等。透過分析歷史資料,我們可以建立模型來預測未來的趨勢,並深入瞭解資料的底層結構。在實務應用中,我們會運用各種統計方法和機器學習技術,例如迴歸分析、ARIMA 模型和神經網路,來分析時間序列資料並建立預測模型。同時,我們也需要仔細評估模型的效能,並根據實際情況調整模型引數,以確保預測結果的準確性和可靠性。

18 迴歸分析預測

在進行預測時,瞭解預測模型的效能和各個變數的影響是非常重要的。以下是根據迴歸分析模型產生的預測摘要,包含了各個變數的估計值、信賴區間、標準誤差、T統計量和P值。

預測模型摘要

變數估計值信賴區間下限信賴區間上限標準誤差T統計量P值
截距1957.59681900.19412014.999528.962567.59080.0000
時間(t)-7.1559-8.6013-5.71040.7293-9.81220.0000
時間平方(t^2)0.06070.04940.07200.005710.65980.0000
季節_Aug151.033988.1570213.910731.72454.76080.0000
季節_Dec-17.6880-80.613445.237431.7490-0.55710.5786
季節_Feb-303.8633-365.3528-242.373831.0245-9.79430.0000
季節_Jan-260.6175-322.1002-199.134731.0211-8.40130.0000
季節_Jul100.016537.1469162.886231.72083.15300.0021
季節_Jun-11.6560-74.520551.208531.7182-0.36750.7140
季節_Mar-0.6025-62.101960.896831.0294-0.01940.9845
季節_May33.1791-29.682396.040531.71671.04610.2978
季節_Nov-54.9463-117.85657.963931.7413-1.73110.0863
季節_Oct-46.0138-108.910916.883331.7347-1.45000.1499
季節_Sep-170.3013-233.1872-107.415331.7291-5.36740.0000

訓練集預測摘要

指標
SSE(誤差平方和)548221.9353
ESM(誤差平方平均)9880.7544
ESMR(誤差平方平均根)4167.66
DAM(絕對誤差平均)9059.15
R(相關係數)6428.02

驗證集預測摘要

指標
SSE(誤差平方和)8094.7845
ESM(誤差平方平均)6367.5843
ESMR(誤差平方平均根)7052.351

內容解密:

上述表格展示了迴歸分析模型的預測結果,包括各個變數的估計值、信賴區間、標準誤差、T統計量和P值。這些指標幫助我們瞭解模型的效能和各個變數的影響。訓練集和驗證集的預測摘要提供了模型在不同資料集上的表現,包括誤差平方和、誤差平方平均、誤差平方平均根和相關係數等指標。

圖表翻譯:

圖表解釋:

此流程圖展示了從開始到輸出結果的整個過程。首先,模型在訓練集上進行預測,然後在驗證集上進行預測。接著,計算相關指標以評估模型的效能。最後,輸出結果以供分析和評估。

公共交通乘客資料分析

時間序列分析

在進行公共交通乘客資料分析時,瞭解時間序列的變化是非常重要的。時間序列分析可以幫助我們識別出乘客資料中的趨勢、季節性和週期性變化。

資料收集

下表顯示了從1991年1月到2003年10月的公共交通乘客資料:

時間乘客數
1991年1月1300
1991年10月1400
1992年7月1500
1993年4月1600
1994年1月1700
1994年10月1800
1995年7月1900
1996年4月2000
1997年1月2100
1997年10月2200
1998年7月2300

資料分析

透過分析上述資料,可以發現乘客數呈現出一定的趨勢和季節性變化。例如,從1991年1月到1994年1月,乘客數呈現出逐漸增加的趨勢。同時,夏季和冬季的乘客數也呈現出一定的季節性變化。

內容解密:

上述資料可以使用時間序列分析方法進行分析,例如使用ARIMA模型或季節性分解等方法。這些方法可以幫助我們更好地理解乘客資料中的趨勢和季節性變化。

圖表翻譯:

上述流程圖顯示了公共交通乘客資料分析的流程。首先,收集相關資料;然後,進行時間序列分析;接下來,進行趨勢分析和季節性分析;最後,建立預測模型。

時序預測模型評估

在進行時序預測時,瞭解模型的效能至關重要。以下是使用實際資料和預測資料對模型進行評估的方法。

訓練集和驗證集

  • 訓練集(Training):用於訓練模型的資料集。在這個階段,模型學習資料中的模式和趨勢,以最佳化其引數。
  • 驗證集(Validation):用於評估訓練後模型的效能的資料集。這有助於我們瞭解模型在未見資料上的泛化能力。

殘差分析

  • 殘差(Residuals):實際值與預測值之間的差異。殘差分析是評估模型效能的一種重要方法,透過觀察殘差的分佈,可以判斷模型是否存在系統性偏差或誤差。

時序圖

下面的圖表展示了實際值和預測值隨時間的變化,以及相應的殘差圖。

實際值與預測值對比

時間實際值(Training)預測值(Training)實際值(Validation)預測值(Validation)
Jan-91-100-90-120-110
Oct-91-80-70-100-90
Jul-92-60-50-80-70

殘差圖

圖表翻譯:

上述流程圖描述了從實際值到預測值,再到殘差,最後到殘差分析和模型評估的過程。這個過程幫助我們瞭解模型的準確性和在不同情況下的泛化能力。

時序資料分析:自我相關性與ARIMA模型

在時間序列預測中,線性迴歸可以用於捕捉趨勢和季節性模式。但是,普通的迴歸模型並不考慮觀察值之間的相依性,而這種相依性在時間序列資料中往往很重要。時間序列資料中,鄰近時期的觀察值往往具有相關性,這種相關性被稱為自我相關性(autocorrelation)。瞭解自我相關性的強度和方向可以幫助我們改善預測。

計算自我相關性

自我相關性是指時間序列在不同時期之間的相關性。為了計算自我相關性,我們需要計算原始時間序列與其滯後版本之間的相關性。滯後版本是指原始時間序列向前移動了一個或多個時期。例如,滯後1個時期的系列是原始系列向前移動一個時期,滯後2個時期的系列是原始系列向前移動兩個時期,以此類別推。

例子:Amtrak乘客資料

讓我們以Amtrak乘客資料為例。表18.3顯示了Amtrak乘客資料的前24個月,以及其滯後1個時期和滯後2個時期的系列。透過計算原始系列與滯後1個時期系列之間的相關性(例如使用Excel中的CORREL函式),我們可以得到滯後1個時期的自我相關性為0.08。注意,雖然原始系列有24個時期,但滯後1個時期的自我相關性只根據23對觀察值(因為滯後1個時期的系列沒有第一個月的值)。

自我相關性圖

我們可以使用ASDM的ACF(自我相關性)工具來直接計算不同滯後時期的自我相關性。例如,圖18.9顯示了Amtrak乘客資料的自我相關性輸出。透過選擇“Plot ACF”選項,我們可以顯示不同滯後時期的自我相關性條形圖。ASDM會自動計算和繪製上下置信界限,建立一個95%的置信區間。

ARIMA模型

ARIMA(AutoRegressive Integrated Moving Average)模型是一種常用的時間序列預測模型,它結合了自我相關性和移動平均的概念。ARIMA模型可以用於捕捉時間序列中的趨勢、季節性和自我相關性模式。透過選擇適當的模型引數,ARIMA模型可以提供準確的預測結果。

內容解密:

  • 自我相關性是時間序列中不同時期之間的相關性。
  • 滯後版本是指原始時間序列向前移動了一個或多個時期。
  • 透過計算原始系列與滯後版本之間的相關性,可以得到自我相關性。
  • ARIMA模型結合了自我相關性和移動平均的概念,可以用於捕捉時間序列中的趨勢、季節性和自我相關性模式。

圖表翻譯:

圖18.9顯示了Amtrak乘客資料的自我相關性輸出。透過選擇“Plot ACF”選項,可以顯示不同滯後時期的自我相關性條形圖。ASDM會自動計算和繪製上下置信界限,建立一個95%的置信區間。這個圖表可以幫助我們瞭解時間序列中的自我相關性模式,並選擇適當的ARIMA模型引數以進行預測。

基礎神經網路模型的建立

在人工智慧領域中,神經網路模型是一種常見的應用。以下是建立基礎神經網路模型的步驟。

步驟1:定義問題和收集資料

首先,我們需要定義問題和收集相關資料。在這個例子中,我們假設我們有了一組資料,包含了11個輸入變數和1個輸出變數。

步驟2:前處理資料

接下來,我們需要對資料進行前處理。這包括了資料的清理、轉換和標準化。在這個例子中,我們假設資料已經被清理和轉換為適合的格式。

步驟3:建立神經網路模型

現在,我們可以開始建立神經網路模型了。以下是使用Python和TensorFlow建立基礎神經網路模型的範例:

import tensorflow as tf
from tensorflow import keras

# 定義模型架構
model = keras.Sequential([
    keras.layers.Dense(64, activation='relu', input_shape=(11,)),
    keras.layers.Dense(32, activation='relu'),
    keras.layers.Dense(1)
])

# 編譯模型
model.compile(optimizer='adam', loss='mean_squared_error')

# 輸出模型摘要
print(model.summary())

步驟4:訓練模型

接下來,我們需要訓練模型。以下是使用Python和TensorFlow訓練模型的範例:

# 定義訓練資料
X_train = [...]
y_train = [...]

# 訓練模型
model.fit(X_train, y_train, epochs=100, batch_size=32)

步驟5:評估模型

最後,我們需要評估模型的效能。以下是使用Python和TensorFlow評估模型的範例:

# 定義測試資料
X_test = [...]
y_test = [...]

# 評估模型
mse = model.evaluate(X_test, y_test)
print(f'MSE: {mse:.2f}')

內容解密:

在上面的範例中,我們建立了一個基礎神經網路模型,包含了三層:輸入層、隱藏層和輸出層。輸入層有11個神經元,隱藏層有64個神經元,輸出層有1個神經元。 chúng tôi 使用了ReLU啟用函式和均方誤差損失函式。

在訓練模型時,我們使用了Adam最佳化器和均方誤差損失函式。 chúng tôi 訓練了100個epoch,batch size為32。

在評估模型時,我們使用了均方誤差(MSE)作為評估指標。

圖表翻譯:

以下是使用Plantuml繪製的神經網路模型圖表:

圖表翻譯:

在上面的圖表中,我們可以看到神經網路模型的架構。輸入層有11個神經元,隱藏層有64個神經元,輸出層有1個神經元。 chúng tôi 使用了ReLU啟用函式和均方誤差損失函式。

注意:上面的範例只是基礎神經網路模型的簡單示範,在實際應用中可能需要根據具體問題和資料進行調整和最佳化。

時序資料分析:自相關與延遲的應用

在時間序列分析中,瞭解資料之間的相關性和延遲對於預測和模型建立至關重要。這裡,我們將探討自相關(Autocorrelation)和延遲(Lag)的概念,並展示如何應用這些技術來分析時間序列資料。

自相關分析

自相關分析是一種統計方法,用於衡量時間序列資料在不同時間點之間的相關性。它可以幫助我們瞭解資料的週期性、趨勢和隨機性。自相關係數(Autocorrelation Coefficient)是用於衡量自相關性的指標,其值範圍從-1到1,其中1表示完全正相關,-1表示完全負相關,0表示無相關性。

自相關圖

自相關圖是一種視覺化工具,用於展示時間序列資料的自相關性。它可以幫助我們快速地瞭解資料的自相關結構。下面是自相關圖的範例:

自相關係數計算

自相關係數可以使用以下公式計算:

import numpy as np

def calculate_autocorrelation(data, lag):
    mean = np.mean(data)
    variance = np.var(data)
    autocorrelation = np.sum((data[:-lag] - mean) * (data[lag:] - mean)) / (len(data) * variance)
    return autocorrelation

延遲分析

延遲分析是一種統計方法,用於衡量時間序列資料在不同時間點之間的延遲關係。它可以幫助我們瞭解資料的因果關係和預測模型的建立。

延遲圖

延遲圖是一種視覺化工具,用於展示時間序列資料的延遲關係。它可以幫助我們快速地瞭解資料的延遲結構。下面是延遲圖的範例:

延遲係數計算

延遲係數可以使用以下公式計算:

import numpy as np

def calculate_lag(data, lag):
    mean = np.mean(data)
    variance = np.var(data)
    lag_coefficient = np.sum((data[:-lag] - mean) * (data[lag:] - mean)) / (len(data) * variance)
    return lag_coefficient
圖表翻譯:

上述的Plantuml圖表展示了時間序列資料分析的流程,從資料收集到自相關和延遲分析,最終到預測模型的建立。這些圖表可以幫助我們快速地瞭解時間序列分析的流程和自相關、延遲分析的應用。

時序資料分析:自我相關係數與ARIMA模型

在時間序列分析中,瞭解資料的自我相關係數(autocorrelation)行為對於識別模式和選擇適合的模型至關重要。自我相關係數分析可以幫助我們發現時間序列中的週期性、趨勢和其他模式。

自我相關係數的三種典型行為

  1. 強自我相關係數(正或負)在lag klarger than 1及其倍數(2k, 3k,…):這通常反映了一個週期性的模式。例如,在月度資料中,強正lag-12自我相關係數會反映出年度季節性(每年同一月份的值之間具有正相關性)。

  2. 正lag-1自我相關係數(粘性):描述了一個系列中連續值一般朝同一方向移動的現象。在強線性趨勢存在的情況下,我們預計會看到強正lag-1自我相關係數。

  3. 負lag-1自我相關係數:反映了系列中的擺動,即高值緊接著低值,反之亦然。

檢查自我相關係數以檢測季節性模式

透過檢查時間序列的自我相關係數,可以幫助我們檢測季節性模式。例如,圖18.9顯示,最強的自我相關係數出現在lag 6,並且是負的,這指示了每半年一次的模式,夏季乘客量高,冬季乘客量低。檢視時間序列圖可以確認這種高夏低冬的模式。

除了檢視原始系列的自我相關係數外,檢視殘差系列的自我相關係數也很有用。例如,在適配一個迴歸模型(或使用任何其他預測方法)後,我們可以檢查殘差系列的自我相關係數。如果我們已經充分地對季節性模式進行了建模,那麼殘差系列就不應該在季節的lag處顯示出自我相關係數。圖18.10顯示了來自於圖18.7中具有季節性和二次趨勢的迴歸模型的殘差的自我相關係數。

自我相關係數表

Record IDACF
01
10.6040
20.4493
30.3372
40.2534
50.2155
60.1586
70.1769
80.1752
90.1706
100.1068
110.1196

這些資訊對於選擇合適的ARIMA模型和評估時間序列中潛在的季節性和趨勢模式至關重要。

圖表翻譯:

這個流程圖展示瞭如何使用自我相關係數分析來檢測時間序列中的季節性模式,並如何根據這些資訊選擇合適的ARIMA模型以進行預測。

時序分析與自相關係數

在時間序列分析中,瞭解資料的自相關性質是非常重要的。自相關係數(Autocorrelation)是一種統計工具,用於衡量時間序列中不同時間間隔的相關性。它可以幫助我們判斷時間序列是否具有周期性、趨勢或隨機性。

自相關係數的計算

自相關係數的計算通常根據時間序列的lag值。Lag值代表了兩個時間點之間的間隔。例如,若我們想要計算一組資料在1個時間單位之間的自相關係數,我們就會將原始資料與其1個時間單位後的資料進行比較。

時序分析的重要性

時序分析在許多領域都具有重要意義,例如金融、氣象學、生物學等。透過對時間序列的分析,可以預測未來的趨勢、識別週期性模式以及檢測異常值。

自相關函式圖(ACF)和偏自相關函式圖(PACF)

在時序分析中,常用兩種圖表來視覺化自相關係數:自相關函式圖(ACF)和偏自相關函式圖(PACF)。ACF圖表現了原始時間序列與其lag值之間的相關性,而PACF圖則表現了去除其他lag值影響後的相關性。

內容解密:

圖表翻譯:

上述Plantuml圖表描述瞭如何從原始時間序列計算自相關係數和偏自相關係數,並利用ACF和PACF圖來視覺化結果。這有助於我們更好地理解時間序列的特性和行為。

實際應用

在實際應用中,時序分析可以用於預測股票價格、氣溫、銷售額等。透過對歷史資料進行分析,可以建立模型預測未來的趨勢和變化。

隨著大資料和人工智慧技術的發展,時序分析將會更加深入地應用於各個領域。未來的研究方向可能包括使用機器學習演算法進行時序預測、開發更高效的演算法等。

時序分析與預測模型

在時間序列分析中,瞭解資料的自相關性(autocorrelation)對於建立精確的預測模型至關重要。自相關性是指時間序列中不同時間點之間的相關性。在本文中,我們將探討如何利用自相關性改善預測,並介紹兩種方法:一是使用自迴歸(autoregressive, AR)模型,另一是構建二級預測模型。

自迴歸模型

自迴歸模型是一種直接考慮自相關性的預測模型。它們與線性迴歸模型類別似,但預測變數是時間序列的過去值。例如,二階自迴歸模型(AR(2))可以表示為:

Y_t = β_0 + β_1 * Y_(t-1) + β_2 * Y_(t-2) + ε

這裡,Y_t 是時間 t 的值,β_0、β_1 和 β_2 是係數,Y_(t-1) 和 Y_(t-2) 分別是時間 t-1 和 t-2 的值,ε 是誤差項。

估計這種模型大致等同於使用時間序列作為輸出變數,並使用過去的時間序列作為預測變數進行線性迴歸。但是,使用專門的 ARIMA 估計方法(如 ASDM 的時間序列 > ARIMA 功能表)比使用普通線性迴歸估計方法能夠產生更準確的結果。

二級預測模型

另一個利用自相關性的方法是構建二級預測模型。這涉及以下步驟:

  1. 使用任何預測方法生成 k 步預測(F_t+k)。
  2. 對殘差進行自相關性分析。
  3. 如果發現強烈的自相關性,則構建一個二級預測模型來預測殘差。

這種方法可以顯著改善短期預測。透過對殘差進行預測,可以捕捉原始時間序列中未被原始預測模型捕捉到的模式和結構。

內容解密

在上述內容中,我們探討瞭如何利用自相關性改善時間序列預測。首先,我們介紹了自迴歸模型,它們直接考慮了時間序列的自相關性。然後,我們討論了構建二級預測模型的方法,這涉及對殘差進行自相關性分析並建立一個預測模型來預測殘差。這兩種方法都可以用於改善預測結果,但需要合理選擇和應用。

圖表翻譯

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title 時序資料分析與預測模型

package "時間序列分析" {
    component [趨勢分析] as trend
    component [季節性分解] as seasonal
    component [自相關分析 ACF] as acf
    component [延遲分析] as lag
}

package "預測模型" {
    component [迴歸分析] as regression
    component [ARIMA 模型] as arima
    component [神經網路 RNN] as rnn
    component [指數平滑] as ets
}

package "模型評估" {
    component [SSE 誤差平方和] as sse
    component [RMSE 均方根誤差] as rmse
    component [MAE 平均絕對誤差] as mae
    component [R² 決定係數] as r2
}

package "應用場景" {
    component [股價預測] as stock
    component [銷售預測] as sales
    component [氣溫預測] as weather
}

trend --> seasonal : 分解
seasonal --> acf : 相關性
acf --> lag : 延遲效應

regression --> sse : 評估
arima --> rmse
rnn --> mae

sse --> r2 : 彙總
rmse --> r2

stock --> arima : 應用
sales --> regression
weather --> rnn

note right of acf
  自相關分析:
  - 識別週期性
  - 決定 p, q 參數
  - 白噪音檢定
end note

note right of regression
  迴歸模型:
  - 截距、時間 t
  - 時間平方 t²
  - 季節虛擬變數
end note

@enduml

在這個流程圖中,我們展示了時間序列分析的流程。首先,進行時間序列分析,然後進行自相關性分析。如果發現強烈的自相關性,則可以使用自迴歸模型或構建二級預測模型來改善預測結果。最終,得到預測結果。

從技術架構視角來看,時間序列分析和預測模型的建立需要整合多種技術方法。本文討論了多種時序資料分析技術,包含迴歸分析、ARIMA模型以及神經網路,並闡述瞭如何評估模型效能以及利用自相關性和延遲等概念進行分析和預測。透過比較不同模型的優缺點,例如線性迴歸未能考慮觀察值之間的相依性,而ARIMA模型則有效地整合了自我相關性,我們可以更有效地選擇合適的模型。此外,文章也提到了殘差分析和二級預測模型等進階技術,展現瞭如何利用模型的殘差資訊進一步提升預測精確度。目前的主要挑戰在於如何有效地處理資料中的噪音和異常值,以及如何針對不同型別的時間序列資料選擇最佳的模型引數。玄貓認為,未來發展方向將集中於整合機器學習技術,例如深度學習模型,以自動化地學習時間序列中的複雜模式,並提高預測的準確性和效率。對於企業而言,應用這些技術可以最佳化資源分配、預測市場趨勢,並做出更明智的商業決策。