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

如何合并观测与期望频率矩阵以计算卡方(χ²)统计量

解决方案

首先将两个矩阵转换为数据框,方便进行合并操作:

# 转换为数据框并命名列
observed_df <- as.data.frame(Observed)
colnames(observed_df) <- c("value", "observed_freq")

expected_df <- as.data.frame(Expected)
colnames(expected_df) <- c("value", "expected_freq")

接下来按value列合并两个数据框,保留所有数值,缺失的频率用0填充(卡方计算要求每个类别都有观测和期望频率):

# 合并数据框
merged_df <- merge(observed_df, expected_df, by = "value", all = TRUE)

# 将缺失的频率替换为0
merged_df$observed_freq[is.na(merged_df$observed_freq)] <- 0
merged_df$expected_freq[is.na(merged_df$expected_freq)] <- 0

合并后的merged_df会包含所有唯一的value,以及对应的观测和期望频率,格式示例如下:

valueobserved_freqexpected_freq
1249284
2454358
.........

最后计算卡方统计量,将观测和期望频率整理为向量传入chisq.test:

# 提取频率向量
obs <- merged_df$observed_freq
exp <- merged_df$expected_freq

# 计算卡方统计量(需将期望频率转换为概率占比)
chi_result <- chisq.test(obs, p = exp / sum(exp))

# 查看结果
print(chi_result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:05:25