数据分析新技能:如何进行Mann-Whitney U检验

Mann-Whitney U检验

Mann-Whitney U检验是一种非参数统计方法,用于比较两个独立样本的分布。它特别适用于数据不满足正态分布或存在异常值的情况,是t检验的非参数替代方法。

一、起源

Mann-Whitney U检验由美国统计学家亨利·曼恩(Henry Mann)和德怀特·惠特尼(Donald Whitney)于1947年提出。它是Wilcoxon秩和检验的独立样本版本,旨在提供一种不依赖于正态性假设的检验方法。

二、原理

Mann-Whitney U检验通过比较两个独立样本的秩次,评估它们是否来自同一分布。它假设两个样本的分布形状相同,只是位置参数不同。检验统计量U的计算公式为:

U = n 1 n 2 + n 1 ( n 1 + 1 ) 2 − R 1 U = n_1 n_2 + \frac{n_1 (n_1 + 1)}{2} - R_1 U=n1n2+2n1(n1+1)−R1

其中:

  • n 1 n_1 n1 和 n 2 n_2 n2 分别为两个样本的样本量。
  • R 1 R_1 R1 为第一个样本的秩次和。

计算出的U值需要与标准的U分布表进行比较,以确定是否拒绝零假设。较小的U值表明两个样本分布有显著差异。

三、步骤
  1. 数据准备:收集两个独立样本的数据。
  2. 合并排序:将两个样本的数据合并并按大小排序,分配秩次。
  3. 计算秩次和:分别计算两个样本的秩次和。
  4. 计算U值:使用公式计算U值。
  5. 确定显著性水平:选择显著性水平,查找U分布表确定临界值,比较U值与临界值。
四、应用场景

Mann-Whitney U检验广泛应用于各个领域,特别是在以下情况下:

  • 比较两种治疗方法对患者效果的差异。
  • 分析不同教学方法对学生成绩的影响。
  • 评估不同市场策略对客户满意度的影响。
五、案例分析

假设我们有一组数据,包含两种不同教学方法下学生的考试成绩。我们希望通过Mann-Whitney U检验评估这两种教学方法对学生成绩的影响。数据如下:

css 复制代码
教学方法A组:85, 78, 92, 88, 76
教学方法B组:80, 74, 88, 82, 78
  1. 数据准备:

    教学方法A组:85, 78, 92, 88, 76

    教学方法B组:80, 74, 88, 82, 78

  2. 合并排序:

    合并两个样本并排序:

    74, 76, 78, 78, 80, 82, 85, 88, 88, 92

  3. 计算秩次和:

    计算两个样本的秩次和:

    教学方法A组秩次和:

    3 + 5 + 6 + 9 + 10 = 33 3+5+6+9+10 = 33 3+5+6+9+10=33

    教学方法B组秩次和:

    1 + 2 + 4 + 7 + 8 = 22 1+2+4+7+8 = 22 1+2+4+7+8=22

  4. 计算U值:

    使用公式计算U值:

    U A = n A n B + n A ( n A + 1 ) 2 − R A = 5 ∗ 5 + 5 ∗ 6 / 2 − 33 = 12 U_A = n_A n_B + \frac{n_A (n_A + 1)}{2} - R_A = 5*5 + 5*6/2 - 33 = 12 UA=nAnB+2nA(nA+1)−RA=5∗5+5∗6/2−33=12

  5. 确定显著性水平:

    在显著性水平0.05下,查找U分布表得出临界值为8。由于U值12 > 8,我们不能拒绝零假设,即两种教学方法对学生成绩没有显著差异。

六、Python代码示例

使用Python进行Mann-Whitney U检验,可以使用scipy库中的mannwhitneyu函数:

python 复制代码
import numpy as np
from scipy.stats import mannwhitneyu

# 数据准备
group_A = np.array([85, 78, 92, 88, 76])
group_B = np.array([80, 74, 88, 82, 78])

# 计算Mann-Whitney U检验
u_stat, p_val = mannwhitneyu(group_A, group_B)
print(f"U统计量: {u_stat}")
print(f"p值: {p_val}")
七、R代码示例

使用R进行Mann-Whitney U检验,可以使用wilcox.test函数:

r 复制代码
# 数据准备
group_A <- c(85, 78, 92, 88, 76)
group_B <- c(80, 74, 88, 82, 78)

# 计算Mann-Whitney U检验
result <- wilcox.test(group_A, group_B)

print(paste("U统计量:", result$statistic))
print(paste("p值:", result$p.value))
八、注意事项
  • Mann-Whitney U检验假设两个样本的分布形状相同,仅位置参数不同。
  • 样本量较小时,U值的精确显著性水平可以通过置换检验或蒙特卡洛方法计算。
  • 如果两个样本的分布形状不同,Mann-Whitney U检验可能不适用,建议使用其他非参数检验方法。
九、总结

Mann-Whitney U检验是一种强大的非参数统计方法,特别适用于比较两个独立样本的分布。通过Mann-Whitney U检验,研究者可以评估不同处理方法、条件或群体之间的差异,为科学研究和决策提供有力支持。

相关推荐
三兔测序学社9 小时前
【零代码生信分析】RNA-seq中级分析8-差异基因集在L2S2网站进行【肿瘤药物】筛选分析
数据分析
追风少年ii16 小时前
六大空间转录组平台全面对比:Visium、Visium HD、Stereo-seq、Xenium、Atera 与 CosMx
数据分析·空间·单细胞
roman_日积跬步-终至千里18 小时前
【数据建模入门】从一家小店看懂数仓与机器学习:先理业务,再串技术
数据仓库·人工智能·机器学习·数据分析·数据建模
钱工的门窗技术笔记1 天前
室内极窄全景移门的支承路径与预留接口:轨道形式、型材壁厚口径与验收边界
物联网·架构·数据分析
quantdash_cc1 天前
如何验证历史行情的交易日期是否完整覆盖研究区间?
python·数据分析·pandas·量化交易·股票数据·quantdash
quantdash_cc1 天前
ETF 行情数据清洗实战:字段语义拆解、标的池整理与五个校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
Leo.yuan2 天前
2026年可信AI数据分析平台研究:主流厂商的可信机制、能力边界与企业选型
人工智能·数据挖掘·数据分析
Highcharts.js2 天前
CSUN 2026|Highcharts无障碍数据与AI分享
javascript·人工智能·数据分析·highcharts·图表开发
梯度下降者2 天前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
benchmark_cc2 天前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash