白話“卡方檢驗”

白話“卡方檢驗”

什么是“卡方檢驗”?

卡方檢驗是假設(shè)檢驗的一種撑毛,用于分析兩個類別變量的相關(guān)關(guān)系书聚,是一種非參數(shù)假設(shè)檢驗,得出的結(jié)論無非就是“兩個變量相關(guān)”或者“兩個變量”不相關(guān)藻雌,所以有的教材上又叫“獨立性檢驗”雌续。如果不是很清楚“假設(shè)檢驗”的朋友們,就要好好翻一下本科階段《概率論與數(shù)理統(tǒng)計》的教材了胯杭。

關(guān)于假設(shè)檢驗的關(guān)鍵字有:總體驯杜、樣本、點估計做个、區(qū)間估計鸽心、顯著性水平、置信區(qū)間居暖、統(tǒng)計量顽频、樞軸量、分位點太闺、三大分布糯景、中心極限定理(明確正態(tài)分布的重要地位)、抽樣分布定理省骂。
如果這些關(guān)鍵字你還比較生疏的話蟀淮,可以翻翻本科的《概率論與數(shù)理統(tǒng)計》教材,在“數(shù)理統(tǒng)計”部分冀宴,你可以找到它們灭贷。

卡方檢驗在做什么?

卡方檢驗用于分析兩個類別變量的相關(guān)關(guān)系略贮。

它的流程基本是這樣的:我感覺變量 A 和變量 B 存在相關(guān)關(guān)系,于是我提出假設(shè)“變量 A 和變量 B 存在相關(guān)關(guān)系”仗岖,然后我要用嚴(yán)格的數(shù)學(xué)方法證明“變量 A 和變量 B 存在相關(guān)關(guān)系”這個假設(shè)成立逃延。

  • 什么是“類別變量”?

類別變量就是取值為離散值的變量轧拄,“性別”就是一個類別變量揽祥,它的取值只有“男”和“女”,類似還有”婚否“檩电、”國籍“等拄丰。

  • 什么是“分析兩個類別變量的相關(guān)關(guān)系”府树?

以我們熟知的 Kaggle 平臺上的泰坦尼克號幸存者預(yù)測提供的數(shù)據(jù)為例,”性別“對于”是否幸存“的關(guān)系研究料按,就屬于這方面的內(nèi)容奄侠。研究表明,泰坦尼克號上的乘客秉承”女士優(yōu)先载矿,照顧弱勢群體“的基本原則垄潮,因此女性幸存的概率比男性要大,這就說明闷盔,”性別“對于”是否幸存“有相關(guān)關(guān)系弯洗,我們后面會使用卡方檢驗來驗證這一事實。

假設(shè)檢驗是什么逢勾?

假設(shè)檢驗牡整,顧名思義,就是提出一個假設(shè)溺拱,然后檢驗?zāi)闾岢龅募僭O(shè)是否正確逃贝。假設(shè)檢驗的流程其實是固定的,關(guān)鍵其實在于理解假設(shè)檢驗的設(shè)計原則盟迟。

這里說一句題外話秋泳,“提出假設(shè),然后證明假設(shè)”其實我們一點都不陌生攒菠,人類探索未知事物迫皱、真理用的都是這個思路。聰明的祖先根據(jù)經(jīng)驗和直覺辖众,提出一個猜想卓起,然后再用嚴(yán)格的理論去論證這個猜想,例如我們熟知的“萬有引力定律”凹炸、“地球是圓的”戏阅,這些說法剛剛提出來的時候,就只是科學(xué)家們的猜想啤它,隨后(很可能是很久很久以后)奕筐,才被證明他們的猜想是正確的、偉大的变骡。只不過在統(tǒng)計學(xué)中离赫,“提出猜想”叫“提出假設(shè)”,“證明猜想”叫“檢驗”塌碌。

假設(shè)什么渊胸?

那么我們假設(shè)什么呢?這里就要引入“原假設(shè)”和“備擇假設(shè)”的概念了台妆◆崦停“原假設(shè)”是“備擇假設(shè)”的對立面胖翰。

下面這個原則很重要:

備擇假設(shè)通常是研究者想收集證據(jù)予以支持的假設(shè);

原假設(shè)是研究者想收集證據(jù)予以推翻的假設(shè)切厘。

