首页 > 编程知识 正文

ks正态分布检验,如何进行正态分布检验

时间:2023-05-03 22:30:23 阅读:166726 作者:2467

Kolmogorov-Smirnov是一种频率分布f(x )和理论分布f(x )或两种观测值分布比较的检验方法。 其原始假设H0:两个数据分布一致或数据符合理论分布。 d=max|f(x )-g ) x|,实际观测值DD(n,)拒绝H0,否则接受H0假设。

KS检查与t-检查等其他方法不同,KS检查不需要知道数据的分布,可以说是一种非参数化检查方法。 当然,这种方便的代价是,在检验的数据分布符合特定分布的情况下,KS检验的灵敏度不如相应的检验高。 在样本量较小的情况下,KS检验的最不参数检验在分析两组数据之间是否存在差异时十分常用。

PS:t-检验假设是检验的数据满足正态分布。 否则,对于小样本不满足正态分布的数据使用t-检验会产生较大的偏差。 对于大样本不满足正态分布的数据,t检验是相当准确有效的手段。

假设验证的基本思路:

如果对整体的某个假设是真实的,那么对该假设不利或不能支持的事件a在一次实验中几乎不可能发生。 如果事件a真的发生了,就有理由怀疑该假设的真实性,并拒绝该假设。

实质性分析:

假设检验实质上检验的是原始假设是否正确,在检验过程中必须对原始假设进行维护,以免被轻易拒绝; 否定原来的假设必须有充分的理由。 同时,当原假设被接受时,只能认为否定该假设的依据不充分,不能认为是绝对正确的。

1、检查给定数列是否服从正态分布

根据假设检验的思想,利用K-S检验可以检验数列的性质并查看代码:

from scipy.stats import kstest

导入编号为NP

x=NP.random.normal (0,1,1000 ) )。

test_stat=kstest(x,' norm ' ) )。

test_stat

(0.021080234718821145、0.76584491300591395 )。

首先,生成1000个服从n (0,1 )标准正态分布的随机数,利用k-s验证该数据是否服从正态分布,假设x来自正态分布。

如果最终返回的结果是p-value=0.76584491300591395,大于指定的显著水平(假设5% ),则不能拒绝假设x服从正态分布。

这并不是说x服从正态分布一定是正确的,而是没有充分的证据证明x不服从正态分布。 因此我们的假说被接受,认为x服从正态分布。

如果p-value小于我们指定的显著水平,我们肯定拒绝提出的假设,认为x一定不服从正态分布,这个拒绝是绝对正确的。

2、检查指定的两个数列是否服从同一分布

from scipy.stats import ks_2samp

贝塔=NP.random .贝塔(7,5,1000 ) )。

norm=NP.random.normal (0,1,1000 ) )。

ks _2samp (beta,norm ) ) ) ) ) )。

(0.6009999999998,4.7405805465370525 e-159 ) )。

首先利用beta分布和normal分布生成两个样本大小为1000的数列,利用ks_2samp验证这两个数列是否来自同一个样本,并假设beta和norm遵循相同的分布。

如果最终返回的结果是p-value=4.7405805465370525 e-159,小于指定的显著水平(假设为5% ),则可以完全拒绝假设beta和基因组不遵循相同的分布。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。