2.2.3 純隨機(jī)性檢測

純隨機(jī)性檢測也成白噪聲檢測,是專門用來檢測序列是否為純隨機(jī)序列的一種方法。我們知道如果一個(gè)序列是純隨機(jī)序列,那么它的序列值之間應(yīng)該沒有任何關(guān)聯(lián)關(guān)系,這是一種理論上才會(huì)出現(xiàn)的理想狀況。實(shí)際上,由于觀察序列的有限性,導(dǎo)致純隨機(jī)數(shù)序列的樣本自相關(guān)系數(shù)不會(huì)絕對(duì)為零。Barlett證明,如果一個(gè)時(shí)間序列是純隨機(jī)的,得到一個(gè)觀察期為n的觀察序列{Xi:i=1,2,......,n},那么該序列的延遲非零期的樣板自相關(guān)系數(shù)將近似服從均值為零、方差為序列觀察期數(shù)的倒數(shù)的正態(tài)分布。根據(jù)Barlett定理,我們可以構(gòu)造檢驗(yàn)統(tǒng)計(jì)量來檢查序列的純隨機(jī)性。

一 假設(shè)條件

由于序列之間的變異性是絕對(duì)的,而相關(guān)性是偶然的,所以假設(shè)條件如下確定:

  • 原假設(shè):延遲期數(shù)小于或等于m期的序列值之間相互獨(dú)立。
  • 備選假設(shè):延遲期數(shù)小于或等于m期的序列值之間有相關(guān)性。

二 檢驗(yàn)統(tǒng)計(jì)量

1 Q統(tǒng)計(jì)量

Box和Pierce推導(dǎo)出了Q統(tǒng)計(jì)量


image.png

根據(jù)正態(tài)分布和卡方分布之間的關(guān)系,我們很容易推導(dǎo)出Q統(tǒng)計(jì)量近似服從自由度為m的卡方分布:

當(dāng)Q統(tǒng)計(jì)量大于卡方分布的分位點(diǎn),或者統(tǒng)計(jì)量的P值小于a時(shí)候,可以以1-a的置信水平拒絕原假設(shè),認(rèn)為該序列為非白噪聲序列,否則,接受原假設(shè),認(rèn)為序列為純隨序列。

2 LB統(tǒng)計(jì)量

在實(shí)際應(yīng)用中人們發(fā)現(xiàn)Q統(tǒng)計(jì)量在大樣本長夜(n很大的場合)檢驗(yàn)效果很好,但是在小樣本場合就不太精確,為了彌補(bǔ)這一缺陷,Box和Ljong又推導(dǎo)出LB統(tǒng)計(jì)量

LB

Box和Ljung證明LB統(tǒng)計(jì)量同樣近似的服從自由度為m的卡方分布。
實(shí)際上LB統(tǒng)計(jì)量就是Box和Pierce的Q統(tǒng)計(jì)量的修正,所以人們習(xí)慣上吧他們統(tǒng)稱為Q統(tǒng)計(jì)量,分別紀(jì)委QNP和QLB統(tǒng)計(jì)量,在各種檢驗(yàn)場合普遍采用的Q統(tǒng)計(jì)量通常指的就是LB統(tǒng)計(jì)量。

import datetime as dt
import pandas as pd
import statsmodels.api as sm
from statsmodels import *
from statsmodels.tsa import *
import tushare as ts
import warnings
import ffn
warnings.simplefilter('ignore')

%matplotlib inline
import seaborn
seaborn.mpl.rcParams['figure.figsize'] = (10.0, 6.0)
seaborn.mpl.rcParams['savefig.dpi'] = 90

ts.get_stock_basics()
stocks = ts.get_stock_basics()
codes = stocks.index.values
def get_return(codes):
    sh_return = pd.DataFrame()
    index = None
    for i, code in enumerate(codes):
        dw = ts.get_k_data(code)
        if len(dw) >= 640:
            print '\r', i, code,
            sh_return[code]= dw.close
            index = pd.to_datetime(dw.date)
    if len(sh_return) == len(index):
        sh_return.index = index
    return ffn.to_returns(sh_return).dropna()
def get_BoxLjung(sh_return):
    q_stat = pd.DataFrame()
    p_value = pd.DataFrame()
    for code in sh_return.columns.values:
        ret = sh_return[code]
        q,p = stattools.q_stat(stattools.acf(ret)[1:], len(ret))
        q_stat[code] = q
        p_value[code] = p
    return q_stat,p_value
sh_return = get_return(codes)
q_stat,p_value = get_BoxLjung(sh_return)
image.png

ru如果P值顯著大于顯著性水平a,序列就不能拒絕純隨機(jī)的原假設(shè)。平穩(wěn)序列通常具有短期相關(guān)性,如果序列值之間有顯著的相關(guān)關(guān)系,通常只存在延遲比較短的序列之間。所以一個(gè)序列如果如果短期序列延遲值之間都不存在相關(guān)性,通常長期延遲之間就更不會(huì)存在相關(guān)關(guān)系。
另一方面,假如一個(gè)平穩(wěn)序列顯示顯著的短期相關(guān)性,那么該序列就一定不是白噪聲序列,我們就可以對(duì)序列值之間存在的相關(guān)性進(jìn)行分析。假如此時(shí)考慮的延遲時(shí)期數(shù)太長,反而可能淹沒了該序列的短期相關(guān)性。因?yàn)槠椒€(wěn)序列只要延遲足夠長,自相關(guān)系數(shù)都會(huì)收斂于零。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容