I've been attempting to understand the one-sample run test for randomness. I've found run.test{tseries} and run.test{lawstat}. Both use a large sample approximation for distribution of the total number of runs in a sample of n1 observations of one type and n2 observations of another type.
I've been unable to find R code to generate the exact distribution and would like to see how this could be done (not homework). For example, given the data: dtemp <- c(12, 13, 12, 11, 5, 2, -1, 2, -1, 3, 2, -6, -7, -7, -12, -9, 6, 7, 10, 6, 1, 1, 3, 7, -2, -6, -6, -5, -2, -1) The Monte Carlo permutation approach seems to get me part way. # calculate the number of runs in the data vector nruns <- function(x) { signs <- sign(x) runs <- rle(signs) r <- length(runs$lengths) return(r) } MC.runs <- function(x, nperm) { RUNS <- numeric(nperm) for (i in 1:nperm) { RUNS[i] <- nruns(sample(x)) } cdf <- cumsum(table(RUNS))/nperm return(list(RUNS=RUNS, cdf=cdf, nperm=nperm)) } MC.runs(dtemp, 100000) Thanks. --Dale ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.