基本含义:
卡方检验通过比较两项或多项频数,检测在一定显著水平上实际频数与以某种理论模型或分布特征假设为基础的期望频
数的差异度。具体地来讲,卡方检验就是比较实际次数与期望次数(或理论次数)之间是否
有显著差异。
卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,卡方值的大小由实际观测值与理论推断值之间的偏离程度绝对决定,偏离程度越大,卡方值就越大,理论值就
越不符合实际值;偏离程度越小,卡方值就越小,理论值就越符合实际值;当实际值与理论
值完全相等时,卡方值
0
,表明理论值完全符合实际值
公式:
上面的这个公式可以简化为下面的2x2列联表:
参数解释:
①卡方值
-
K的平方越大:说明实际观测值与理论期望值的差异越大。换句话说,越大的卡方值表明变量之间的差异更显著,意味着变量之间可能存在关联。因此,当 K的平方较大时,通常表明变量之间有显著关联。
-
K的平方越小:当 K的平方值接近于 0,表示实际观测值与理论期望值非常接近,意味着变量之间没有明显的差异,推测它们之间没有关联。
②p-value
p-value(显著性概率)是统计学中用于衡量一个统计结果显著性的数值。在假设检验中,p-value表示假设原假设为真的情况下,得到至少与实际观察到的结果一样极端的结果的概率。
通常与0.05进行比较。
代码实现:
import pandas as pd
import scipy.stats as stats
# Load the Excel file
file_path = '卡方分布.xlsx'
excel_data = pd.ExcelFile(file_path)
# Load the data from the first sheet
sheet1_data = pd.read_excel(excel_data, sheet_name='Sheet1')
# Extract the values from the table
a = sheet1_data.iloc[0, 1] # 康复 (B=1) & 服药 (A=1)
b = sheet1_data.iloc[0, 2] # 未康复 (B=0) & 服药 (A=1)
c = sheet1_data.iloc[1, 1] # 康复 (B=1) & 不服药 (A=0)
d = sheet1_data.iloc[1, 2] # 未康复 (B=0) & 不服药 (A=0)
# Total number of observations
n = a + b + c + d
# Compute the chi-square statistic
chi_square = (n * (a * d - b * c)**2) / ((a + b) * (c + d) * (a + c) * (b + d))
# Degrees of freedom for 2x2 table is 1
df = 1
# Calculate the p-value
p_value = 1 - stats.chi2.cdf(chi_square, df)
# Display results
print(chi_square)
print(p_value)
①卡方值
22.363095238095237(越大越好)
②p-value
这里的p值是 2.2566900917952992e-06,远远小于0.05。因此,我们可以拒绝原假设,认为变量A和变量B之间存在显著的关联性。这意味着服药与否和康复与否之间有关联。
资源获取:
通过网盘分享的文件:卡方分布.zip
链接: https://pan.baidu.com/s/1e5L2ghOgBLa1Dpe-LRcHMw?pwd=x5qi 提取码: x5qi
--来自百度网盘超级会员v5的分享
好啦,希望能够帮助到大家!