统计分析方法-非参数检验-python


前言

记录一下自非参数检验的学习过程,如有不对请纠正。

非参数检验

非参数检验是一类统计检验方法,它不对数据的分布作出严格假设,尤其是正态性假设。与参数检验(如t检验、ANOVA)不同,非参数检验不需要数据符合特定的分布,因此在处理不符合正态分布的数据或分类数据时非常有用。

特点

无需分布假设: 不要求数据符合特定的分布,如正态分布。
适用于各种数据类型: 不仅适用于连续型数据,还适用于有序数据和分类数据。
鲁棒性: 对异常值和数据的分布形态不敏感。
应用广泛: 常用于小样本和分布未知的数据集。

常见的非参数检验

Mann-Whitney U检验:用于比较两个独立样本的中位数。
Wilcoxon Signed-Rank Test:用于比较两个相关样本的中位数差异。
Kruskal-Wallis检验:用于比较多个独立样本的中位数。
Friedman检验:用于比较多个相关样本的中位数。(至少三组)

注:这些非参数检验在小样本的情况下至少需要5个样本。

一、Cliff’s Delta

Cliff’s Delta(Cliff’s δ)是一个非参数检验,用于衡量两个独立样本之间的差异。它通过比较两个样本的每对数据点来评估一个样本中的值在另一个样本中的值之前或之后出现的频率。(一般用于假设检验的有用补充分析)
The Cliff’s Delta statistic is a non-parametric effect size measure that quantifies the amount of difference between two groups of observations beyond p-values interpretation. This measure can be understood as a useful complementary analysis for the corresponding hypothesis testing.

动机

大致意思:认为非参数检验中仅靠p-value只能表明A和B存在显著差异,但是其差异量的大小是未知的。参考链接
The main contribution of ESMs to the correct interpretation of hypothesis testing has been earlier noticed by Fisher (1925), who argued that p-values do not really inform about the magnitude of a difference between two groups of observations. For example, if treatments A and B produce a statistically significant difference on the dependent variable, the amount of such discrepancy remains unknown. It is correctly concluded that the difference is important, but the researcher can not claim how important it is.

定义

Cliff’s Delta表示两个组的效果大小,范围在-1到1之间:

δ = 1 表示所有值在样本A中都大于样本B。
δ = -1 表示所有值在样本B中都大于样本A。
δ = 0 表示两个样本没有差异。

具体的假设,例如δ>0.33时,则认为ES(effect size)较大。
在这里插入图片描述

二、Wilcoxon Signed-Rank Test

Wilcoxon Signed-Rank Test(威尔科克森符号秩检验)是一个非参数统计检验,用于比较两个相关样本或配对样本的中位数差异。它是一种用于检验配对差异是否对称分布的无假设检验方法。

定义

该检验用于评估在一组配对数据中的差异是否显著。适用于:

1.两个配对样本。
2.相关样本之间的比较。
3. 如果p-value的值小于0.05(统计学中一般有0.1,0.05以及0.01),则说明配对样本之间的差异显著。

三、 Friedman检验

Friedman检验是一种非参数统计检验,用于比较多个相关样本(配对样本)的中位数差异。它是用于检测多组相关样本之间是否存在显著差异的有效方法,通常用于重复测量设计或块设计中的数据分析。

适用场景

重复测量设计: 同一组对象在不同条件下的测量结果。
块设计: 实验对象被分成多个块,每个块中的实验对象在所有处理条件下都进行测量。

公式

在这里插入图片描述

在这里插入图片描述
注:本领域一般使用Friedman计算三组样本之间是否存在显著性差异,如果存在。则继续使用其它非参数检验比较两组之间的显著性差异。

python 代码

Wilcoxon Signed-Rank Test和 cliffs delta

from scipy import stats
def cliffs_delta(lst1, lst2):
    """Cliff's Delta test"""
    from cliffs_delta import cliffs_delta

    return cliffs_delta(lst1, lst2)
def wilcoxon_signed_rank_test(lst1, lst2):
    """Wilcoxon Signed-Rank Test"""
    return stats.wilcoxon(lst1, lst2)

data1 = [93.40 ,98.69,99.87,99.31 ,99.77 ,97.84]
data2 = [93.4,96.77,97.71,91.67,97.97 ,95.73]

cliffs_delta_value = cliffs_delta(data1, data2)
wilcoxon_statistic, wilcoxon_p_value = wilcoxon_signed_rank_test(data1, data2)

print("Cliff's Delta:", cliffs_delta_value)
print("Wilcoxon Signed-Rank Test p-value:", wilcoxon_p_value)

Friedman

# -- coding:utf-8 --
import numpy as np
import scipy.stats as stats

# 示例数据,表示三个模型在六个数据集上的性能
# 计算方差和均值是为了比较在模型的总体稳定性和泛化性。
model1 = [93.40 ,96.77 ,97.71 ,91.67 ,97.97 ,95.73]
model2 = [85.85 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天不熬夜!

你的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值