非参数检验

1. 常见非参数检验
  • 符号检验signtest
    对两个样本是配对检验。没有考虑差值的幅度,只考虑了差值的正负.
    matlab调用函数sign rank,带有一个参数’method’,取值‘exact’或’approximate’

  • wilcoxon 威尔科克森符号秩检验
    是配对检验,不仅考虑了差值的正负,还考虑了差值的绝对值(幅度)。秩即排名、次序,是差值绝对值的排名。
    matlab调用signrank

  • wilcoxon 威尔科克森秩和检验
    非配对检验,直接对两样本的所有数据进行排名。
    matlab调用ranksum,另见我的参考博客

  • McNemar检验
    观察值得是二分类数据,且以自身为参照
    https://xw.qq.com/amphtml/20191029A0KEGV00
    参考:链接
    McNemar检验适用于两个相关样本比例差异检验
    满足约束与约束不满足
    没有配对关系,但感觉可以用来衡量约束满足的概率是否增大。对

  • Marginal Homgeneity检验
    边际同质性检验

在这里插入图片描述
图片来源:https://zhuanlan.zhihu.com/p/49472487


2. 复杂的例子

因为项目中遇到了需要非参数检验的地方,所以学习了相关的知识。问题如下:
比较两个算法的性能,有在n个实例上跑出来的结果。一个算法在一个实例上跑出来的结果有两个指标。第一个指标是布尔类型,第二个是数值类型。
如果在第一个指标上都为False则直接打平,若一个False一个True则True对应的那个直接占优,只有第一个指标都为True的话才比较第二个指标的数值大小。
这样的场景有什么(统计性)方法比较两算法优劣
在这里插入图片描述
抽象出来应该如下表述:
比较两个样本的差异,每个样本有n个个体,存在配对关系。每个个体有两个指标。第一个指标是布尔类型,第二个是数值类型。
如果在第一个指标上都为False则直接打平,若一个False一个True则True对应的那个直接占优,只有第一个指标都为True的话才比较第二个指标的数值大小。
请问这样有什么(统计性)方法比较两样本优劣吗
在这里插入图片描述
最终方案:先对指标1进行McNemar检验,再对两指标整体进行符号检验,合成一个指标,只需要标记正负就可。
和这个文档里最后一个例题有点像,链接

clc
clear

rng(1)
a = rand(100, 1);
b = rand(100, 1) + 0.2;
% b(1:10) = a(1:10);
[p, h] = signtest(a, b)            % 1  0.0037
a_(a<b) = -1;   % 不能带等号
a_(a>b) = 1;    % 不能带等号
[p, h] = signtest(a_, 0)           % 1  0.0037

3. Matlab的ttest与ttest2

Matlab的 ttest和ttest2,前者是配对检验,后者不是。故
ttest(a,b) != ttest(a, reverse(b)
ttest2(a,b) == ttest2(a, reverse(b)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值