# Understanding the output of a bootstrap performed in R (tsboot, MannKendall)

I have a question regarding the interpretation of the tsboot call in R. I checked the documentation of both the Kendall and the boot package, but am no smarter than before.

When I run a bootstrap using e.g. the example in the Kendall package, where the test statistic is Kendall's tau:

library(Kendall)
# Annual precipitation entire Great Lakes
# The Mann-Kendall trend test confirms the upward trend.
data(PrecipGL)
MannKendall(PrecipGL)


which confirms the upward trend:

tau = 0.265, 2-sided pvalue =0.00029206


The example then continues to use a block bootstrap:

#
#Use block bootstrap
library(boot)
data(PrecipGL)
MKtau<-function(z) MannKendall(z)\$tau
tsboot(PrecipGL, MKtau, R=500, l=5, sim="fixed")


I receive the following result:

BLOCK BOOTSTRAP FOR TIME SERIES
Fixed Block Length of 5
Call:
tsboot(tseries = PrecipGL, statistic = MKtau, R = 500, l = 5,
sim = "fixed")

Bootstrap Statistics :
original     bias    std. error
t1* 0.2645801 -0.2670514  0.09270585


If I understand correctly, the "t1* original" is the original MKtau, the "bias" is the mean of the MKtau from the R=500 bootstrapped time series, and the "std. error" is the standard deviation of the MKtaus from the 500 samples.

I have trouble understanding what this means - this basically tells me that all 500 MKTaus are lower than the original, and that the original t1* is in the range of 3 sd of the bootstrapped MKtaus. Ergo it is significantly different?

Or would I say the MKtau for the data set is 0.26 plus/minus standard error?

I'm sorry for the lengthy question, but I am a statistics novice and am learning via self-study, lacking someone to bounce this probably really simple problem back and forth with.

• In the output bias is simply the difference between the mean of the 500 stored bootstrap samples and the original estimate. The std. error is the standard deviation of the 500 bootstrap samples and is an estimate of the standard error. The output tells you that your original estimate is higher than the mean of the 500 bootstrapped estimates (so not all of the bootstrapped MKtaus are lower). The bootstrap is often used to calculate standard errors/confidence intervals without making assumptions about the distribution. Use the boot.ci function to calculate the confidence intervals. – COOLSerdash Sep 20 '13 at 15:57
• @COOLSerdash , thanks for this! So if my original statistic is 3 sd higher than the mean of the bootstrapped statistic, can I then conclude anything directly (say: statistic is significant at 0.99)? I also used the boot.ci to calculate the confidence intervals, and again, the originally computed statistic lies outside these intervals. – Maria Sep 25 '13 at 8:59
• No, you don't compare the bootstrapped statistic with the original statistic with a hypothesis test. I would just use/report the bootstrapped standard error and confidence intervals in your case. – COOLSerdash Sep 25 '13 at 9:04

## 1 Answer

Having run into the same question and explored it with a controlled data set – model y = ax + b with N(0, sig) errors, I find that the Kendall package may not be working as advertised. The x in my case was 1:100, and y = x, with sig = 100 (variance of error term).

The regression looks good, and so does Kendall's tau. There is no autocorrelation here other than that induced by the linear model. Running the Kendall test as advertised with block lengths of 1, 3, 5 and 10 yields very large bias values, and boot.ci reports no trend.

Subsequently, I hand-coded the bootstrap of the data with these block lengths, and with my control series, I get reasonable results as to the mean of the bootstrap samples and their spread. Hence, it is possible that something has gone awry with the package Kendall with regard to the block bootstrap.