[R] Randomization/Permutation Tests
Wolfgang Viechtbauer
wviechtb at s.psych.uiuc.edu
Tue Nov 27 23:29:22 CET 2001
Dear R-Users,
I was wondering if anybody out there has written R/S code or knows of a
library for doing randomization tests (for example, permutating group
assignments to find a p-value that does not require making a normality
assumption). I looked through the available functions and the packages,
but did not find anything applicable. As an example of what I am
referring to, please see the rudimentary function below, which should
provide an approximate p-value for a 2-independent samples scenario
(this is only an approximation, since the function does not generate all
possible combinations, but instead just generate random permutations;
but with a large number of permuts, the error should be quite small). If
some similar code is already available, I would like to hear about it.
Thanks!
-------------
ran2ind <- function(x, y, permuts = 1000) {
nx <- length(x)
ny <- length(y)
ntot <- nx + ny
xy <- c(x, y)
truet <- ( mean(x) - mean(y) ) / ( sqrt( ( (nx-1)*var(x) + (ny-1)*var(y) ) / (nx + ny - 2) ) * sqrt( 1/nx + 1/ny ) )
tstats <- matrix(NA, 1, permuts)
for (i in 1:permuts) {
permute <- sample(c(1:ntot), ntot, replace=F)
group1 <- xy[permute[1:nx]]
group2 <- xy[permute[(nx+1):ntot]]
tstats[1,i] <- ( mean(group1) - mean(group2) ) / ( sqrt( ( (nx-1)*var(group1) + (ny-1)*var(group2) ) / (nx + ny - 2) ) * sqrt( 1/nx + 1/ny ) )
}
list(tvalues=tstats, truet=truet, pvalue=mean( abs(tstats) >= abs(truet) ) )
}
---------------------------------------------------------------------
Wolfgang Viechtbauer wviechtb at s.psych.uiuc.edu
Department of Quantitative Psychology viechtba at students.uiuc.edu
University of Illinois, Champaign-Urbana "Your mouse has moved.
Room 409, Psychology Building Windows must be restarted
603 E. Daniel Street for the change to take
Champaign, IL 61820 effect. Reboot now? [OK]"
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list