机器学习 - 比较检验

2024-07-06 1097阅读

列联表

列联表(Contingency Table)是一种用于显示两个或多个分类变量之间关系的表格。它广泛应用于统计学中的分类数据分析,尤其在独立性检验和关联性分析时。列联表的每个单元格展示了相应分类变量组合的频数(或比例)。

列联表的结构

列联表通常呈现为矩阵形式,行和列表示不同的分类变量。例如,一个简单的2x2列联表如下:

变量B的类别1变量B的类别2
变量A的类别1ab
变量A的类别2cd

其中:

  • a, b, c, d分别表示变量A的不同类别与变量B的不同类别组合的频数。

    列联表的应用

    1. 卡方检验(Chi-Square Test):用于检验两个分类变量之间是否存在统计显著性的关联。
    2. Fisher精确检验(Fisher’s Exact Test):当样本量较小时,Fisher精确检验比卡方检验更合适。
    3. McNemar检验:用于配对样本的二分类数据,常用于前后对比实验中的数据分析。
    4. 独立性检验:通过分析列联表,确定两个变量是否相互独立。

    示例

    假设我们有一个关于是否喜欢某种产品的调查,调查结果包括性别和是否喜欢产品两个变量。可以用一个2x2列联表来表示:

    性别 \ 喜欢产品
    男性3020
    女性2525

    这个列联表展示了男性和女性分别喜欢和不喜欢产品的频数。

    总结

    列联表是一种显示两个或多个分类变量之间关系的表格。通过分析列联表中的频数分布,可以了解变量之间的关联性,并进行统计检验。

    交叉验证t检验

    交叉验证是一种评估机器学习模型性能的方法。它通过将数据集分成若干个子集,反复训练和验证模型来评估其性能稳定性和预测能力。常用的交叉验证方法包括k折交叉验证和留一法。

    t检验是一种统计方法,用于比较两组数据的均值是否存在显著差异。常见的t检验类型包括:

    • 独立样本t检验:用于比较两个独立样本的均值。
    • 配对样本t检验:用于比较同一组样本在不同条件下的均值。

      交叉验证t检验结合交叉验证与t检验,通过交叉验证评估模型性能,并使用t检验判断性能差异是否显著。交叉验证t检验并不是基于列联表的,它侧重于连续数据的均值比较。

      McNemar检验

      McNemar检验是一种非参数统计检验,用于比较配对样本的二分类数据,常用于分析前后变化的数据。例如,评估某种治疗方法前后患者症状的改善情况。McNemar检验使用2x2列联表,其中包含两个分类变量的频数分布:

      事件B发生事件B不发生
      事件A发生ab
      事件A不发生cd

      McNemar检验通过比较b和c的差异来判断两个分类变量是否具有显著变化。它确实是基于列联表的。

      实例与公式

      卡方检验

      公式:

      [ \chi^2 = \sum \frac{(O_i - E_i)^2}{E_i} ]

      其中,( O_i ) 是观察频数,( E_i ) 是期望频数。

      示例:

      假设我们有一个列联表如下:

      喜欢不喜欢
      男性3020
      女性2525

      我们可以使用卡方检验来判断性别和是否喜欢产品之间是否存在关联。

      import scipy.stats as stats
      # 构建列联表
      data = [[30, 20], [25, 25]]
      # 进行卡方检验
      chi2, p, dof, expected = stats.chi2_contingency(data)
      print(f"Chi2: {chi2}, p-value: {p}")
      
      McNemar检验

      公式:

      [ \chi^2 = \frac{(b - c)^2}{b + c} ]

      示例:

      假设我们有如下2x2列联表用于McNemar检验:

      后者阳性后者阴性
      前者阳性105
      前者阴性1520

      我们可以使用McNemar检验来分析前后情况的变化。

      import statsmodels.api as sm
      # 构建列联表
      data = [[10, 5], [15, 20]]
      # 进行McNemar检验
      result = sm.stats.mcnemar(data)
      print(f"Chi2: {result.statistic}, p-value: {result.pvalue}")
      

      以上代码展示了如何使用Python进行卡方检验和McNemar检验的具体操作。通过这些实例和公式,可以更好地理解这些检验方法的应用和实现。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]