Table of Contents
1 概率分布的检验
- 筛子是否均衡的检验
考虑如下问题: 一枚骰子, 投掷600次, 出现1点到6点的次数如下
Table 1: 骰子投掷次数数据 1 2 3 4 5 6 100 112 123 87 90 88 试问骰子是否均匀
- 检验问题
- 设骰子点数记为随机变量 Y , 取值为 1,2,⋯,6 的概率分别为 p1,⋯,p6
- 检验如下假设: 原假设: H0:p1=p2⋯=p6=1/6
- 对立假设为: p1,⋯,p6 不全相等
- 采用哪个统计量来度量
- 卡方拟合优度检验
- npi 为 n 次抛掷中 出现 i 点的理论频数
- 记 ni 为n次抛掷中出现 i 点的次数
- 取检验统计量为
χ2=∑i=16(ni−npi)2npi
- 可以证明在原假设成立的条件下, 当样本量趋近于
∞
时, 有
χ2∼χ2(6−1)
- 上述检验方法可以推广到概率不均等的情况
- 简单情形下定理的验证
- 对于(0,1) 分布, 检验 Y 取值为1 的概率是否为 p
- 此时卡方统计量为
χ2=(Y−np)2np+((n−Y)−n(1−p))2n(1−p)=(Y−np)2(1np+1n(1−p))=(Y−np)2np(1−p)=(Y−npnp(1−p)−−−−−−−−√)2∼χ2(1)
- 卡方拟合优度的应用 -彩票数据
- 彩票0-9 出现概率是否相同
- 分布拟合
Table 2: 近100期 6+1 彩票开奖号码-部分数据 12112 2 6 2 3 9 8 3 12113 0 5 0 1 7 8 1 12114 9 2 9 2 4 1 9 12115 7 9 6 6 2 9 1 12116 8 2 2 1 9 1 9 - 数据读取和检验结果
- 在R软件中采用
chisq.test
函数进行卡方拟合优度检验 - 首先给出 0-9 的频数统计
caipiao<-as.matrix(read.table("data/caipiao.csv",header=F,sep=",")) sj<-as.numeric(caipiao[,-1]) a<-table(sj);names(a)<-0:9 t(a)
0 1 2 3 4 5 6 7 8 9 [1,] 71 71 71 59 79 69 76 69 67 68
- 在R软件中采用
- 彩票数字均匀性检验
chisq.test(a)
Chi-squared test for given probabilities data: a X-squared = 3.6571, df = 9, p-value = 0.9325
2 如何验证分布服从正态分布
- R 和matlab中的专门函数
- 在R有专门的函数对数据的正态性进行检验,如
- ‘shapiro.test’ which performs the Shapiro-Wilk test for normality.
- 'ks.test' Perform a one- or two-sample Kolmogorov-Smirnov test.
- 在Matlab中也有专门的函数
- jbtest 实现 Bera-Jarque 检验
- lillietest 实现Lilliefors 检验
- kstest 实现了Kolmogorov-Smirnov 检验,可以检验分布和位置参数
- 在R有专门的函数对数据的正态性进行检验,如
- R 中正态分布检验举例
set.seed(1314) x<-rnorm(200) y<-runif(200) shapiro.test(x) shapiro.test(y)
Shapiro-Wilk normality test data: x W = 0.99, p-value = 0.1797 Shapiro-Wilk normality test data: y W = 0.9506, p-value = 2.136e-06
- matlab进行lillietest检验
x=normrnd(0,1,200,1); lillietest(x) y=unifrnd(0,1,200,1); lillietest(y)
x=normrnd(0,1,200,1); lillietest(x) ans = 0 y=unifrnd(0,1,200,1); lillietest(y) ans = 1
ans=0
表示接受原假设,ans=1
表示拒绝原假设