1. 程式人生 > 實用技巧 >卡方分佈和p_value小結

卡方分佈和p_value小結

一、什麼是卡方分佈?什麼是卡方檢驗?卡方檢驗有什麼作用?

n個獨立同分布(標準正態分佈N(0,1))變數的平方和服從自由度為n的卡方分佈。

卡方檢驗的基本思想是:根據樣本資料推斷總體分佈與期望分佈是否有顯著性差異,或者推斷兩個分類變數是否相關或者獨立。 一般可以設原假設為 :觀察頻數與期望頻數沒有差異,或者兩個變數相互獨立不相關。 實際應用中,我們先假設原假設成立,計算出卡方值,卡方表示觀察值與理論值間的偏離程度。

卡方值的計算公式:

  • A是觀察值,即真實統計值;
  • E是理論值(期望頻數),即假設兩個變數不相關情況下的期望值。

卡方檢驗的主要步驟:卡方檢驗分四步,檢驗兩個變數是否關聯

  1. 計算卡方值
  2. 求自由度 (行數 - 1)*(列數 - 1)
  3. 設定顯著性水平值(顯著性水平是假設檢驗中的一個概念,是指當原假設為正確時人們卻把它拒絕了的概率或風險。 它是公認的小概率事件的概率值,必須在每一次統計檢驗之前確定,通常取α=0.05或α=0.01。 這表明,當作出接受原假設的決定時,其正確的可能性(概率)為95%或99%。)
  4. 根據以上計算結果查表

卡方檢驗作用:主要用於分類變數之間的獨立性檢驗,換言之,就是檢驗兩個分類變數之間有沒有關係,推斷兩個分類變數是否相關或相互獨立。
例如,研究學歷對收入的影響是否顯著性;
男性或者女性對線上買生鮮食品有沒有區別;

卡方檢驗python 實現:

 1 from scipy.stats import chi2_contingency
 2 from scipy.stats import chi2
 3 
 4 table = [[10,20,30],[6,9,17]]
 5 print(table)
 6 stat,p,dof,expected = chi2_contingency(table) # stat卡方統計值,p:P_value,dof 自由度,expected理論頻率分佈
 7 print("卡方統計值:",stat)
 8 print('dof=%d'%dof)
 9 print("expected:\n",expected)
10 11 prob = 0.95 # 選取95%置信度 12 critical = chi2.ppf(prob,dof) # 計算臨界閥值 13 print('probality=%.3f,critical=%.3f,stat=%.3f '%(prob,critical,stat)) 14 if abs(stat)>=critical: 15 print('reject H0:Dependent') 16 else: 17 print('fail to reject H0:Independent')
Python結果:[[10, 20, 30], [6, 9, 17]]
卡方統計值: 0.27157465150403504
dof=2
expected:
 [[10.43478261 18.91304348 30.65217391]
 [ 5.56521739 10.08695652 16.34782609]]
probality=0.950,critical=5.991,stat=0.272 
fail to reject H0:Independent

二、什麼是p_value?有什麼用?

p-value:拒絕原假設H0時犯錯誤的概率,即其值越小,越說明拒絕原假設H0 接受備擇假設H1是正確的。
直觀來說,就是犯錯概率越低越好。

也可以解釋為,假定“不靠譜”原假設為真時,得到與樣本相同或者比樣本更極端結果的概率。
例如,原假設“人們拇指平均長度是10cm”,根據樣本資料得到p-value是0.03,這意味著如果人們拇指平均長度是10cm,得到樣本或更極端結果的概率是0.03,小於0.05,這時我們就可以認為原假設不可能成立,即拒絕原假設。這裡需要注意的是,P值不是給定樣本結果時原假設為真的概率,而是給定原假設為真時樣本結果出現的概率。

作用:p-value就是為了驗證假設和實際之間一致性的統計學意義的值,即假設檢驗