重要的事情萨咳,我再寫兩遍:如果你想通過種種論證,證明一件事情迂卢,就要把這件事情寫成“備擇假設(shè)”某弦。<b><font size='3' color='ff0000'>備擇假設(shè)通常用于表達(dá)研究者自己傾向于支持的看法(這很主觀),然后就是想辦法收集證據(jù)拒絕原假設(shè)而克,以支持備擇假設(shè)</font></b>靶壮。

特別要說明的一點是:如果你不遵守這個“原假設(shè)”和“備擇假設(shè)”設(shè)計的基本原則,你很可能會得到相反的結(jié)論员萍。

假設(shè)檢驗很像司法界對于一個事實的認(rèn)定腾降,本著“疑罪從無”的原則苛谷,如果你要說明一個人有罪龄寞,你必須提供充足的證據(jù)度硝,否則被告人的罪名就不能成立扮授,這個說法叫“沒有充分的證據(jù)證明被告有罪”。

因此哩都,如果我們最后的結(jié)論是“原假設(shè)”成立,我們一般不這么說塞绿,即我們不說“原假設(shè)”成立雷猪,我們不說“原假設(shè)”是真的矾削。我們說不能拒絕“原假設(shè)”著拭,或者說沒有充分的證據(jù)拒絕“原假設(shè)”,或者說沒有充分的證據(jù)證明“備擇假設(shè)”成立设拟。

卡方檢驗的“原假設(shè)”與“備擇假設(shè)”

因為我們做假設(shè)檢驗一定是覺得兩個類別變量有關(guān)系,才去做檢驗骑素。再想想那個“疑罪從無”原則,我們是覺得一個人有罪光督,才去舉證阳距。因此卡方檢驗的“原假設(shè)”一定是假設(shè)獨立,“備擇假設(shè)”一定是假設(shè)相關(guān)结借,即:

原假設(shè):類別變量 A 與類別變量 B 獨立筐摘;

備擇假設(shè):類別變量 A 與類別變量 B 不獨立

這一點是極其重要且明確的,請你一定記住它咖熟,在統(tǒng)計軟件中都是這樣設(shè)定的圃酵。

原假設(shè)是兩個類別變量獨立。

原假設(shè)是兩個類別變量獨立馍管。

原假設(shè)是兩個類別變量獨立郭赐。

如何檢驗?

做“檢驗”這件事情确沸,就很像我們以前做的“反證法”捌锭,我們假定要證明的結(jié)論的對立面成立,然后推出矛盾罗捎,即說明了我們的假設(shè)是錯誤的观谦,即原命題成立。請看下面這個例子:

請你證明:這個餐廳的菜很難吃桨菜。
證明:假設(shè)這個餐廳的菜很好吃豁状,那么周末的晚上生意一定很好,然而實際觀察下來倒得,顧客流量和平時一樣泻红,推出矛盾,所以假設(shè)不成立屎暇,即這個餐廳的菜很難吃承桥。

用假設(shè)檢驗的思路,在這個例子中:
原假設(shè):這個餐廳的菜很好吃根悼;
備擇假設(shè):這個餐廳的菜很難吃凶异。

我們把傾向于要證明的結(jié)論設(shè)置為“備擇假設(shè)”,而推理是基于“原假設(shè)”成立進(jìn)行的挤巡,推理得出矛盾剩彬,說明“原假設(shè)”錯誤,從錯誤的起點推出了錯誤的結(jié)論矿卑,因此“原假設(shè)”不成立喉恋,這就是假設(shè)檢驗里面說的“拒絕原假設(shè)”。

因此母廷,檢驗其實很簡單轻黑,就是一個是非論證的過程,是單選題琴昆,只有兩個選項氓鄙,選擇其一。

假設(shè)檢驗如何論證业舍?

假設(shè)檢驗的論證流程其實是固定的抖拦。論證依據(jù)的事實是“小概率事件在一次試驗中幾乎不可能發(fā)生”升酣,通常,我們得到的矛盾就在于:通過計算統(tǒng)計量态罪,發(fā)現(xiàn)通過一次試驗得到這個統(tǒng)計量是一個“小概率事件”噩茄,“小概率事件”在一次試驗中,居然發(fā)生了复颈,我們就認(rèn)為這是很“詭異”的绩聘,一定是之前的某個環(huán)節(jié)出了問題,即“原假設(shè)”不成立券膀,于是拒絕“原假設(shè)”君纫,即證明了“備擇假設(shè)”成立。

