一、卡方值的定義
卡方值,即卡方統計量,是一種用于衡量兩個分類變數之間的相關性的統計量。它的值越大,表示兩個變數之間的相關性越強。
二、卡方值的計算公式
卡方值的計算公式如下:
(Fo - Fe)^2 χ^2 = Σ --------------------------- Fe 其中,Fo 表示觀察值,Fe 表示期望值,χ^2 表示卡方統計量。
根據上面的公式,我們可以分步計算得到卡方值。
三、卡方值的計算步驟
1. 構建列聯表
首先需要構建一個列聯表,用來記錄兩個分類變數的頻數。
A1 A2 A3 ... An B1 f11 f12 f13 ... f1n B2 f21 f22 f23 ... f2n B3 f31 f32 f33 ... f3n ... ... ... ... ... ... Bm fm1 fm2 fm3 ... fmn
其中,B1~Bm 為行分類變數,A1~An 為列分類變數,fij 表示在 B 行 A 列條件下的頻數。
2. 計算期望頻數
根據列聯表可以計算出期望頻數,即每個分組的期望頻數。
A1 A2 A3 ... An Σfi B1 E(B1,A1) E(B1,A2) E(B1,A3) ... E(B1,An) f1• B2 E(B2,A1) E(B2,A2) E(B2,A3) ... E(B2,An) f2• B3 E(B3,A1) E(B3,A2) E(B3,A3) ... E(B3,An) f3• ... ... ... ... ... ... ... Bm E(Bm,A1) E(Bm,A2) E(Bm,A3) ... E(Bm,An) fm• Σfj f•1 f•2 f•3 ... f•n N
其中,E(Bi,Aj) 表示在 A 列條件下 B 行的期望頻數。
3. 計算卡方值
利用上面的公式就可以計算卡方值。
(fij - E(Bi,Aj))^2 χ^2 = Σ --------------------------- E(Bi,Aj)
四、代碼示例
下面的代碼示例演示了如何使用 Python 來計算卡方值。
import numpy as np from scipy.stats import chi2_contingency # 構建列聯表 table = np.array([[10, 20, 30], [40, 50, 60]]) # 計算卡方值和 p 值 stat, p, dof, expected = chi2_contingency(table) print('卡方值:', stat) print('p 值:', p) print('自由度:', dof) print('期望值:\n', expected)
上面的代碼中使用了 numpy 庫中的 np.array 函數來創建一個列聯表,之後使用 scipy 庫中的 chi2_contingency 函數計算出卡方值、p 值、自由度和期望值。
原創文章,作者:KVSO,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/149422.html