Rev 12109 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
R : Copyright 2001, The R Development Core TeamVersion 1.2.0 Patched (2001-01-06)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 more information.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) < 2 exp(-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 n*t^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 < qdkwbound(sample.size,pthreshold))+ if (print.result)+ cat(c(" FAILED\n"," PASSED\n",)[rval+1])+ if (stop.on.failure && !rval)+ stop("dkwtest failed")+ rval+ }>> .proctime00 <- proc.time() # start timing>>> dkwtest("binom",size = 1,prob = 0.2)binom(size = 1, prob = 0.2) PASSED[1] TRUE> dkwtest("binom",size = 2,prob = 0.2)binom(size = 2, 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 = 1e4,prob = 0.2)binom(size = 10000, 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.999)binom(size = 100, prob = 0.999) PASSED[1] TRUE>> dkwtest("pois",lambda = 0.095)pois(lambda = 0.095) PASSED[1] TRUE> dkwtest("pois",lambda = 0.95)pois(lambda = 0.95) PASSED[1] TRUE> dkwtest("pois",lambda = 9.5)pois(lambda = 9.5) PASSED[1] TRUE> dkwtest("pois",lambda = 95)pois(lambda = 95) PASSED[1] TRUE>> dkwtest("nbinom",size = 1,prob = 0.2)nbinom(size = 1, prob = 0.2) PASSED[1] TRUE> dkwtest("nbinom",size = 2,prob = 0.2)nbinom(size = 2, 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 = 1e4,prob = 0.2)nbinom(size = 10000, 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.999)nbinom(size = 100, prob = 0.999) 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 = 0.2)gamma(shape = 0.2) PASSED[1] TRUE> dkwtest("gamma",shape = 10)gamma(shape = 10) PASSED[1] TRUE> dkwtest("gamma",shape = 20)gamma(shape = 20) PASSED[1] TRUE>> dkwtest("hyper",m = 40,n = 30,k = 20)hyper(m = 40, n = 30, k = 20) PASSED[1] TRUE> dkwtest("hyper",m = 40,n = 3,k = 20)hyper(m = 40, n = 3, k = 20) PASSED[1] TRUE> dkwtest("hyper",m = 6,n = 3,k = 2)hyper(m = 6, 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("hyper",m = 4,n = 3,k = 2)hyper(m = 4, n = 3, k = 2) PASSED[1] TRUE>>> dkwtest("signrank",n = 1)signrank(n = 1) PASSED[1] TRUE> dkwtest("signrank",n = 2)signrank(n = 2) PASSED[1] TRUE> dkwtest("signrank",n = 10)signrank(n = 10) 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 = 40,n = 10)wilcox(m = 40, n = 10) PASSED[1] TRUE> dkwtest("wilcox",m = 6,n = 3)wilcox(m = 6, n = 3) PASSED[1] TRUE> dkwtest("wilcox",m = 5,n = 3)wilcox(m = 5, n = 3) PASSED[1] TRUE> dkwtest("wilcox",m = 4,n = 3)wilcox(m = 4, 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 = 1, shape2 = 2)beta(shape1 = 1, 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>>> cat('Time elapsed: ', proc.time() - .proctime00,'\n')Time elapsed: 22.67 0.15 22.82 0 0>>