Python統計分析 卡方檢驗

2021-08-28 19:35:10 字數 2935 閱讀 5942

卡方檢驗是一種用途很廣的計數資料的假設檢驗方法。它屬於非引數檢驗的範疇,主要是比較兩個及兩個以上樣本率( 構成比)以及兩個分類變數的關聯性分析。其根本思想就是在於比較理論頻數和實際頻數的吻合程度或擬合優度問題。

卡方檢驗的基本思想:

卡方檢驗是以χ

2\chi^2

χ2分布為基礎的一種常用假設檢驗方法,它的基本假設h0是:觀察頻數與期望頻數沒有差別。

該檢驗的基本思想是:首先假設h0成立,基於此前提計算出χ

2\chi^2

χ2值,它表示觀察值與理論值之間的偏離程度。根據χ

2\chi^2

χ2分布及自由度可以確定在h0假設成立的情況下獲得當前統計量及更極端情況的概率p。如果p值很小,說明觀察值與理論值偏離程度太大,應當拒絕原假設,表示比較資料之間有顯著差異;否則就不能拒絕無效假設,尚不能認為樣本所代表的實際情況和理論假設有差別。

χ 2=

∑(a−

e)2e

\chi ^2 = \sum\frac

χ2=∑e(

a−e)

2​=∑ i=

1k(a

i−ei

)2ei

\sum\limits_^k\frac

i=1∑k​

ei​(

ai​−

ei​)

2​=∑ i=

1k(a

i−np

i)2n

pi

\sum\limits_^k\frac

i=1∑k​

npi​

(ai​

−npi

​)2​

(i=1,2,3,…,k)

其中,a

ia_i

ai​為i水平的觀察頻數,e

ie_i

ei​為i水平的期望頻數,n為總頻數,p

ip_i

pi​為i水平的期望頻率。

例1:從某中學隨機抽取兩個班,調查他們對待文理分科的態度,結果,甲班37人贊成,27人反對;乙班39人贊成,21人反對,這兩個班對待文理分科的態度是否有顯著差異(α= .05)?

可以畫乙個2∗2

2*22∗

2的行∗

*∗列雙向表 (2*2 crosstabs)

班級贊成

反對甲班

3727

乙班39

21

from  scipy.stats import chi2_contingency

import numpy as np

kf_data = np.array([[

37,27]

,[39,

21]])

kf = chi2_contingency(kf_datad)

print

('chisq-statistic=%.4f, p-value=%.4f, df=%i expected_frep=%s'

%kf)

# chisq-statistic=0.4054, p-value=0.5243, df=1 expected_frep=[[39.22580645 24.77419355][36.77419355 23.22580645]]

結論: 因為p值=0.5243>0.05, 故接受原假設, 認為這兩個班對待文理分科的態度無顯著差別。

例2:**死亡年齡和居住地、性別是否有關?

可以畫乙個r∗c

r*cr∗

c的行∗

*∗列雙向表 (r*c crosstabs)

oldruralmale

ruralfemale

urbanmale

urbanfemale

50-54

11.7

8.715.4

8.455-59

18.1

11.7

24.3

13.6

60-64

26.9

20.3

3719.3

65-69

4130.9

54.6

35.1

70-74

6654.3

71.1

50

from  scipy.stats import chi2_contingency

import numpy as np

kf_data = np.array([[

11.7

,8.7

,15.4

,8.4],

[18.1

,11.7

,24.3

,13.6],

[26.9

,20.3,37

,19.3],

[41,30.9

,54.6

,35.1],

[66,54.3

,71.1,50

]])kf = chi2_contingency(kf_data)

print

('chisq-statistic=%.4f, p-value=%.4f, df=%i expected_frep=%s'

%kf)

# chisq-statistic=2.9208, p-value=0.9961, df=12 expected_frep=[[11.70042044 8.998674 14.46649418 9.03441138][17.92123221 13.78303687 22.15795602 13.8377749 ][27.39804334 21.07155563 33.87516171 21.15523933][42.77800776 32.90012937 52.89107374 33.03078913][63.90229625 49.14660414 79.00931436 49.34178525]]

結論: 因為p值=0.9961>0.05, 故接受原假設, 認為死亡年齡和居住地、性別無顯著差別。

統計分析的體會

客戶給了一張基本的資料表,然後讓我做大量的計算,並且動態 靜態的做統計分析報表,經過了長達兩個月的苦戰,終於作完了。體會如下 1 一張存放中間統計結果的表是必要的,如果能夠將客戶的統計分析需要經過計算才能顯示的字段囊括在內是最好不過了,畢竟在查詢的過程中作計算是一件很討厭的事,雖然有資料冗餘,但是簡...

資料的統計分析

資料預處理之後,我們要做一些統計分析,來觀察我們的資料,這其中包括 描述性分析 統計推斷。描述性分析 主要是統計指標 圖表。1 集中趨勢分析 除了分位數,我們還可以結合 中位數 眾數 平均數三者的關係。具體地 眾數在中位數左側,平均數在中位數右側,則此時資料呈正偏態分布,又叫右偏,存在極大異常值。是...

數學建模 統計分析

1.正整數頻率表 使用tabulate函式可以得到正整數的頻率表 t ceil 5 rand 1,10 隨機產生一組資料 table tabulate t 得到t的頻率表 t 324 2345 531table 1110 22203 33042 205220tabulate有乙個缺點是,它得到的是正...