為什么叫“卡方檢驗”芹彬?

“卡方檢驗”即利用“卡方分布”去做“假設(shè)檢驗”。

什么是“卡方分布”叉庐?

“卡方分布”(也寫作 “\chi^2分布”)是統(tǒng)計學(xué)領(lǐng)域的三大分布之一舒帮,另外兩個分布是“t 分布”與“F 分布”,這些分布都是由正態(tài)分布推導(dǎo)出來的陡叠,可以認(rèn)為它們是我們熟知的分布玩郊,因為它們可以取哪些值,以及取這些值的概率都是完全弄清楚了的枉阵。

注:忘記了三大分布的朋友們译红,請一定要翻翻自己本科的教材,看看這些分布用來做什么兴溜?為什么出現(xiàn)在“數(shù)理統(tǒng)計”中侦厚,理解使用這些分布是為了從樣本中估計總體的信息。

統(tǒng)計學(xué)的研究任務(wù)是通過樣本研究總體拙徽,因為我們無法把所有的總體都做一次測試刨沦,一般可行的做法就是從總體中抽取一部分?jǐn)?shù)據(jù),根據(jù)對這一部分?jǐn)?shù)據(jù)的研究膘怕,推測總體的一些性質(zhì)想诅。

而“三大分布”就是我們研究樣本的時候選取的參照物。一般我們研究的思路是這樣的:如果經(jīng)過分析岛心,得出待研究的樣本符合這些我們已知的分布之一来破,因為三大分布是被我們的統(tǒng)計學(xué)家完全研究透了的,可以認(rèn)為是無比正確的忘古,就可以通過查表得到這些分布的信息徘禁,進(jìn)而得到樣本的一些性質(zhì),幫助我們決策存皂。

這里舉一個例子晌坤,比如你是一個面試官逢艘,你手上掌握著“北京”、“上褐璨ぃ”它改、“廣州”三個省市的人才信息庫,來了一個面試者商乎,從簡歷中得知這個人來自“北京”央拖,那么我們就可以直接從“北京”市的人才信息庫中查閱到他的詳細(xì)履歷,掌握到他更全面的信息鹉戚。

上面提到的“北京”鲜戒、“上海”抹凳、“廣州” 這 3 個城市的人才信息庫遏餐,就相當(dāng)于統(tǒng)計學(xué)中的三大分布,你不用記住它赢底,你不用隨身攜帶它失都,但是你可以查閱它,它會告訴你你想知道的信息幸冻。

做假設(shè)檢驗的時候粹庞,我們也是類似的思路,我們需要利用總體的樣本構(gòu)造出合適的統(tǒng)計量(或樞軸量)洽损,并使其服從或近似地服從已知的確定分布庞溜,這樣我們就可以查閱這些確定分布的相關(guān)信息,得到待研究樣本所反映出來的總體的一些性質(zhì)碑定。

上面說到了“統(tǒng)計量”和“樞軸量”流码,下面簡單談一談。

  • 什么是“統(tǒng)計量”不傅?
    統(tǒng)計量:不含總體分布未知參數(shù)的函數(shù)稱為樣本的統(tǒng)計量旅掂。統(tǒng)計量經(jīng)常作為一個樣本的代表,例如平均數(shù)访娶、眾數(shù)商虐、最大值、最小值崖疤,統(tǒng)計量由多個數(shù)映射成一個數(shù)秘车。
  • 什么是“樞軸量”?
    樞軸量:僅含有一個未知參數(shù)劫哼,并且分布已知的樣本的函數(shù)叮趴,稱為樞軸量。引入樞軸量的作用权烧,其實就是為了解方程眯亦,或者說解不等式伤溉,這一部分非常重要的理論基礎(chǔ)是“抽樣分布定理”

如果忘記了的朋友們一定要翻翻以前的教程妻率,“抽樣分布定理”是非常重要的乱顾。根據(jù)抽樣分布定理,我們經(jīng)常是這樣用的:樣本的某個含有未知參數(shù)的函數(shù)符合某個已知分布宫静,已知分布可以查表走净,因此未知參數(shù)的性質(zhì)就知道了。求“置信區(qū)間”與做“假設(shè)檢驗”通常就是這樣的思路孤里。

