国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 用Python檢驗時間序列的平穩性

用Python檢驗時間序列的平穩性

2020-10-28 00:08Python中文社區 Python

本文比較詳細地介紹了判斷時間序列平穩性的3種方法,這3種方法在實際應用中是經常用到的,當然判斷平穩性的方法還有很多種,大家如有需要也可以自行查找相關資料。

用Python檢驗時間序列的平穩性

在做時間序列分析時,我們經常要對時間序列進行平穩性檢驗,而我們常用的軟件是SPSS或SAS,但實際上python也可以用來做平穩性檢驗,而且效果也非常好,今天筆者就講解一下如何用python來做時間序列的平穩性檢驗。

首先我們還是來簡單介紹一下平穩性檢驗的相關概念。

用Python檢驗時間序列的平穩性

圖1. 平穩性序列的相關公式

時間序列的平穩性可分為嚴平穩和寬平穩。設{Xt}是一時間序列,對任意正整數m,任取t1、t2、t3、...、tm∈T,對任意整數τ,假如滿足圖1中式(1),則稱時間序列{Xt}是嚴平穩時間序列。而寬平穩的定義為,如果{Xt}滿足以下三個條件:

(1)任取t∈T,有E(Xt·Xt)<∞;

(2)任取t∈T,有E Xt =μ,μ為常數;

(3)任取t,s,k∈T,且k+s-t∈T,有γ(t, s)=γ(k, k+s-t)

則稱{Xt}為寬平穩時間序列。

因為實際應用中我們很難獲得隨機序列的分布函數,所以嚴平穩用得極少,主要是使用寬平穩時間序列。

在了解了平穩性的基本概念之后,我們再來說一下平穩時間序列的意義。平穩時間序列的分析也遵循數理統計學的基本原理,都是利用樣本信息來推測總體信息。這就要求分析的隨機變量越少越好(也就是數據的維度越小越好),而每個變量獲得樣本信息越多越好(也就是數據的觀測值越大越好),因為隨機變量越少,分析過程越簡單,樣本容量越大,分析的結果越可靠。但時間序列的數據結構有其特殊性,它在任意時刻t的序列值Xt都是一個隨機變量,而且由于時間的不可重復性,該變量在任意一個時刻只能獲得唯一的樣本觀測值。由于樣本信息太少,如果沒有其他的輔助信息,這種數據結構通常是沒有辦法分析的,但序列平穩性就可以有效解決這個問題。在平穩序列中,序列的均值等于常數就意味著原本含有可列多個隨機變量的均值序列{μt, t∈T}變成了一個常數序列{μ, t∈T},原本每個隨機變量的均值μt只能依靠唯一的一個樣本觀察值xt去估計,現在由于μt=μ,于是每一個樣本觀察值xt,都變成了常數均值的樣本觀察值,如圖1中式(2)所示。這就極大減少了隨機變量的個數,并增加了待估參數的樣本容量,這也就降低了時序分析的難度。

在了解了時間序列的平穩性之后,我們再來詳細講解一下如何用python來進行檢驗。

用python來進行平穩性檢驗主要有3種方法,分別是時序圖檢驗、自相關圖檢驗以及構造統計量進行檢驗。

首先來說時序圖檢驗,時序圖就是普通的時間序列圖,即以時間為橫軸,觀察值為縱軸進行檢驗。這里筆者給出3個例子,因為時序圖過于簡單,所以筆者在這里直接用Excel作時序圖,用python也可以,不過沒有Excel簡單。第一個例子是1964-1999年中國紗年產量時間序列(該數據來自北京統計局),其數據如圖2所示,序列圖如圖3所示。圖3中明顯可以看出,中國紗年產量序列有明顯的遞增趨勢,所以它一定不是平穩序列。

用Python檢驗時間序列的平穩性

圖2. 紗產量部分數據截圖

用Python檢驗時間序列的平穩性

圖3. 紗產量時序圖

