R语言做正态分布检验

    首先准备两个样本:

set.seed(0)
a <- runif(100, min = -3, max = 3)
 b <- rnorm(100, mean = 0, sd = 9)

    

    正态分布检验的方法有:

    1. ks.test()

    ks.test函数是R语言自带的函数, 对单样本或双样本做Kolmogorov-Smirnov检验, 是用来检验数据的累计函数是否来自某个确切的分布, 故如果假设的正态分布的均值和方差, 可用ks.test函数进行正态分布检验, ks.test函数的声明如下:

ks.test(x, y, ...,
        alternative = c("two.sided", "less", "greater"),
        exact = NULL)

   x: 向量, 是要验证的数据;

    y: 如果是一个向量, 则验证其和x的累计分布是否一致; 也可以是一个字符串, 比如"pnorm", 指向具有连续型累积分布函数的分布;

    ...: 如果y是一个字符串, 则在这里设置y分布的参数;

    alternative: 备择假设, 默认检验两分布的累计密度分布相同;

    exact: 是否需要计算精确的p值, 默认一个样本, 样本数少于100, 且没有相同值, 或者双样本, 样本数的乘积少于10000时, 会精确计算p值.    


    比如要检验a,b是否来自标准正态分布以及a,b是否来自同一个分布:

ks.test(a,"pnorm", mean = 0, sd = 9)  # 1.692e-12
ks.test(b,"pnorm", mean = 0, sd = 9)  # 0.2196
ks.test(a, b)  # 1.001e-07


    2. shapiro.test()

    shapiro.test函数也是R语言自带的一个函数, 用来做Shapiro-Wilk正态性检验, 函数声明如下:

shapiro.test(x)

    x: 需要做正态性检验的数据, 非缺失值个数应在3到5000个.

    

    比如要检验a,b是否来自正态分布:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值