卡方檢驗的統(tǒng)計量

\chi^2=\sum\sum \frac{(f_o-f_e)^2}{f_e}

說明:f_o 是觀測頻數(shù)(實際值)伏伯,f_e 是期望頻數(shù)(可以認(rèn)為是理論值),期望頻數(shù)的計算公式我們馬上會介紹到捌袜。這個統(tǒng)計量服從自由度為 (r-1)(c-1)\chi^2 分布说搅,r 為行數(shù),c 為列數(shù)虏等。

如何理解卡方檢驗的統(tǒng)計量蜓堕?

  • 我們先看每一個加法因子的分子,是 (f_o-f_e)^2博其,它表示了觀察頻數(shù)和理論頻數(shù)的“距離”(或者稱作“差距”),如果差距越小迂猴,卡方統(tǒng)計量的值就越小慕淡,則表示觀察頻數(shù)和理論頻數(shù)越接近;
  • 分母是理論頻數(shù)沸毁,表示標(biāo)準(zhǔn)化峰髓,想想卡方分布的定義,n 個標(biāo)準(zhǔn)正態(tài)分布的平方和息尺,所以這個統(tǒng)計量符合卡方分布(我這個說法只是為了幫助理解統(tǒng)計量的形式携兵,不是嚴(yán)格論證,嚴(yán)格的數(shù)學(xué)證明請參考相關(guān)教材)搂誉,我們就可以查閱卡方分布表徐紧,看看這個卡方分布取到這個統(tǒng)計量的概率有多大,如果這個概率大炭懊,表明觀察頻數(shù)和理論頻數(shù)差別不大并级,兩個類別變量獨立,如果這個概率小侮腹,表示觀察到這個頻數(shù)的概率很小嘲碧,即觀察頻數(shù)和理論頻數(shù)差別顯著,拒絕原假設(shè)父阻,兩個類別變量相關(guān)愈涩。

下面舉個例子望抽,說明卡方檢驗的基本流程。

例:研究類別變量“青少年行為”與類別變量“家庭狀況”的相關(guān)關(guān)系

以下例子選自中國人民大學(xué)龍永紅主編《概率論與數(shù)理統(tǒng)計》(第三版)P190 “獨立性檢驗”一節(jié)例 5.32履婉。

研究青少年行為與家庭狀況的關(guān)系煤篙,調(diào)查結(jié)果如下:

青少年行為\家庭狀況 離異家庭 和睦家庭 合計
犯罪 178 272 450
未犯罪 38 502 540
合計 216 774 990

分析:“青少年行為”是離散型變量,有“犯罪”與“未犯罪”兩個取值谐鼎;“家庭狀況”是也離散型變量舰蟆,有“離異家庭”與“和睦家庭”兩個取值,從直覺上狸棍,我們認(rèn)為它們是相關(guān)的身害。因此

上面這張表,我們可以稱之為觀察頻數(shù)表草戈,觀察依據(jù)事實塌鸯。下面我們會計算一張“理論頻數(shù)表”,理論依據(jù)假設(shè)唐片。

  • 第 1 步:建立統(tǒng)計假設(shè)丙猬。

原假設(shè):“青少年行為”與“家庭狀況”獨立。
備擇假設(shè):“青少年行為”與“家庭狀況”不獨立费韭。

  • 第 2 步:計算期望頻數(shù)與檢驗統(tǒng)計量茧球。

要計算出檢驗統(tǒng)計量,關(guān)鍵是計算出期望頻數(shù)星持。我們之前說到了抢埋,假設(shè)檢驗是基于原假設(shè)進(jìn)行論證,因此我們的期望頻數(shù)應(yīng)該是基于【“青少年行為”與“家庭狀況”獨立】得到的督暂,即:兩個類別的交叉項的概率可以根據(jù)獨立事件的概率乘法公式 P(AB)=P(A) \cdot P(B) 得到揪垄。具體是這樣做的,上面那張表中逻翁,把交叉項隱藏起來:

  • 一行一行看饥努,這 990 個青少年里,P(犯罪)=\cfrac{450}{990}八回,P(未犯罪)=\cfrac{540}{990}酷愧;
  • 一列一列看,這 990 個青少年里辽社,P(離異家庭)=\cfrac{216}{990}伟墙,P(和睦家庭)=\cfrac{774}{990}

