一 同分布检验
1.1 判断数据是否来自于某种分布
#产生100个标准正态分布随机数 x <- rnorm(100) #用kolmogorov-Smirnov检验数据是否符合正态分布 ks.test(x, "pnorm", 0, 1)
p值大于0.05,接受原假设,即原数据符合正态分布。
1.2 判断两组数据是否同分布
#产生100个标准正态分布随机数 x <- rnorm(100) #产生60个均匀分布随机数 y <- runif(60) #用kolmogorov-Smirnov检验数据x与y是否同分布 ks.test(x, y)
p值小于0.05,所以x与y分布不一样。
非参数检验,kolmogorov-Smirnov检验是通过经验分布于假设分布的上确界来构造统计量,因此理论上可以检验任何分布,即原假设
H0: X具有分布F
H1:X不具有分布F
类似的检验统计方法有Pearson拟合优度x^2(卡方)检验。两个检验相比,ks检验不需要将样本分组,少了一个任意性。缺点是只用在理论分布为一维
连续分布且完全已知的情形,试用面比Pearson检验小。研究显示,在ks检验可用的情况下,其功效一般来说略优于Pearson检验。
1.3 判断一组数据是否同分布
#检验样本的参数是否是随机变量 test <- function(x, alpha=0.05){
t <- mean(x) n <- length(x) y <- var(x) za <- 1.64 if(alpha==0.1){ za <- 1.28 }else if(alpha == 0.01){ za <- 2.33 } if(y >= t*(1+sqrt(2/n)*za)){ ret <- 1 }else{ ret <- 0 } return (ret) }
二 独立性检验
2.1 列联表数据的独立性检验
设两个随机变量X,Y是离散型的,X取值于{a1,a2,a3....,an},Y取值于{b1,b2,b3....,bn}.
设(X1,Y1),(X2,Y2),(X3,Y3),....,为简单样本,记nij为(X1,Y1),(X2,Y2),(X3,Y3)...,中等于(ai,bj)的个数,
要据此检验假设 H0:X与Y独立
为了研究吸烟是否与患肺癌有关,对63位肺癌患者及43名非患癌患者(对照组)调查了其中的吸烟人数,得到2X2列联表
患肺癌 未患肺癌 合计
吸烟 60 32 92
不吸烟 3 11 14
合计 63 43 106
#输入数据,用chisq.test()检验 x <- c(60, 3, 32, 11) dim(x) <- c(2, 2) chisq.test(x, correct=FALSE)
p值小于0.05,拒绝原假设,也就是吸烟与肺癌有关。类似的检验还有Fisher检验,McNemar检验等。
2.2 一组数据的独立性检验
独立性检验主要检验数据r1,r2,...rn中前后的统计相关性是否显著。我们知道,两个随机变量的相关系数反应了他们之间的
线性相关程度,若两个随机变量相互独立,则他们的相关系数必为0(反之不一定)。因此,可以用相关系数来检验随机变量的独立性。
给定随机数r1.r2.r3,...rk,计算前后相距k的样本的相关系数
对若干不同的k值做检验,提出原假设.若假设成立,则当n-k充分大是,统计量渐进与标准正态分布N(0,1).
在给定显著性水平下,若拒绝原假设,则可认为r1.r2.r3,...rk有一定的线性相关性,则他们不是独立的。
mylag <- function(obj, k=1){ ret <- vector(length=length(obj)-k) for(i in ((k+1):length(obj))){ ret[i-k] = obj[i] } return (ret) } Indtest <- function(x){ n <- length(x) s <- var(x) me <-mean(x) ret <- vector(length=n-1) for(i in (1:(n-1))){ ret[i] = ((1/(n-i))*sum(x[1:(n-i)]*mylag(x,k=i))-me**2)/s } return (ret) } #检验数据独立性 x <- rnorm(100) y <- Indtest(x) ks.test(y, "pnorm", 0, 1)
参考资料
1 《统计建模与R软件》 薛毅等 2007
2 《非寿险精算》 韩天雄 2011
3 R帮助文档 help(Distributions) http://127.0.0.1:20350/library/stats/html/Distributions.html
4 Kolmogorov-Smirnov Test http://www.physics.csbsju.edu/stats/KS-test.html