[时间序列分析]--平稳性,白噪声的检验
使用mathematica來實(shí)現(xiàn)。
做時間序列分析,之前需要做兩個準(zhǔn)備工作,即檢查序列是否是平穩(wěn)的,如果是平穩(wěn)的,還要檢查是否是白噪聲。我們一個一個來講。
使用數(shù)據(jù)
我們用一個例子來說明:數(shù)據(jù)集是49 - 98 北京最高氣溫,數(shù)據(jù)如下:
{{1949., 38.8}, {1950., 35.6}, {1951., 38.3}, {1952., 39.6}, {1953.,
37.}, {1954., 33.4}, {1955., 39.6}, {1956., 34.6}, {1957.,
36.2}, {1958., 37.6}, {1959., 36.8}, {1960., 38.1}, {1961.,
40.6}, {1962., 37.1}, {1963., 39.}, {1964., 37.5}, {1965.,
38.5}, {1966., 37.5}, {1967., 35.8}, {1968., 40.1}, {1969.,
35.9}, {1970., 35.3}, {1971., 35.2}, {1972., 39.5}, {1973.,
37.5}, {1974., 35.8}, {1975., 38.4}, {1976., 35.}, {1977.,
34.1}, {1978., 37.5}, {1979., 35.9}, {1980., 35.1}, {1981.,
38.1}, {1982., 37.3}, {1983., 37.2}, {1984., 36.1}, {1985.,
35.1}, {1986., 38.5}, {1987., 36.1}, {1988., 38.1}, {1989.,
35.8}, {1990., 37.5}, {1991., 35.7}, {1992., 37.5}, {1993.,
35.8}, {1994., 37.2}, {1995., 35.}, {1996., 36.}, {1997.,
38.2}, {1998., 37.2}}
一.
畫出散點(diǎn)圖(時序圖)
首先我們畫出散點(diǎn)圖,先從總體上看一下數(shù)據(jù)
ListLinePlot[data, PlotStyle -> Dashed, PlotMarkers -> {"o", 8}]
二.
平穩(wěn)性的檢驗(yàn)
方法:平穩(wěn)性檢驗(yàn)一般可以從時序圖上看或者通過相關(guān)性的圖中看出。
我們這里講一下相關(guān)圖的方法。
原理:平穩(wěn)序列通常具有短期相關(guān)性。該性質(zhì)用自相關(guān)系數(shù)來描述就是隨著延遲期數(shù)的增加,平穩(wěn)序列的自相關(guān)系數(shù)會很快的衰減到0
特別,關(guān)于延遲的相關(guān)系數(shù)的計(jì)算公式如下
在mathematica里使用的函數(shù)是CorrelationFunction[],具體代碼如下
ListPlot[
CorrelationFunction[Table[x[i], {i, 1, 100}], {20}],
PlotMarkers -> {Automatic, Medium}, Filling -> Axis,
FillingStyle -> Directive[Thickness[.01], Green, Dashed],
PlotRange -> All
]
可以看到相關(guān)系數(shù)迅速衰減到0,說明該序列是平穩(wěn)的。
上面說的相對平穩(wěn)其實(shí)是憑直覺的,下面講一個稍微好一點(diǎn)的方法。
這里要用到下面的Barlett定理,可以先看一下 三.判斷數(shù)據(jù)是否是白噪聲 的那張圖,由于p服從N[0,1/n]的正態(tài)分布,故我們可以考慮算出其95%的置信區(qū)間。
pacf[data_, lmax_, clev_: 0.95] :=
Show[ListPlot[CorrelationFunction[data, {lmax}], Filling -> Axis,
PlotRange -> {{0, lmax}, {-1.5, 1.5}},
PlotStyle -> PointSize[Medium]],
Graphics[{Dashed, Line[{{0, #}, {lmax, #}}]}] & /@ (
Quantile[NormalDistribution[], {(1 - clev)/2, 1 - (1 - clev)/2}]/
Sqrt[Length[data]])]
我們看一下效果:
可以看到除了第一個點(diǎn),那個不算,因?yàn)樗菧鬄?,所以相關(guān)系數(shù)為1。后面的點(diǎn)都在95%的置信區(qū)間里面。這樣只要后面的點(diǎn)不會在超出這個置信區(qū)間,就可以認(rèn)為其是衰減到0的。
三.
判斷數(shù)據(jù)是否是白噪聲
如果一個序列是平穩(wěn)的,那么下面我們就要判斷數(shù)據(jù)是否是白噪聲,白噪聲沒有研究的意義。
在mathematica中,判斷白噪聲使用AutocorrelationTest[],這個函數(shù)
這個函數(shù)必須要說明一下,首先他的原理是bartlett定理
下面對于AutocorrelationTest[]這個函數(shù)的使用進(jìn)行說明,如下圖:
她返回的是一個p值,p值越大表示原假設(shè)成立的可能性越大,即數(shù)據(jù)是隨機(jī)的可能性越大。
即p值越大,隨機(jī)的可能性越大
ListPlot[Table[AutocorrelationTest[data[[All, 2]], i], {i, 1, 10}], Filling -> Axis]
我們可以畫出關(guān)于滯后數(shù)的圖
我們可以看到p值還是挺大的,所以認(rèn)為該數(shù)據(jù)是白噪聲。
我們還有一些其他的檢驗(yàn)方法,如下圖
AutocorrelationTest[data, Automatic, "HypothesisTestData"]["TestDataTable", All]
也可以使用下圖的方式
以上就把白噪聲的檢驗(yàn)做完了。
參考知乎用戶: https://zhuanlan.zhihu.com/p/26227700王茂南
總結(jié)
以上是生活随笔為你收集整理的[时间序列分析]--平稳性,白噪声的检验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何写好.babelrc?Babel的p
- 下一篇: Delphi如何实现多国语言