在【“青少年行為”與“家庭狀況”獨立】這個假設(shè)下有:

P(“犯罪”并且“離異家庭”) = P(犯罪) \times P(離異家庭) = \cfrac{450}{990} \times \cfrac{216}{990}

P(“犯罪”并且“和睦家庭”) = P(犯罪) \times P(和睦家庭) = \cfrac{450}{990} \times \cfrac{774}{990}

P(“未犯罪”并且“離異家庭”) = P(犯罪) \times P(離異家庭) = \cfrac{540}{990} \times \cfrac{216}{990}

P(“未犯罪”并且“離異家庭”) = P(犯罪) \times P(離異家庭) = \cfrac{540}{990} \times \cfrac{774}{990}

我們要計算期望頻數(shù)滴铅,就把上面這 4 個概率分別乘以樣本總數(shù) 990 就可以了戳葵,于是我們得到理論頻數(shù)表

青少年行為\家庭狀況 離異家庭 和睦家庭
犯罪 450\times \frac{216}{990} \approx 98.18 450 \times \frac{774}{990} \approx 351.82
未犯罪 540 \times \frac{216}{990} \approx 117.82 540 \times \frac{774}{990} \approx 422.18

下面我們就套公式 \chi^2=\sum\sum \frac{(f_o-f_e)^2}{f_e} 了,將每個單元格的 \frac{(f_o-f_e)^2}{f_e} 加起來汉匙,就可以得到 \chi^2 統(tǒng)計量:

\begin{aligned} \chi^2 &= \cfrac{(178-98.18)^2}{98.18} + \cfrac{(272-351.82)^2}{351.82} + \cfrac{(38-117.82)^2}{117.82} + \cfrac{(502-422.18)^2}{422.18} \\ & \approx 64.89 + 18.11 + 54.06 + 15.09 \\ & \approx 152.15 \end{aligned}

上面說服從自由度為 (r-1)(c-1)\chi^2 分布拱烁,r 為行數(shù)生蚁,c 為列數(shù),即服從 (2-1)\times (2-1) = 1\chi^2 分布戏自,接下來邦投,我們就要看得到這個統(tǒng)計量的概率有多大:

from scipy import stats
import seaborn as sns
import matplotlib.pyplot as plt


samples = stats.chi2.rvs(size=10000, df=1)
sns.distplot(samples)
plt.title('$\chi^2$,df=1')
plt.show()

得到圖像如下:

Figure_1.png

可以看到,152.15 都不在能圖像顯示到的范圍之內(nèi)擅笔,說明這個概率很低志衣。下面我們查表或者使用 Python 查一下,這個概率是多少:

from scipy import stats


stats.chi2.pdf(152.15, df=1)
2.956796099836173e-35

得到:2.956796099836173e-35猛们,確實是一個幾乎為 0 的數(shù)念脯。這說明了什么呢?

說明了弯淘,在我們的假設(shè)【“青少年行為”與“家庭狀況”獨立】下绿店,得到這組觀測數(shù)據(jù)的概率很低很低,基于<b><font size='3' color='ff0000'>小概率事件在一次試驗中幾乎不會發(fā)生</font></b>庐橙,但它卻發(fā)生了假勿,就證明了我們的“原假設(shè)”是不正確的,即有充分證據(jù)決絕“原假設(shè)”态鳖。(這一部分有點繞转培,其實很簡單,多看幾遍就非常清楚了浆竭。)

其實到這里堡距,我們對卡方檢驗就已經(jīng)介紹完了,是不是覺得很簡單兆蕉。但是在實際操作的過程中,我們還會引入 p 值缤沦,很多統(tǒng)計軟件也會幫我們計算出 p 值虎韵,這個 p 值是個什么鬼呢?下面先給出我的結(jié)論:

什么是 p 值缸废?

為什么提出了 p 值包蓝?檢驗統(tǒng)計量有什么不好?

說明:以下我根據(jù)對 p 值的理解自己總結(jié)的企量,是人話测萎,但不一定準(zhǔn)確。

得到“檢驗統(tǒng)計量”有個缺點届巩,就是它是一個很“死”的數(shù)字硅瞧,我們看到 152.15,我們只能直觀感覺它很大恕汇,因為如果觀察頻數(shù)與理論頻數(shù)大約相等腕唧,這個值應(yīng)該很小或辖,但不能量化這個值有多大。這只是統(tǒng)計量服從某個自由度的卡方分布的情況枣接。

