金融學習之七 統計檢驗方法的使用

2021-10-21 02:21:38 字數 2667 閱讀 4840

今天的內容有點無聊,主要是幾個統計檢驗方法的應用,都是scipy模組中的stas子模組中的函式。幾個統計檢驗分別是k-s檢驗,a-d檢驗,w檢驗和正態性檢驗。

(1)k-s檢驗

k-s檢驗是基於累計分布函式,用以檢驗乙個分布是否服從某種理論分布,或比較兩個分布是否存在顯著差異。

k-s檢驗所使用的函式是kstest,使用格式為:

kstest(rvs,cdf,args,alternative)

rvs是待檢驗樣本,cdf指定檢驗的分布型別,args以元組形式輸入分布函式中的相關引數,alternative預設為雙尾檢驗,也可以使用less或greater做單尾檢驗。

(2)a-d檢驗

a-d檢驗相當於k-s檢驗的增強版,其原理是將所收集的資料從小到大排列,得出經驗累積分布(ecdf),並與目標分布的理論累積分布(cdf)進行比較,得出所謂的ad統計量,這個統計量越小,資料的分布就越接近目標分布,越大則資料服從目標分布的可能性就越小。

a-d檢驗所使用的函式是anderson,使用格式為:

anderson(x,dist)

x是待檢驗樣本,dist是指定檢驗的分布型別。

(3)w檢驗

該檢驗是由s.s.shapiro與m.b.wilk提出的,又被稱之為w檢驗,主要檢驗研究物件是否符合正態分佈。

w檢驗所使用的函式是shapiro,使用格式為:

shapiro(x)

x為待檢驗樣本

(4)正態性檢驗

僅用於檢驗是否服從正態分佈。使用格式為:

normaltest(x,axis)

x為待檢驗樣本,axis=0時為按行檢驗,axis=1時按列檢驗。

接著我們想把上證指數2017-2023年的波動資料提取出來,檢驗一下這個資料是否服從正態分佈。

首先利用tushare獲取上證指數2017-2023年的波動資料:

import tushare as ts

ts.set_token(

'****************************************'

)pro=ts.pro_api(

)#獲取所有指數的資訊

可以看到上證指數的**(ts_code)是000001.sh

接著提取2017-2023年的指數**:

一共拿到了731條資料,說多不多,說少也不少。指數的波動我們用漲跌幅來表示,也即是change這一列資料。

接下來我們分別進行4種檢驗:

(1)k-s檢驗

import scipy.stats as sm

sm.kstest(rvs=data1[

'change'

],cdf=

'norm',args=

(0,0.01))

結果為:

kstestresult(statistic=0.5294117647058766, pvalue=1.1924100364470399e-191)

可以看到p值非常小,接近於0,表明在1%水平上拒絕原假設,也即認為樣本不服從正態分佈。

(2)a-d檢驗

sm.anderson(x=data1[

'change'

],dist=

'norm'

)

結果為:

andersonresult(statistic=8.071818761956024, critical_values=array([0.573, 0.652, 0.783, 0.913, 1.086]), significance_level=array([15. , 10. , 5. , 2.5, 1. ]))

可以看到上面的統計值在1%水平上被拒絕,也即認為樣本不服從正態分佈

(3)w檢驗

sm.shapiro(data1[

'change'

])

結果為:

shapiroresult(statistic=0.9408900737762451, pvalue=1.8531769308344827e-16),p值也是非常小,認為樣本不服從正態分佈。

(4)正態性檢驗

sm.normaltest(data1[

'change'

],axis=0)

結果為:

normaltestresult(statistic=112.03096823690633, pvalue=4.70743515392237e-25),同樣也是p值非常小,認為樣本不服從正態分佈。

檢驗完畢後確認,4種方法均得到了一致結果。

跟二項分布相關的統計檢驗方法

小概率事件在一次試驗中幾乎不可能發生。小概率事件在多次重複試驗中必定會發生。問題 調查北京市所有人喜歡吃麵食還是吃公尺飯 都不喜歡吃的忽略 在北京街頭隨機選了10個人 樣本有點少 有8個喜歡吃麵食,2個喜歡吃公尺飯。由此能否否定北京人喜歡吃麵食的比例為p 0.5呢?10k 10 choose k k...

Linux學習之七 mysql的安裝使用

安裝這個包後,會獲得兩個mysql的yum repo源 etc yum.repos.d mysql community.repo,etc yum.repos.d mysql community source.repo。yum install mysql server 安裝完了,還需要一些基礎配置。s...

談談C 學習之Pair的使用方法

一 pair型別概述 pair是一種模板型別,其中包含兩個資料值,兩個資料的型別可以不同,基本的定義如下 pair a 表示a中有兩個型別,第乙個元素是int型的,第二個元素是string型別的,如果建立pair的時候沒有對其進行初始化,則呼叫預設建構函式對其初始化。pair a james joy...