日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
了解隨機(jī)游走模型和移動(dòng)平均過程(Python)

在本文中,我將介紹兩個(gè)能夠?qū)r(shí)間序列進(jìn)行建模的模型:隨機(jī)游走和移動(dòng)平均過程。

隨機(jī)游走模型

隨機(jī)游走模型由以下公式表示:

換句話說,當(dāng)前時(shí)刻t的位置是前一時(shí)刻(t-1)的位置與噪聲(用z表示)之和。這里我們假設(shè)噪聲是正態(tài)分布的(均值為0,方差為1)。

我們從0開始隨機(jī)游走,也就是說,任何時(shí)間點(diǎn)都是該時(shí)間之前所有噪聲的和。數(shù)學(xué)上表示為:

讓我們在Python中模擬隨機(jī)游走。

首先,我們導(dǎo)入所需的Python庫:

 
 
 
 
  1. from statsmodels.graphics.tsaplots import plot_acf 
  2. from statsmodels.tsa.arima_process import ArmaProcess 
  3. from statsmodels.tsa.stattools import acf 
  4. import matplotlib.pyplot as plt 
  5. import numpy as np 
  6.  
  7. %matplotlib inline 

然后,我們生成一個(gè)包含1000個(gè)數(shù)據(jù)點(diǎn)的數(shù)據(jù)集。起點(diǎn)是0,我們將隨機(jī)噪聲添加到上一個(gè)點(diǎn)以生成下一個(gè)點(diǎn):

 
 
 
 
  1. steps = np.random.standard_normal(1000) 
  2. steps[0]=0 
  3. random_walk = np.cumsum(steps) 

繪制數(shù)據(jù)集的Python代碼如下:

 
 
 
 
  1. plt.figure(figsize=[10, 7.5]); # Set dimensions for figure 
  2. plt.plot(random_walk) 
  3. plt.title("Simulated Random Walk") 
  4. plt.show() 

模擬隨機(jī)游走

你的隨機(jī)行走可能與上面的圖不同,因?yàn)樵肼暿请S機(jī)的。

現(xiàn)在,讓我們看看我們的隨機(jī)游走的自相關(guān)圖(或相關(guān)圖):

 
 
 
 
  1. random_walk_acf_coef = acf(random_walk) 
  2. plot_acf(random_walk, lags=20); 

隨機(jī)游走的相關(guān)圖

不管你的隨機(jī)游走看起來像什么,你都應(yīng)該得到一個(gè)非常相似的相關(guān)圖。

現(xiàn)在,一切都指向數(shù)據(jù)集中的趨勢。我們可以改變這種趨勢嗎?答案是肯定的。

讓我們在Python中進(jìn)行驗(yàn)證。

 
 
 
 
  1. random_walk_diff = np.diff(random_walk, n=1) 

然后我們繪制結(jié)果:

 
 
 
 
  1. plt.figure(figsize=[10, 7.5]); # Set dimensions for figure 
  2. plt.plot(random_walk_diff) 
  3. plt.title('Noise') 
  4. plt.show() 

如您所見,上面的圖沒有趨勢,也沒有季節(jié)性,是一個(gè)完全隨機(jī)的過程。

查看相關(guān)圖的python代碼如下:

 
 
 
 
  1. plot_acf(random_walk_diff,lags = 20); 

我們看到這是一個(gè)純隨機(jī)過程的相關(guān)圖,其中自相關(guān)系數(shù)在滯后1處下降。

移動(dòng)平均過程

我們先來直觀了解一下什么是移動(dòng)平均過程。

假設(shè)你把一塊石頭扔進(jìn)一個(gè)池塘里,你要追蹤水面上一滴水的位置。當(dāng)石頭撞擊水面時(shí),會形成波紋,所以我們要跟蹤的水滴會上下移動(dòng)。讓我們假設(shè)波紋只持續(xù)兩秒鐘,在這兩秒鐘之后,水面就會完全變平。

我們的水滴位置可以表示為:

上面的方程表示,X在t時(shí)刻的位置取決于t時(shí)刻的噪聲,加上t-1時(shí)刻的噪聲(有一定的權(quán)重THETA),加上t-2時(shí)刻的噪聲(有一定的權(quán)值)。

這被稱為二階移動(dòng)平均過程,可以表示為MA(2)。

通用表示法是MA(q)。在上面的示例中,q = 2。

讓我們在Python中模擬此過程。具體來說,我們將模擬以下過程:

這是一個(gè)二階移動(dòng)平均過程,我們指定了權(quán)重。您可以隨意更改權(quán)重,并對參數(shù)進(jìn)行試驗(yàn)。

我們從指定滯后開始,我們用的是2。

 
 
 
 
  1. ar2 = np.array([2]) 

然后,我們指定權(quán)重,權(quán)重為[1、0.9、0.3]。

 
 
 
 
  1. ma2 = np.array([1, 0.9, 0.3]) 

最后,我們模擬該過程并生成1000個(gè)數(shù)據(jù)點(diǎn):

 
 
 
 
  1. MA2_process = ArmaProcess(ar2, ma2).generate_sample(nsample=1000) 

現(xiàn)在,讓我們可視化該過程及其相關(guān)圖:

 
 
 
 
  1. plt.figure(figsize=[10, 7.5]); # Set dimensions for figure 
  2. plt.plot(MA2_process) 
  3. plt.title('Moving Average Process of Order 2') 
  4. plt.show() 
  5.  
  6. plot_acf(MA2_process, lags=20); 

由于噪聲是隨機(jī)產(chǎn)生的,因此您的圖形可能與我的不同。但相關(guān)圖應(yīng)與下圖類似:

正如您所注意到的,相關(guān)性在滯后2之前是顯著的。這很有意義,因?yàn)槲覀冎付藴鬄?。

這意味著您可以使用相關(guān)圖來推斷時(shí)間序列的滯后。如果您看到滯后q之后相關(guān)性并不顯著,那么您可以將時(shí)間序列建模為MA(q)過程。

最后

通過本文,您了解了隨機(jī)游走是什么以及如何對其進(jìn)行模擬。此外,您還學(xué)習(xí)了移動(dòng)平均過程,并了解了如何對其建模。


當(dāng)前文章:了解隨機(jī)游走模型和移動(dòng)平均過程(Python)
文章源于:http://www.dlmjj.cn/article/cohcghh.html