那么問題來了颂暇,如果統(tǒng)計量服從其它分布呢?統(tǒng)計量這個干巴巴的數(shù)字但惶,你怎么知道這個這個分布取到這個統(tǒng)計量的概率有多大耳鸯?因此還差一步,我們還必須查表膀曾。所以得到 p 值的過程就是幫你查表了县爬,p 值是一個概率值,它介于 01 之間妓肢,p 值是當(dāng)前分布取到這個統(tǒng)計量的概率到當(dāng)前分布極端值(指的是概率很小的極端值)這個區(qū)間的累計概率之和捌省,即取到這個值,到比這個值更“差”的概率之和碉钠,如果 p 值很大纲缓,說明統(tǒng)計量取當(dāng)前值的概率在一個正常的范圍(一般是認(rèn)為設(shè)定成 95\%),如果 p 值很小喊废,說明這個統(tǒng)計量取當(dāng)前值的概率也非常小祝高。

特別說明:對于連續(xù)型隨機(jī)變量來說,取到某個值的概率其實是 0污筷,因此上面才用到了對于區(qū)間取概率之和工闺。

0BC235A0-8CFD-4E25-B79D-C998A26F239D.png

說明:上面所說的累積概率之和如果很小,小于一個臨界值瓣蛀,這個臨界值我們稱之為“顯著性水平”陆蟆,用 \alpha 表示,一般取 \alpha = 0.05惋增。多說一句叠殷,這個顯著性水平其實是我們在原假設(shè)成立的情況下,拒絕原假設(shè)的概率诈皿,即犯第一類錯誤的概率林束,具體就不展開了,請參考相關(guān)《概率論與數(shù)理統(tǒng)計》教材稽亏。

所以我們總結(jié)一下:

1壶冒、 p 值統(tǒng)一了假設(shè)檢驗的比較標(biāo)準(zhǔn),把計算統(tǒng)計量的概率大小統(tǒng)一變成計算 p 值截歉,如果這個 p 值小于一個預(yù)先設(shè)定好的很小的數(shù)胖腾,則拒絕原假設(shè),如果 p 值大于這個預(yù)先設(shè)置好的很小的數(shù),則說明沒有充分證據(jù)拒絕原假設(shè)胸嘁;
2瓶摆、使用 p 值進(jìn)行假設(shè)檢驗的時候,會更便利性宏。因此群井,使用 p 值進(jìn)行假設(shè)檢驗的評判標(biāo)準(zhǔn)就只要一個,就是記住這句話“小拒大接”毫胜,即比 0.05 小书斜,就拒絕“原假設(shè)”,比 0.05 大酵使,結(jié)論是“沒有理由拒絕原假設(shè)”荐吉。

p 值在不同的檢驗問題中,計算的方式會有一些不同口渔,區(qū)別就在于概率極端值是在一側(cè)還是在兩側(cè)样屠。在這里,我們就以卡方檢驗為例缺脉,如果我們計算出來的統(tǒng)計量的值為 1痪欲,那么看圖:

Figure_1.png

這個時候,統(tǒng)計量取 1 的概率就很高了攻礼,從圖中可以看出大于 0.2业踢。我們作如下分析:

  • \chi^2 分布長尾在右邊,是個右偏分布礁扮,在 0 附近的概率是非常高的知举,我們要找一個臨界值,如果統(tǒng)計量取到這個臨界值太伊,以及這個臨界值的右邊雇锡,我們認(rèn)為這樣的事情發(fā)生的概率是很低的,這里就要借助累計概率和分位點的概念僚焦;

(說明:累計積分和分位點的概念都是十分重要的遮糖,在這里就不贅述了,讀者可以查閱相關(guān)統(tǒng)計學(xué)的教材叠赐。)

  • 我們認(rèn)為,在 \chi^2 分布屡江,如果一個點到右邊無窮的累計積分小于“顯著性水平”芭概,我們就認(rèn)為這個點以及右邊所有的點的取值,都是小概率事件惩嘉。

于是罢洲,對于卡方檢驗而言,得到的統(tǒng)計量,我們可以計算這個從統(tǒng)計量到正無窮的積分惹苗,如果這個積分值小于“顯著性水平”殿较,即認(rèn)為這個統(tǒng)計量的概率一定在“顯著性水平”所確定的臨界點的右邊,即它是比“小概率事件”發(fā)生的概率還小的“小概率事件”桩蓉。

