# "Parametric bootstrap" or "Monte Carlo test"

I have a data set on counts of amphibians in buckets around a pond, which I have detailed in a previous post:

Circular statistics for discrete, irregular sector data

To conduct a test of circular uniformity, I have followed the recommendation of Pewsey et al. (2013), who suggested using "parametric bootstrapping" to calculate the P-value for the Choulakian (1994) version of the Watson U2 statistic. A modified version of the R code (which I have customized for my data set) is provided below.

My question pertains to how such a procedure should be termed. Pewsey et al. (2013) refer to it as a "parametric bootstrap", however I am a little confused as to why they are using this term. Usually, bootstrapping is done to put a confidence interval around a parameter estimate....whereas, here, they are using it to simulate a null distribution for the purpose of calculating a P-value...which seems (to me) to fall into the more general realm of a "Monte Carlo test"/"randomization test".

I understand that this could be considered parametric because a certain distribution (uniform) is assumed...but is it appropriate to call it a bootstrap procedure? Is it a fusion (of sorts)?

### Watson's U2 Parmetric Bootstrap function

WUsqPBoot <- function(...){

dots <- list(...)  #pass the arguments as a list
b_counts <- dots[]  #the bucket counts for the observed data
arclength <- dots[] #the arclengths for each bucket
B <- dots[]  #the number of desired iterations

nbuckets <- 23; buckets <- seq(1:nbuckets) #create sequence from 1 to 23

bucky <- rep(buckets, arclength)

n <- sum(b_counts); Prob <- arclength/360; Eval <- Prob*n  #calculate the expected counts based on the arclengths

#Calculate the U2 statistic

WUsq <- function(counts){
Dval <- counts-Eval; Sval <- cumsum(Dval); Sbar <- sum(Prob*Sval)
tstat <- sum((Sval - Sbar)*(Sval - Sbar)*Prob)/n; return(tstat)
}

tstat <- WUsq(b_counts); nxtrm <- 1  #calculate U2 for the observed data

#simulate the null distribution (with sample size equal to the observed data)

for(b in 2:(B+1)){
ubucktot <- 0
for(j in 1:nbuckets){
ubucktot[j] <- 0
}

ubucky <- sample(bucky, size=n, replace=TRUE)

for(j in 1:n){
ubucktot[ubucky[j]] <- ubucktot[ubucky[j]]+1
}

tstat[b] <- WUsq(ubucktot)

if(tstat[b] >= tstat){
nxtrm <- nxtrm + 1
}
}

pval <- nxtrm/(B+1); return(list(pval, tstat))  #calculate and return the P-value
}

B <- 9999  #number of iterations;
bootres <- WUsqPBoot(bucket_counts, arcl, B);
pval <- bootres[]; WUsqval <- bootres[]; WUsqval; pval

• I think saying "monte carlo simulation" is fine. I've not seem many people refer to monte carlo methods as parametric boostrapping. That name's a bit fringe in my opinion
– Jon
Aug 18, 2017 at 22:27