K-S检验两样本分布是否相同

K-S检验可以用来检验一组样本是否符合某种特定的分布(如正态分布),也可以用来检验两组样本分布的匹配程度。

有两组样本 :A:1,2,3,4,5,6,7,8,9,10

                       B:2,4,6,8,10,11,12,13,14,15

零假设是两种分布相同,拒绝零假设就是两种分布不同

合在一起从小到大排序为:

        1,2,2,3,4,4,5,6,6,7,8,8,9,10,10,11,12,13,14

第一个数1,A中小于等于1的值有1个,除以样本数10,得0.1

第二个数2,A中小于等于2的值有2个,除以样本数10,得0.2

......

得到A的经验分布函数:

0.1,0.2,0.2,0.3,0.4,0.4,0.5,0.6,0.6,0.7,0.8,0.8,0.9,1,1,1,1,1,1,1

B的经验分布函数:

0.0,0.1,0.1,0.1,0.2,0.2,0.2,0.3,0.3,0.3,0.4,0.4,0.4,0.5,0.5,0.6,0.7,0.8,0.9,1

D值就是这两个经验分布函数的最大差值,这个例子中是0.5。

在python中,可以用scipy.stats,ks_2samp实现两样本的K-S检验:

import numpy as np
from scipy.stats import ks_2samp

data0 = [1,2,3,4,5,6,7,8,9,10]
data1 = [2,4,6,8,10,11,12,13,14,15]
#scipy.stats.ks_2samp(data1, data2, alternative='two-sided', mode='auto')
#date1,date2是要进行比较的两个数据集,alternative默认是'two-sided',mode默认是'auto'
ks_2samp(data0, data1)

得到 Ks_2sampResult(statistic=0.5, pvalue=0.1108403374132281)

其中statistic就是之前所说的D值,pvalue即p值是用于判断原始假设是否正确的重要证据。这里p值表示如果认为两组样本分布不一致(即拒绝两样品分布相同的零假设)有大约0.11的概率是错的。一般如果它>0.05,就认为不能认为两组样本分布不一致。也就是认为两组样品分布是一致的。

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值