下面淋纲,我們自己寫一個函數(shù)來實現(xiàn)卡方檢驗相關(guān)的計算,實現(xiàn)和 scipy 軟件包提供的卡方檢驗同樣的效果院究。

from scipy import stats
from scipy.stats import chi2_contingency


def custom_chi2_contingency(observed):
    """
    自己編寫的卡方檢驗的函數(shù)洽瞬,返回
    """
    # 每一行求和
    row = observed.sum(axis=1)
    # 每一列求和
    col = observed.sum(axis=0)
    # 總數(shù)求和
    all_sum = observed.sum()

    # meshgrid 生成網(wǎng)格
    x1, x2 = np.meshgrid(col, row)
    # 期望頻數(shù)
    expected_count = x1 * x2 / all_sum
    # 統(tǒng)計量,即卡方值
    chi2 = ((observed - expected_count)**2 / expected_count).sum()
    # 自由度
    df = (len(row) - 1) * (len(col) - 1)
    # 計算 p 值业汰,這里用到了卡方分布的概率積累函數(shù)伙窃,
    # 因為這個 cdf 是計算從左邊到這點的累計積分,因此用 1 減它
    p = 1 - stats.chi2.cdf(chi2, df=df)
    return chi2, p, df, expected_count

下面驗證我們編寫的卡方檢驗函數(shù)的正確性:

obs = np.array([[178, 272], [38, 502]])
result1 = custom_chi2_contingency(obs)
result2 = chi2_contingency(obs)
print('自定義卡方檢驗的函數(shù)返回:')
print(result1)
print()
print('scipy 提供的卡方檢驗返回:')
print(result2)
自定義卡方檢驗的函數(shù)返回:
(152.16271892047084, 0.0, 1, array([[ 98.18181818, 351.81818182],
       [117.81818182, 422.18181818]]))

scipy 提供的卡方檢驗返回:
(150.2623232486362, 1.5192261812214016e-34, 1, array([[ 98.18181818, 351.81818182],
       [117.81818182, 422.18181818]]))

顯示:

自定義卡方檢驗的函數(shù)返回:
(152.16271892047084, 0.0, 1, array([[ 98.18181818, 351.81818182],
       [117.81818182, 422.18181818]]))

scipy 提供的卡方檢驗返回:
(150.2623232486362, 1.5192261812214016e-34, 1, array([[ 98.18181818, 351.81818182],
       [117.81818182, 422.18181818]]))

參考資料

1样漆、結(jié)合日常生活的例子为障,了解什么是卡方檢驗
http://www.reibang.com/p/807b2c2bfd9b

2、假設(shè)檢驗之八:p值是什么:
https://zhuanlan.zhihu.com/p/26068572

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末放祟,一起剝皮案震驚了整個濱河市鳍怨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舞竿,老刑警劉巖京景,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異骗奖,居然都是意外死亡确徙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門执桌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鄙皇,“玉大人,你說我怎么就攤上這事仰挣“橐荩” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵膘壶,是天一觀的道長错蝴。 經(jīng)常有香客問我,道長颓芭,這世上最難降的妖魔是什么顷锰? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮亡问,結(jié)果婚禮上官紫,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好束世,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布酝陈。 她就那樣靜靜地躺著,像睡著了一般毁涉。 火紅的嫁衣襯著肌膚如雪沉帮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天薪丁,我揣著相機(jī)與錄音遇西,去河邊找鬼。 笑死严嗜,一個胖子當(dāng)著我的面吹牛粱檀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播漫玄,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼茄蚯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了睦优?” 一聲冷哼從身側(cè)響起渗常,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎汗盘,沒想到半個月后皱碘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡隐孽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年癌椿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菱阵。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡踢俄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晴及,到底是詐尸還是另有隱情都办,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布虑稼,位于F島的核電站琳钉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蛛倦。R本人自食惡果不足惜歌懒,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胰蝠。 院中可真熱鬧,春花似錦、人聲如沸茸塞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钾虐。三九已至噪窘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間效扫,已是汗流浹背倔监。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留菌仁,地道東北人浩习。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像济丘,于是被迫代替她去往敵國和親谱秽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容