第二個例子是1962年1月至1975年12月平均每頭奶牛月產奶量時間序列(數據來自網站http://census-info.us),其數據如圖4所示,序列圖如圖5所示。從圖5中可以看出,平均每頭奶牛的月產奶量以年為周期呈規則的周期性,此外還有明顯的逐年遞增趨勢,所以該序列也一定不是平穩序列。

用Python檢驗時間序列的平穩性

圖4. 奶牛產量部分數據截圖

用Python檢驗時間序列的平穩性

圖5. 奶牛產量時序圖

第三個例子是1949年至1998年北京市每年最高氣溫序列(數據來自北京市統計局),其數據如圖6所示,序列圖如圖7所示。從圖7中可以看出,北京市每年的最高氣溫始終圍繞在37度附近隨機波動,沒有明顯趨勢或周期,基本可以視為平穩序列,但我們還需要利用自相關圖進一步驗證。

用Python檢驗時間序列的平穩性

圖6. 北京最高氣溫部分數據截圖

用Python檢驗時間序列的平穩性

圖7. 北京最高氣溫時序圖

從上面的例子可以看出,時序圖只能粗略來判斷一個時間序列是否為平穩序列,我們可以用自相關圖來更進一步檢驗。要畫自相關圖,我們就要用到python,下面是相關代碼。

import pandas as pd  

import matplotlib.pyplot as plt  

from statsmodels.graphics.tsaplots import plot_acf  

temperature = r'C:\Users\北京氣溫.xls'  

milk = r'C:\Users\奶牛產量.xlsx'  

yarn = r'C:\Users\紗產量.xls'  

data_tem = pd.read_excel(temperature, parse_date=True 

data_milk = pd.read_excel(milk, parse_date=True 

data_yarn = pd.read_excel(yarn, parse_date=True 

plt.rcParams.update({'figure.figsize':(8,6), 'figure.dpi':100}) #設置圖片大小  

plot_acf(data_tem.Tem) #生成自相關圖  

plot_acf(data_milk.milk_yield)  

plot_acf(data_yarn.yarn_yield)  

plt.show() 

畫自相關圖用到的是statsmodels中的plot_acf方法,這個方法很簡單,只需要直接輸入數據即可,不過數據要是一維的,生成的3張圖如圖8、圖9和圖10所示。

用Python檢驗時間序列的平穩性

圖8. 紗產量自相關圖

用Python檢驗時間序列的平穩性

圖9. 奶牛產量自相關圖

用Python檢驗時間序列的平穩性

圖10. 北京最高氣溫自相關圖

平穩序列通常具有短期相關性,即隨著延遲期數k的增加,平穩序列的自相關系數會很快地衰減向零,而非平穩序列的自相關系數的衰減速度會比較慢,這就是我們利用自相關圖判斷平穩性的標準。我們就來看下這3張自相關圖,圖8是紗年產量的自相關圖,其橫軸表示延遲期數,縱軸表示自相關系數,從圖中可以看出自相關系數衰減到零的速度比較緩慢,在很長的延遲期內,自相關系數一直為正,然后為負,呈現出三角對稱性,這是具有單調趨勢的非平穩序列的一種典型的自相關圖形式。再來看看圖9,這是每頭奶牛的月產奶量的自相關圖,圖中自相關系數長期位于零軸一邊,這是具有單調趨勢序列的典型特征,同時還呈現出明顯的正弦波動規律,這是具有周期變化規律的非平穩序列的典型特征。最后再來看下圖10,這是北京每年最高氣溫的自相關圖,圖中顯示該序列的自相關系數一直比較小,可以認為該序列一直在零軸附近波動,這是隨機性較強的平穩序列通常具有的自相關圖。

最后我們再講一下ADF方法。前面兩種方法都是作圖,圖的特點是比較直觀,但不夠精確,而ADF法則是直接通過假設檢驗的方式來驗證平穩性。ADF(全稱Augmented Dickey-Fuller)是一種單位根檢驗方法,單位根檢驗方法比較多,而ADF法是比較常用的一種,其和普通的假設檢驗沒有太大區別,都是列出原假設和備擇假設。ADF的原假設(H0)和備擇假設(H1)如下。

H0:具有單位根,屬于非平穩序列。

H1:沒有單位根,屬于平穩序列,說明這個序列不具有時間依賴型結構。

下面我們就用python代碼來解釋一下ADF的用法。

from statsmodels.tsa.stattools import adfuller  

yarn_result = adfuller(data_yarn.yarn_yield) #生成adf檢驗結果  

milk_result = adfuller(data_milk.milk_yield)  

tem_result = adfuller(data_tem.Tem)  

print('The ADF Statistic of yarn yield: %f' % yarn_result[0])  

print('The p value of yarn yield: %f' % yarn_result[1])  

print('The ADF Statistic of milk yield: %f' % milk_result[0])  

print('The p value of milk yield: %f' % milk_result[1])  

print('The ADF Statistic of Beijing temperature: %f' % tem_result[0])  

print('The p value of Beijing temperature: %f' % tem_result[1]) 

這里我們用的是statsmodels中的adfuller方法,其使用也比較簡單,直接輸入數據即可,但其返回值較多,返回的結果中共有7個值,分別是adf、pvalue、usedlag、nobs、critical values、icbest和resstore,這7個值的意義大家可以參考官方文檔,我們這里用到的是前兩個,即adf和pvalue,adf就是ADF方法的檢驗結果,而pvalue就是我們常用的p值。我們的得到結果如圖11所示。

用Python檢驗時間序列的平穩性

圖11. ADF檢驗結果

在圖11中,我們可以看到,紗產量、奶牛產量和北京氣溫的adf值分別是-0.016384、-1.303812和-8.294675,這個值理論上越負越能拒絕原假設,但我們在這里不用adf來判斷,而是用p值。這3個p值分別是0.957156、0.627427和0.000000,以常用的判斷標準值0.05作為參考,前兩個p值都遠大于0.05,說明其是支持原假設的,說明紗產量和奶牛產量都是非平穩序列,而北京氣溫序列的p值為零,說明是拒絕原假設,表明該序列是一個平穩序列。我們可以看到,利用adf法和前面兩種方法得到的結果是一致的。

本文比較詳細地介紹了判斷時間序列平穩性的3種方法,這3種方法在實際應用中是經常用到的,當然判斷平穩性的方法還有很多種,大家如有需要也可以自行查找相關資料。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 另类sb东北妇女av | 国产精品一区二区视频 | 91中文字幕在线 | 亚洲电影天堂在线观看 | 黄色a视频在线观看 | 亚洲第一成人久久网站 | 国产目拍亚洲精品99久久精品 | 国产精品美女久久久免费 | 欧美午夜视频 | 欧美精品一区三区 | 在线观看国产一区二区 | 国产一区二区影院 | 可以看的毛片网站 | 国产精彩视频 | 一区二区在线不卡 | 精品国产综合 | 国产精品日韩三级 | 中文字幕亚洲一区二区三区 | 国产精品女同一区二区免费站 | 伊人久久综合精品一区二区三区 | 精品久久99 | 一区二区三区四区精品 | 亚洲aⅴ天堂av在线电影软件 | 精品亚洲一区二区三区 | 亚洲精品在线视频 | 国产精品第一国产精品 | 成人午夜在线 | 亚洲精品一区二区三区在线 | 久在线 | 成人在线一区二区三区 | 国产在线资源 | 欧美亚洲在线 | 亚洲欧美在线观看 | 中文字幕日韩一区二区不卡 | 久久精品噜噜噜成人av农村 | 国内精品久久久久久影视8 有码在线 | 国产中文字幕亚洲 | 91免费在线播放 | 久久国| 亚洲欧美另类久久久精品2019 | 亚洲精品一区二区网址 |