R : Copyright 2000, The R Development Core Team Version 1.2.0 Under development (unstable) (2000-11-09) R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type "?license" or "?licence" for distribution details. R is a collaborative project with many contributors. Type "?contributors" for a list. Type "demo()" for some demos, "help()" for on-line help, or "help.start()" for a HTML browser interface to help. Type "q()" to quit R. > ## > ## RNG tests using DKW inequality for rate of convergence > ## > ## P(sup F_n-F >t)<2exp(-2nt^2) > ## > ## The 2 in front of exp() was derived by Massart. It is the best possible > ## constant valid uniformly in t,n,F. For large nt^2 this agrees with the > ## large-sample approximation to the Kolmogorov-Smirnov statistic. > ## > > > superror<-function(rfoo,pfoo,sample.size,...){ + x<-rfoo(sample.size,...) + tx<-table(x) + xi<-as.numeric(names(tx)) + f<-pfoo(xi,...) + fhat<-cumsum(tx)/sample.size + max(abs(fhat-f)) + } > > pdkwbound<-function(n,t) 2*exp(-2*n*t*t) > > qdkwbound<-function(n,p) sqrt(log(p/2)/(-2*n)) > > dkwtest<-function(stub="norm",sample.size=10000,...,pthreshold=0.001,print.result=TRUE,print.detail=FALSE,stop.on.failure=TRUE){ + rfoo<-eval(as.name(paste("r",stub,sep=""))) + pfoo<-eval(as.name(paste("p",stub,sep=""))) + s<-superror(rfoo,pfoo,sample.size,...) + if (print.result | print.detail){ + printargs<-substitute(list(...)) + printargs[[1]]<-as.name(stub) + cat(deparse(printargs)) + if (print.detail) + cat("\nsupremum error = ",signif(s,2)," with p-value=",min(1,round(pdkwbound(sample.size,s),4)),"\n") + } + rval<-(s > > dkwtest("binom",size=1,prob=0.2) binom(size = 1, prob = 0.2) PASSED [1] TRUE > dkwtest("binom",size=100,prob=0.2) binom(size = 100, prob = 0.2) PASSED [1] TRUE > dkwtest("binom",size=1,prob=0.2) binom(size = 1, prob = 0.2) PASSED [1] TRUE > dkwtest("binom",size=1,prob=0.8) binom(size = 1, prob = 0.8) PASSED [1] TRUE > dkwtest("binom",size=100,prob=0.8) binom(size = 100, prob = 0.8) PASSED [1] TRUE > dkwtest("binom",size=100,prob=0.2) binom(size = 100, prob = 0.2) PASSED [1] TRUE > dkwtest("binom",size=1,prob=0.2) binom(size = 1, prob = 0.2) PASSED [1] TRUE > > dkwtest("pois",lambda=9.5) pois(lambda = 9.5) PASSED [1] TRUE > dkwtest("pois",lambda=0.95) pois(lambda = 0.95) PASSED [1] TRUE > dkwtest("pois",lambda=95) pois(lambda = 95) PASSED [1] TRUE > dkwtest("pois",lambda=0.95) pois(lambda = 0.95) PASSED [1] TRUE > > dkwtest("nbinom",size=1,prob=0.2) nbinom(size = 1, prob = 0.2) PASSED [1] TRUE > dkwtest("nbinom",size=100,prob=0.2) nbinom(size = 100, prob = 0.2) PASSED [1] TRUE > dkwtest("nbinom",size=1,prob=0.2) nbinom(size = 1, prob = 0.2) PASSED [1] TRUE > dkwtest("nbinom",size=1,prob=0.8) nbinom(size = 1, prob = 0.8) PASSED [1] TRUE > dkwtest("nbinom",size=100,prob=0.8) nbinom(size = 100, prob = 0.8) PASSED [1] TRUE > dkwtest("nbinom",size=100,prob=0.2) nbinom(size = 100, prob = 0.2) PASSED [1] TRUE > dkwtest("nbinom",size=1,prob=0.2) nbinom(size = 1, prob = 0.2) PASSED [1] TRUE > > dkwtest("norm") norm() PASSED [1] TRUE > dkwtest("norm",mean=5,sd=3) norm(mean = 5, sd = 3) PASSED [1] TRUE > > dkwtest("gamma",shape=0.1) gamma(shape = 0.1) PASSED [1] TRUE > dkwtest("gamma",shape=10) gamma(shape = 10) PASSED [1] TRUE > dkwtest("gamma",shape=0.1) gamma(shape = 0.1) PASSED [1] TRUE > dkwtest("gamma",shape=10) gamma(shape = 10) PASSED [1] TRUE > > dkwtest("hyper",m=40,n=30,k=20) hyper(m = 40, n = 30, k = 20) PASSED [1] TRUE > dkwtest("hyper",m=4,n=3,k=2) hyper(m = 4, n = 3, k = 2) PASSED [1] TRUE > dkwtest("hyper",m=40,n=30,k=20) hyper(m = 40, n = 30, k = 20) PASSED [1] TRUE > dkwtest("hyper",m=4,n=3,k=2) hyper(m = 4, n = 3, k = 2) PASSED [1] TRUE > dkwtest("hyper",m=5,n=3,k=2) hyper(m = 5, n = 3, k = 2) PASSED [1] TRUE > > dkwtest("signrank",n=1) signrank(n = 1) PASSED [1] TRUE > dkwtest("signrank",n=10) signrank(n = 10) PASSED [1] TRUE > dkwtest("signrank",n=1) signrank(n = 1) PASSED [1] TRUE > dkwtest("signrank",n=30) signrank(n = 30) PASSED [1] TRUE > > dkwtest("wilcox",m=40,n=30) wilcox(m = 40, n = 30) PASSED [1] TRUE > dkwtest("wilcox",m=4,n=3) wilcox(m = 4, n = 3) PASSED [1] TRUE > dkwtest("wilcox",m=40,n=30) wilcox(m = 40, n = 30) PASSED [1] TRUE > dkwtest("wilcox",m=4,n=3) wilcox(m = 4, n = 3) PASSED [1] TRUE > dkwtest("wilcox",m=5,n=3) wilcox(m = 5, n = 3) PASSED [1] TRUE > > dkwtest("chisq",df=1) chisq(df = 1) PASSED [1] TRUE > dkwtest("chisq",df=10) chisq(df = 10) PASSED [1] TRUE > > dkwtest("logis") logis() PASSED [1] TRUE > dkwtest("logis",location=4,scale=2) logis(location = 4, scale = 2) PASSED [1] TRUE > > dkwtest("t",df=1) t(df = 1) PASSED [1] TRUE > dkwtest("t",df=10) t(df = 10) PASSED [1] TRUE > dkwtest("t",df=40) t(df = 40) PASSED [1] TRUE > > dkwtest("beta",shape1=1,shape2=1) beta(shape1 = 1, shape2 = 1) PASSED [1] TRUE > dkwtest("beta",shape1=2,shape2=1) beta(shape1 = 2, shape2 = 1) PASSED [1] TRUE > dkwtest("beta",shape1=2,shape2=2) beta(shape1 = 2, shape2 = 2) PASSED [1] TRUE > dkwtest("beta",shape1=2,shape2=2) beta(shape1 = 2, shape2 = 2) PASSED [1] TRUE > dkwtest("beta",shape1=.2,shape2=.2) beta(shape1 = 0.2, shape2 = 0.2) PASSED [1] TRUE > > dkwtest("cauchy") cauchy() PASSED [1] TRUE > dkwtest("cauchy",location=4,scale=2) cauchy(location = 4, scale = 2) PASSED [1] TRUE > > dkwtest("f",df1=1,df2=1) f(df1 = 1, df2 = 1) PASSED [1] TRUE > dkwtest("f",df1=1,df2=10) f(df1 = 1, df2 = 10) PASSED [1] TRUE > dkwtest("f",df1=10,df2=10) f(df1 = 10, df2 = 10) PASSED [1] TRUE > dkwtest("f",df1=30,df2=3) f(df1 = 30, df2 = 3) PASSED [1] TRUE > > dkwtest("weibull",shape=1) weibull(shape = 1) PASSED [1] TRUE > dkwtest("weibull",shape=4,scale=4) weibull(shape = 4, scale = 4) PASSED [1] TRUE >