卡方分布和p_value小结
一、什么是卡方分布?什么是卡方检验?卡方检验有什么作用?
n个独立同分布(标准正态分布N(0,1))变量的平方和服从自由度为n的卡方分布。
卡方检验的基本思想是:根据样本数据推断总体分布与期望分布是否有显著性差异,或者推断两个分类变量是否相关或者独立。 一般可以设原假设为 :观察频数与期望频数没有差异,或者两个变量相互独立不相关。 实际应用中,我们先假设原假设成立,计算出卡方值,卡方表示观察值与理论值间的偏离程度。
卡方值的计算公式:
- A是观察值,即真实统计值;
- E是理论值(期望频数),即假设两个变量不相关情况下的期望值。
卡方检验的主要步骤:卡方检验分四步,检验两个变量是否关联
- 计算卡方值
- 求自由度 (行数 – 1)*(列数 – 1)
- 设定显著性水平值(显著性水平是假设检验中的一个概念,是指当原假设为正确时人们却把它拒绝了的概率或风险。 它是公认的小概率事件的概率值,必须在每一次统计检验之前确定,通常取α=0.05或α=0.01。 这表明,当作出接受原假设的决定时,其正确的可能性(概率)为95%或99%。)
- 根据以上计算结果查表
卡方检验作用:主要用于分类变量之间的独立性检验,换言之,就是检验两个分类变量之间有没有关系,推断两个分类变量是否相关或相互独立。
例如,研究学历对收入的影响是否显著性;
男性或者女性对线上买生鲜食品有没有区别;
卡方检验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就是为了验证假设和实际之间一致性的统计学意义的值,即假设检验