You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中基于Category列对Value列执行CHITEST?

如何在Excel中基于多组Category数据执行CHITEST卡方检验?

嘿,我懂你的痛点——Excel自带的CHITEST示例大多只用两行数据,但其实这个函数完全支持任意行数和列数的矩阵,只要观测值和期望值的维度完全匹配就行。结合你的数据,我给你一步步拆解实现方法:

1. 先搞懂CHITEST的核心规则

CHITEST的语法很简单:

=CHITEST(actual_range, expected_range)

两个参数的核心要求:

  • actual_range:你的观测频数矩阵(按Category分组后,不同Value区间的实际数量)
  • expected_range:对应的期望频数矩阵(通过统计公式算出的理论值)
    两者必须是行数、列数完全一致的单元格区域——这是唯一的硬性要求,根本不限定只能两行。

2. 构建观测值矩阵

首先得把你的原始数据转换成「Category × Value分组」的频数统计表:

第一步:给Value划分区间

根据你的数据分布,我把Value分成了3个区间(你可以按需调整规则):

  • 低:≤50
  • 中:51-99
  • 高:≥100

第二步:统计每个Category在各区间的数量

对着你的原始数据统计后,得到观测频数表:

低(≤50)中(51-99)高(≥100)
Category A112
Category B210

把这个表格的数值部分输入到Excel的空白区域(比如A10:C11)。

3. 计算期望值矩阵

期望值的计算公式是:(当前行的总计 × 当前列的总计) / 总样本数
举个例子,Category A的「低」组期望值:(4×3)/7 ≈1.714(A组共4个样本,低区间共3个样本,总样本数为7)
按这个公式算出所有单元格的期望值,得到:

低(≤50)中(51-99)高(≥100)
Category A~1.714~1.143~1.143
Category B~1.286~0.857~0.857

把这个结果放到另一个空白区域(比如E10:G11)。

4. 执行CHITEST计算

现在直接调用函数,把观测值和期望值的区域填进去:

=CHITEST(A10:C11, E10:G11)

按下回车,就能得到卡方检验的p值了。

额外注意事项

  • 如果你的需求是检验「Category和Value的关联性」,上面的方法完全适用;如果是检验拟合度(比如看Category A的Value是否符合某个理论分布),只需要把期望值换成对应的理论频数即可。
  • 要是期望频数里有单元格数值小于5,CHITEST的结果可能会不准确——这时候可以合并相邻的分组来解决这个问题。

内容的提问来源于stack exchange,提问作者Kasra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:22:57