尽管t检验是比较连续数据均值的优秀工具,但我们遇到的许多数据,尤其是在机器学习的分类任务中,是分类数据。我们如何检验关于频率的假设或检查不同类别之间的关系呢?卡方($\chi^2$)检验提供了一种统计方法来处理这些情况。它们通过比较样本数据中不同类别的观察计数与在特定零假设为真时我们预期会看到的计数来运作。理解卡方统计量任何卡方检验的核心是其$\chi^2$统计量本身。它衡量并总结了每个类别中观察频率($O_i$)与零假设下的预期频率($E_i$)之间的差异。计算遵循以下一般形式:$$ \chi^2 = \sum_{\text{所有类别 } i} \frac{(O_i - E_i)^2}{E_i} $$直观上,如果观察计数与预期计数非常接近,那么差异$(O_i - E_i)$将很小,从而得到一个小的$\chi^2$值。这表明数据与零假设吻合良好。反之,观察计数与预期计数之间的大差异会导致大的$\chi^2$值,这提供了反对零假设的证据。常见的卡方检验两种主要类型的卡方检验与数据分析和机器学习应用尤为相关:卡方拟合优度检验: 当您有一个分类变量,并想确定其观察频率分布是否与特定的理论或假设分布存在显著差异时,会使用此检验。零假设 ($H_0$):观察频率与基于假设分布的预期频率相符。备择假设 ($H_1$):观察频率不与预期频率相符。例子:假设一位网站所有者假设用户流量在工作日(周一至周五,每天20%)均匀分布。他们收集了一个月的每日访问数据。拟合优度检验将比较每个工作日访问量的观察比例与预期比例(20%)。一个显著的结果(大的$\chi^2$)将表明流量不是均匀分布的。卡方独立性检验: 当您有两个分类变量并想确定它们之间是否存在统计上显著的关联或关系时,会使用此检验。它有助于回答问题:“这两个变量是独立的,还是一个变量的类别取决于另一个变量的类别?”此检验的数据通常以列联表的形式呈现。零假设 ($H_0$):这两个变量是独立的(它们之间没有关联)。备择假设 ($H_1$):这两个变量是相关的(它们之间存在关联)。例子:考虑分析客户数据,看“订阅计划”(例如,基本型、高级型、专业型)的选择是否与所使用的“设备类型”(例如,移动设备、桌面设备)相关。列联表将显示每种组合的计数(例如,使用基本计划的移动设备用户数量)。该检验会计算每个单元格的预期计数,假设计划选择和设备类型是独立的。将这些预期计数与观察计数进行比较,即可得出$\chi^2$统计量。如果检验结果显著,则表明订阅计划的选择确实与所使用的设备类型相关。digraph G {rankdir=TB;node [shape=box, style=rounded, fontname="sans-serif", color="#adb5bd"];edge [color="#495057"];ObservedData [label="观察到的分类数据\n(计数/频率)"];Hypothesis [label="零假设\n(例如:独立性、特定分布)"];ExpectedData [label="计算预期计数\n(假设H0为真)"];ChiSqTest [label="卡方检验\n(拟合优度或独立性)", shape=ellipse, color="#228be6", fontcolor="#1c7ed6"];ChiSqStat [label="计算\u03c7\u00b2统计量和\n自由度", color="#20c997", fontcolor="#0ca678"];PValue [label="求P值\n(使用\u03c7\u00b2分布)", color="#fab005", fontcolor="#f59f00"];Decision [label="决定:\n拒绝或未能拒绝H\u2080", shape=parallelogram, color="#f06595", fontcolor="#d6336c"];ObservedData -> ChiSqTest;Hypothesis -> ExpectedData;ExpectedData -> ChiSqTest;ChiSqTest -> ChiSqStat;ChiSqStat -> PValue;PValue -> Decision;} 进行卡方检验的流程是比较观察计数与预期计数(从零假设推导而来),以计算$\chi^2$统计量,进而得出P值和统计决策。自由度与结果解读卡方统计量遵循一种特定的概率分布,即卡方分布。与t分布类似,其形态取决于自由度($df$)。不同检验的$df$计算方式略有不同:拟合优度检验:$df = k - 1$,其中$k$是变量的类别数量。独立性检验:$df = (\text{行数} - 1) \times (\text{列数} - 1)$,基于列联表的维度。知道$\chi^2$统计量和$df$后,我们可以找到与检验结果相关的P值。结果的解读与其他假设检验保持一致:P值表示在零假设实际为真的情况下,从我们的数据中获得一个与计算出的$\chi^2$值一样极端或更极端的$\chi^2$值的概率。一个小的P值(通常小于预定的显著性水平$\alpha$,例如0.05)会使我们拒绝零假设。假设与机器学习中的应用为使卡方检验得出可靠结果,通常应满足以下条件:数据必须以分类变量的频率或计数形式呈现。构成计数的各个观测值应相互独立。每个类别(或列联表中的单元格)的预期频率不应太小。一个常见指导原则是,大多数(例如,>80%)预期频率应为5或更大,并且没有一个应小于1。在机器学习中,卡方检验常用于:特征选择:独立性检验常用于评估分类输入特征与分类目标变量之间的关系(例如,在分类问题中)。与目标显著关联的特征通常被认为对模型更具意义。模型诊断:拟合优度检验可能可用于比较分类模型预测类别的分布与数据集中实际分布,尽管其他指标通常更受青睐。数据查看:在探索性数据分析(EDA)阶段理解分类数据中的关系。卡方检验将我们的假设检验能力扩展到分类数据,为评估分布和关联提供了有价值的方法。Python库如SciPy包含相关函数(例如,用于拟合优度检验的scipy.stats.chisquare,用于独立性检验的scipy.stats.chi2_contingency),使得执行这些检验在计算上变得简单,我们将在后续章节中看到。