曼慧尼特u检验(两个样本数据间有无差异)

曼-惠特尼U检验是一种非参数检验,用于比较两个独立样本间是否存在显著差异。它不依赖于数据的分布,通过计算秩和来评估差异。检验的步骤包括混合数据排序、计算等级和、比较统计量U与临界值。例如,在比较两种菜粕干物质降解率时,若U值大于临界值,则认为两者无显著差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

曼-惠特尼U检验(Mann-Whitney检验)

How the Mann-Whitney test works

Mann-Whitney检验又叫做秩和检验,是比较没有配对的两个独立样本的非参数检验。思想是这样的:假定要检验两组数据之间有没有差异。首先,不管分组把所有数据排序。按照数值大小给定一个值叫做秩。最小的值秩为1,最大的为N(假定两个样本总共有N个观察值)。如果有相同的值,就得到相同的秩。相同的值的秩是他们的秩的平均值。如果两组的秩的和差距比较大,就会得出较小的p值,认为这两组间有显著差异。

How to think about the results of a Mann-Whitney test

样本量太小的话效度会很低。比如,如果总的数据只有7个或者更少的话,p值总是大于5%的。

Is the Mann-Whitney test the right test for these data?

分析之前要先看一下,Mann-Whitney 检验是否适合手头的问题。

问题

解释

“误差”是独立的吗?

“误差”指的是每个值和中位数的差异。仅当误差的分布是随机的时候Mann-Whitney 检验的结果才有意义。一般要保证独立样本。样本不独立可能会导致误差不随机。

数据是配对的吗?

如果数据是配对的,应该用Wilcoxon成对检验。

是只比较两组数据吗?

Mann-Whitney 检验只用于两组数据的比较。如果要比较多组数据,可以用 Kruskal-Wallis 检验。用几次 Mann-Whitney 检验来比较多个组间的差异是不适合的,就如同ANOVA 不能用多次t检验代替一样。

两个分布的形状是相同的吗?

Mann-Whitney 检验不需要假定数据符合某种分布,但是要求两个分布是相同的。如果两组的分布差异比较大,可能需要数据转换使之相近。

是否比较中位数?

Mann-Whitney 检验比较的是两组的中位数。

数据分布时正态的吗?

非参数检验的好处和弱点是不需要假定数据符合某种分布。非参数检验有时候更适合(当数据分布未知时),有时候效度较低(当已知分布时参数检验效度更高)。所以如果数据能够转换为正态分布,t检验将会有更高的效度。

曼-惠特尼U检验的步骤

Computation of the U test begins by arbitrarily designating two samples as group 1 and group 2.the data from the two groups are combined into one group ,with each data value retaining a group identifier of its original group.the pooled values are then ranked from 1 to n,with the smallest value being assigned a rank of 1.

The sum of the ranks of Values from group 1 is computed and designated as W1 and the sum of the ranks of values from group 2 is designated as W2.[1]

  该方法的具体步骤如下:

  第一步:将两组数据混合,并按照大小顺序编排等级。最小的数据等级为1,第二小的数据等级为2,以此类推(若有数据相等的情形,则取这几个数据排序的平均值作为其等级)。

  第二步:分别求出两个样本的等级和W1W2

  第三步:计算曼-惠特尼U检验统计量,n1为第一个样本的量,n2为第二个样本的量:

U_1=n_1n_2+\frac{n_1(n_1+1)}{2}-W_1
U_2=n_1n_2+\frac{n_2(n_2+1)}{2}-W_2

  选择U1U2中最小者与临界值Uα比较,当U < UA时,拒绝H0,接受H1

  在原假设为真的情况下,随机变量U的均值和方差分别为:

  E(U)=\frac{n_1n_2}{2}  D(U)=\frac{n_1n_2(n_1+n_2+1)}{12}

  当n

泰坦尼克号生存数据集是一个经典的数据科学入门案例,通常用于机器学习中的预测任务,比如预测乘客是否能够在泰坦尼克号沉船事故中幸存下来。Python中有许多库可以帮助我们处理这个数据集,如pandas用于数据读取和清洗,matplotlib和seaborn用于数据可视化,sklearn用于模型训练和评估。 下面是一个简单的Python代码示例,展示了如何加载数据、预处理数据并使用决策树分类器进行分析: ```python # 导入所需库 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score # 加载数据 url = "https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv" data = pd.read_csv(url) # 数据预处理 data['Sex'] = data['Sex'].map({'male': 0, 'female': 1}) # 将性别转换为数字 data.drop(['Name', 'Ticket', 'Cabin'], axis=1, inplace=True) # 可选:删除某些非数值特征 data['Age'].fillna(data['Age'].mean(), inplace=True) # 填充缺失的年龄值 data['Embarked'].fillna(data['Embarked'].mode()[0], inplace=True) # 填充缺失的登船港口 # 定义特征和目标变量 features = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare'] X = data[features] y = data['Survived'] # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 训练决策树模型 model = DecisionTreeClassifier() model.fit(X_train, y_train) # 预测和评估 predictions = model.predict(X_test) accuracy = accuracy_score(y_test, predictions) print(f"Accuracy: {accuracy * 100}%") # 可视化决策树(使用如Graphviz等库) # tree.export_graphviz(model, out_file='tree.dot') # 这部分依赖于特定的可视化工具 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值