• Descriptive
    • Moments
    • Concentration
    • Central Tendency
    • Variability
    • Stem-and-Leaf Plot
    • Histogram & Frequency Table
    • Data Quality Forensics
    • Conditional EDA
    • Quantiles
    • Kernel Density Estimation
    • Normal QQ Plot
    • Bootstrap Plot

    • Multivariate Descriptive Statistics
  • Distributions
    • Binomial Probabilities
    • Geometric Probabilities
    • Negative Binomial Probabilities
    • Hypergeometric Probabilities
    • Multinomial Probabilities
    • Dirichlet
    • Poisson Probabilities

    • Exponential
    • Gamma
    • Erlang
    • Weibull
    • Rayleigh
    • Maxwell-Boltzmann
    • Lognormal
    • Pareto
    • Inverse Gamma
    • Inverse Chi-Square

    • Beta
    • Power
    • Beta Prime (Inv. Beta)
    • Triangular

    • Normal (area)
    • Logistic
    • Laplace
    • Cauchy (standard)
    • Cauchy (location-scale)
    • Gumbel
    • Fréchet
    • Generalized Extreme Value

    • Normal RNG
    • ML Fitting
    • Tukey Lambda PPCC
    • Box-Cox Normality Plot
    • Noncentral t
    • Noncentral F
    • Sample Correlation r

    • Empirical Tests
  • Hypotheses
    • Theoretical Aspects of Hypothesis Testing
    • Bayesian Inference
    • Minimum Sample Size

    • Empirical Tests
    • Multivariate (pair-wise) Testing
  • Models
    • Manual Model Building
    • Guided Model Building
  • Time Series
    • Time Series Plot
    • Decomposition
    • Exponential Smoothing

    • Blocked Bootstrap Plot
    • Mean Plot
    • (P)ACF
    • VRM
    • Standard Deviation-Mean Plot
    • Spectral Analysis
    • ARIMA

    • Cross Correlation Function
    • Granger Causality
  1. Descriptive Statistics & Exploratory Data Analysis
  2. 89  Blocked Bootstrap Plot (Central Tendency)
  • Preface
  • Getting Started
    • 1  Introduction
    • 2  Why Do We Need Innovative Technology?
    • 3  Basic Definitions
    • 4  The Big Picture: Why We Analyze Data
  • Introduction to Probability
    • 5  Definitions of Probability
    • 6  Jeffreys’ axiom system
    • 7  Bayes’ Theorem
    • 8  Sensitivity and Specificity
    • 9  Naive Bayes Classifier
    • 10  Law of Large Numbers

    • 11  Problems
  • Probability Distributions
    • 12  Bernoulli Distribution
    • 13  Binomial Distribution
    • 14  Geometric Distribution
    • 15  Negative Binomial Distribution
    • 16  Hypergeometric Distribution
    • 17  Multinomial Distribution
    • 18  Poisson Distribution

    • 19  Uniform Distribution (Rectangular Distribution)
    • 20  Normal Distribution (Gaussian Distribution)
    • 21  Gaussian Naive Bayes Classifier
    • 22  Chi Distribution
    • 23  Chi-squared Distribution (1 parameter)
    • 24  Chi-squared Distribution (2 parameters)
    • 25  Student t-Distribution
    • 26  Fisher F-Distribution
    • 27  Exponential Distribution
    • 28  Lognormal Distribution
    • 29  Gamma Distribution
    • 30  Beta Distribution
    • 31  Weibull Distribution
    • 32  Pareto Distribution
    • 33  Inverse Gamma Distribution
    • 34  Rayleigh Distribution
    • 35  Erlang Distribution
    • 36  Logistic Distribution
    • 37  Laplace Distribution
    • 38  Gumbel Distribution
    • 39  Cauchy Distribution
    • 40  Triangular Distribution
    • 41  Power Distribution
    • 42  Beta Prime Distribution
    • 43  Sample Correlation Distribution
    • 44  Dirichlet Distribution
    • 45  Generalized Extreme Value (GEV) Distribution
    • 46  Frechet Distribution
    • 47  Noncentral t Distribution
    • 48  Noncentral F Distribution
    • 49  Inverse Chi-Squared Distribution
    • 50  Maxwell-Boltzmann Distribution
    • 51  Distribution Relationship Map

    • 52  Problems
  • Descriptive Statistics & Exploratory Data Analysis
    • 53  Types of Data
    • 54  Datasheets

    • 55  Frequency Plot (Bar Plot)
    • 56  Frequency Table
    • 57  Contingency Table
    • 58  Binomial Classification Metrics
    • 59  Confusion Matrix
    • 60  ROC Analysis

    • 61  Stem-and-Leaf Plot
    • 62  Histogram
    • 63  Data Quality Forensics
    • 64  Quantiles
    • 65  Central Tendency
    • 66  Variability
    • 67  Skewness & Kurtosis
    • 68  Concentration
    • 69  Notched Boxplot
    • 70  Scatterplot
    • 71  Pearson Correlation
    • 72  Rank Correlation
    • 73  Partial Pearson Correlation
    • 74  Simple Linear Regression
    • 75  Moments
    • 76  Quantile-Quantile Plot (QQ Plot)
    • 77  Normal Probability Plot
    • 78  Probability Plot Correlation Coefficient Plot (PPCC Plot)
    • 79  Box-Cox Normality Plot
    • 80  Kernel Density Estimation
    • 81  Bivariate Kernel Density Plot
    • 82  Conditional EDA: Panel Diagnostics
    • 83  Bootstrap Plot (Central Tendency)
    • 84  Survey Scores Rank Order Comparison
    • 85  Cronbach Alpha

    • 86  Equi-distant Time Series
    • 87  Time Series Plot (Run Sequence Plot)
    • 88  Mean Plot
    • 89  Blocked Bootstrap Plot (Central Tendency)
    • 90  Standard Deviation-Mean Plot
    • 91  Variance Reduction Matrix
    • 92  (Partial) Autocorrelation Function
    • 93  Periodogram & Cumulative Periodogram

    • 94  Problems
  • Hypothesis Testing
    • 95  Normal Distributions revisited
    • 96  The Population
    • 97  The Sample
    • 98  The One-Sided Hypothesis Test
    • 99  The Two-Sided Hypothesis Test
    • 100  When to use a one-sided or two-sided test?
    • 101  What if \(\sigma\) is unknown?
    • 102  The Central Limit Theorem (revisited)
    • 103  Statistical Test of the Population Mean with known Variance
    • 104  Statistical Test of the Population Mean with unknown Variance
    • 105  Statistical Test of the Variance
    • 106  Statistical Test of the Population Proportion
    • 107  Statistical Test of the Standard Deviation \(\sigma\)
    • 108  Statistical Test of the difference between Means -- Independent/Unpaired Samples
    • 109  Statistical Test of the difference between Means -- Dependent/Paired Samples
    • 110  Statistical Test of the difference between Variances -- Independent/Unpaired Samples

    • 111  Hypothesis Testing for Research Purposes
    • 112  Decision Thresholds, Alpha, and Confidence Levels
    • 113  Bayesian Inference for Decision-Making
    • 114  One Sample t-Test
    • 115  Skewness & Kurtosis Tests
    • 116  Paired Two Sample t-Test
    • 117  Wilcoxon Signed-Rank Test
    • 118  Unpaired Two Sample t-Test
    • 119  Unpaired Two Sample Welch Test
    • 120  Two One-Sided Tests (TOST) for Equivalence
    • 121  Mann-Whitney U test (Wilcoxon Rank-Sum Test)
    • 122  Bayesian Two Sample Test
    • 123  Median Test based on Notched Boxplots
    • 124  Chi-Squared Tests for Count Data
    • 125  Kolmogorov-Smirnov Test
    • 126  One Way Analysis of Variance (1-way ANOVA)
    • 127  Kruskal-Wallis Test
    • 128  Two Way Analysis of Variance (2-way ANOVA)
    • 129  Repeated Measures ANOVA
    • 130  Friedman Test
    • 131  Testing Correlations
    • 132  A Note on Causality

    • 133  Problems
  • Regression Models
    • 134  Simple Linear Regression Model (SLRM)
    • 135  Multiple Linear Regression Model (MLRM)
    • 136  Logistic Regression
    • 137  Generalized Linear Models
    • 138  Multinomial and Ordinal Logistic Regression
    • 139  Cox Proportional Hazards Regression
    • 140  Conditional Inference Trees
    • 141  Leaf Diagnostics for Conditional Inference Trees
    • 142  Conditional Random Forests
    • 143  Hypothesis Testing with Linear Regression Models (from a Practical Point of View)

    • 144  Problems
  • Introduction to Time Series Analysis
    • 145  Case: the Market of Health and Personal Care Products
    • 146  Decomposition of Time Series
    • 147  Ad hoc Forecasting of Time Series
  • Box-Jenkins Analysis
    • 148  Introduction to Box-Jenkins Analysis
    • 149  Theoretical Concepts
    • 150  Stationarity
    • 151  Identifying ARMA parameters
    • 152  Estimating ARMA Parameters and Residual Diagnostics
    • 153  Forecasting with ARIMA models
    • 154  Intervention Analysis
    • 155  Cross-Correlation Function
    • 156  Transfer Function Noise Models
    • 157  General-to-Specific Modeling
  • Model Building Strategies
    • 158  Introduction to Model Building Strategies
    • 159  Manual Model Building
    • 160  Model Validation
    • 161  Regularization Methods
    • 162  Hyperparameter Optimization Strategies
    • 163  Guided Model Building in Practice
    • 164  Diagnostics, Revision, and Guided Forecasting
    • 165  Leakage, Target Encoding, and Robust Regression
  • References
  • Appendices
    • Appendices
    • A  Method Selection Guide
    • B  Presentations and Teaching Materials
    • C  R Language Concepts for Statistical Computing
    • D  Matrix Algebra
    • E  Standard Normal Table (Gaussian Table)
    • F  Critical values of Student’s \(t\) distribution with \(\nu\) degrees of freedom
    • G  Upper-tail critical values of the \(\chi^2\)-distribution with \(\nu\) degrees of freedom
    • H  Lower-tail critical values of the \(\chi^2\)-distribution with \(\nu\) degrees of freedom

Table of contents

  • 89.1 Definition
    • 89.1.1 Horizontal axis for Simulated Statistics
    • 89.1.2 Vertical axis for Simulated Statistics
    • 89.1.3 Horizontal axis for Kernel Density of Simulated Statistics
    • 89.1.4 Vertical axis for Kernel Density of Simulated Statistics
    • 89.1.5 Horizontal axis for Notched Boxplots of Simulated Statistics
    • 89.1.6 Vertical axis for Notched Boxplots of Simulated Statistics
  • 89.2 Choosing the Block Size
  • 89.3 R Module
    • 89.3.1 Public website
    • 89.3.2 RFC
  • 89.4 Purpose
  • 89.5 Pros & Cons
    • 89.5.1 Pros
    • 89.5.2 Cons
  • 89.6 Example
  1. Descriptive Statistics & Exploratory Data Analysis
  2. 89  Blocked Bootstrap Plot (Central Tendency)

89  Blocked Bootstrap Plot (Central Tendency)

The Blocked Bootstrap Plot for Central Tendency uses a special type of bootstrapping (Künsch 1989) which is suited for serially correlated time series. It uses a sliding block of observations to perform the sampling process because this preserves the serial correlation in the simulated time series. In every other aspect, the Blocked Bootstrap Plot is the same as the ordinary Bootstrap Plot which is described in Chapter 83.

89.1 Definition

The Blocked Bootstrap Plot for any given time series \(Y_t\) with \(T\) observations and pre-specified parameter \(k \in \mathbb{N}_0\), is computed according to the following steps:

  • generate \(k\) samples \(Z_{jt}\) (for \(j=1,2,…,k\)) of size \(T\) (for \(t = 1, 2, …, T\))
  • compute the following measures of Central Tendency: Arithmetic Mean, Median, Midrange, Harmonic Mean, and the Geometric Mean
  • compute a series of pre-specified Quantiles such as \(Quantile(q)_j\) for \(q\) = 0.005, 0.025, 0.25, 0.50, 0.75, 0.975, 0.995 and \(j = 1, 2, …,k\)
  • plot the simulated statistics
  • plot the Gaussian Kernel Density Plots for each simulated statistic
  • plot a summary based on Notched Boxplots for each simulated statistic

89.1.1 Horizontal axis for Simulated Statistics

The horizontal axis represents the value of the simulated statistic.

89.1.2 Vertical axis for Simulated Statistics

The vertical axis corresponds to the value of the Central Tendency measure that is drawn from the sample.

89.1.3 Horizontal axis for Kernel Density of Simulated Statistics

The horizontal axis represents the value of the simulated statistic.

89.1.4 Vertical axis for Kernel Density of Simulated Statistics

The vertical axis corresponds to the estimated density value.

89.1.5 Horizontal axis for Notched Boxplots of Simulated Statistics

The horizontal axis represents the measures of Central Tendency (listed in arbitrary order).

89.1.6 Vertical axis for Notched Boxplots of Simulated Statistics

The vertical axis corresponds to the values of the Central Tendency measures.

89.2 Choosing the Block Size

The block size controls how much serial dependence is preserved in each bootstrap sample:

  • small blocks preserve only short-run dependence and may underestimate uncertainty
  • large blocks preserve more dependence but reduce the effective number of resampled blocks

For monthly data, a block size of 12 is often used as a practical starting point because it preserves one full seasonal cycle. In applied work, compare results for a few nearby block sizes (for example 6, 12, and 18) to check robustness.

89.3 R Module

89.3.1 Public website

The Blocked Bootstrap Plot is available on the public website:

  • https://compute.wessa.net/rwasp_bootstrapplot.wasp

89.3.2 RFC

When using the default profile, the Blocked Bootstrap Plot can be found under the “Time Series / Blocked Bootstrap Plot” menu item.

To compute the Blocked Bootstrap Plot on your local machine, the following script can be used in the R console:

library(boot)
library(psych)

x <- cumsum(rnorm(150)) + 100
x = as.ts(x, frequency = 12)
par1 <- 200 # number of simulations
par2 <- 5 # significant digits
par3 <- 12 # blocksize
par4 <- "P0.5 P2.5 Q1 Q3 P97.5 P99.5" # quantiles

boot.stat <- function(s) {
  s.mean <- mean(s)
  s.median <- median(s)
  s.midrange <- (max(s) + min(s)) / 2
  s.hmean <- harmonic.mean(s)
  s.gmean <- geometric.mean(s)
  c(s.mean, s.median, s.midrange, s.hmean, s.gmean)
}

r <- tsboot(x, boot.stat, R = par1, l = par3, sim = "fixed")

z <- data.frame(cbind(r$t[,1],r$t[,2],r$t[,3],r$t[,4],r$t[,5]))
colnames(z) <- list("mean","median","midrange","harmonic","geometric")

if (par4 == "P1 P5 Q1 Q3 P95 P99") {
  myq.1 <- 0.01
  myq.2 <- 0.05
  myq.3 <- 0.95
  myq.4 <- 0.99
}
if (par4 == "P0.5 P2.5 Q1 Q3 P97.5 P99.5") {
  myq.1 <- 0.005
  myq.2 <- 0.025
  myq.3 <- 0.975
  myq.4 <- 0.995
}

df = data.frame(statistic = c("mean",
                              "median",
                              "midrange",
                              "harmonic",
                              "geometric"),
                P1 = c(signif(quantile(r$t[,1],myq.1)[[1]], par2),
                       signif(quantile(r$t[,2],myq.1)[[1]], par2),
                       signif(quantile(r$t[,3],myq.1)[[1]], par2),
                       signif(quantile(r$t[,4],myq.1)[[1]], par2),
                       signif(quantile(r$t[,5],myq.1)[[1]], par2)
                       ),
                P5 = c(signif(quantile(r$t[,1],myq.2)[[1]], par2),
                       signif(quantile(r$t[,2],myq.2)[[1]], par2),
                       signif(quantile(r$t[,3],myq.2)[[1]], par2),
                       signif(quantile(r$t[,4],myq.2)[[1]], par2),
                       signif(quantile(r$t[,5],myq.2)[[1]], par2)
                       ),
                Q1 = c(signif(quantile(r$t[,1],0.25)[[1]], par2),
                       signif(quantile(r$t[,2],0.25)[[1]], par2),
                       signif(quantile(r$t[,3],0.25)[[1]], par2),
                       signif(quantile(r$t[,4],0.25)[[1]], par2),
                       signif(quantile(r$t[,5],0.25)[[1]], par2)
                       ),
                Estimate = c(signif(r$t0[1], par2),
                             signif(r$t0[2], par2),
                             signif(r$t0[3], par2),
                             signif(r$t0[4], par2),
                             signif(r$t0[5], par2)
                             ),
                Q3 = c(signif(quantile(r$t[,1],0.75)[[1]], par2),
                       signif(quantile(r$t[,2],0.75)[[1]], par2),
                       signif(quantile(r$t[,3],0.75)[[1]], par2),
                       signif(quantile(r$t[,4],0.75)[[1]], par2),
                       signif(quantile(r$t[,5],0.75)[[1]], par2)
                       ),
                P95 = c(signif(quantile(r$t[,1],myq.3)[[1]], par2),
                        signif(quantile(r$t[,2],myq.3)[[1]], par2),
                        signif(quantile(r$t[,3],myq.3)[[1]], par2),
                        signif(quantile(r$t[,4],myq.3)[[1]], par2),
                        signif(quantile(r$t[,5],myq.3)[[1]], par2)
                        ),
                P99 = c(signif(quantile(r$t[,1],myq.4)[[1]], par2),
                        signif(quantile(r$t[,2],myq.4)[[1]], par2),
                        signif(quantile(r$t[,3],myq.4)[[1]], par2),
                        signif(quantile(r$t[,4],myq.4)[[1]], par2),
                        signif(quantile(r$t[,5],myq.4)[[1]], par2)
                        ),
                SD = c(signif(sd(r$t[,1]), par2),
                       signif(sd(r$t[,2]), par2),
                       signif(sd(r$t[,3]), par2),
                       signif(sd(r$t[,4]), par2),
                       signif(sd(r$t[,5]), par2)
                       ),
                IQR = c(signif(quantile(r$t[,1],0.75)[[1]] - quantile(r$t[,1],0.25)[[1]], par2),
                        signif(quantile(r$t[,2],0.75)[[1]] - quantile(r$t[,2],0.25)[[1]], par2),
                        signif(quantile(r$t[,3],0.75)[[1]] - quantile(r$t[,3],0.25)[[1]], par2),
                        signif(quantile(r$t[,4],0.75)[[1]] - quantile(r$t[,4],0.25)[[1]], par2),
                        signif(quantile(r$t[,5],0.75)[[1]] - quantile(r$t[,5],0.25)[[1]], par2)
                        )
                ) 
if (par4 == "P0.5 P2.5 Q1 Q3 P97.5 P99.5") {
  colnames(df)[2:3] = c("P0.5", "P2.5")
  colnames(df)[7:8] = c("P97.5", "P99.5")
}

print(df)

op <- par(mfrow=c(2,3))
plot(density(r$t[,1]),main="Density Plot",xlab="mean")
plot(density(r$t[,2]),main="Density Plot",xlab="median")
plot(density(r$t[,3]),main="Density Plot",xlab="midrange")
plot(density(r$t[,4]),main="Density Plot",xlab="harmonic mean")
plot(density(r$t[,5]),main="Density Plot",xlab="geometric mean")
colnames(z) = c("mean", "median", "midrange", "harmonic", "geometric")
boxplot(z,notch=TRUE,ylab="simulated values",main="Bootstrap Simulation - Central Tendency")
Warning in (function (z, notch = FALSE, width = NULL, varwidth = FALSE, : some
notches went outside hinges ('box'): maybe set notch=FALSE
grid()

par(op)
  statistic   P0.5   P2.5     Q1 Estimate     Q3  P97.5  P99.5      SD     IQR
1      mean 87.095 87.200 87.899   88.495 89.110 90.265 90.572 0.84752 1.21070
2    median 86.704 87.099 87.563   87.712 88.027 88.969 89.020 0.47503 0.46392
3  midrange 87.082 87.382 91.420   92.632 92.632 92.994 92.996 1.57380 1.21240
4  harmonic 87.069 87.180 87.814   88.370 88.933 90.052 90.297 0.79412 1.11940
5 geometric 87.082 87.190 87.857   88.431 89.024 90.157 90.433 0.82017 1.16650

To compute the Blocked Bootstrap Plot, the R code uses the libraries psych and boot. The boot.stat function was created to define all the measures of Central Tendency that are included in the analysis.

89.4 Purpose

The Blocked Bootstrap Plot is used when it is important to compute and compare important Central Tendency measures with empirical confidence intervals. For instance, if we need to assess the quality of a prediction model based on the errors that are produced, by investigating whether or not the Central Tendency of prediction errors is within the range of acceptable levels. In principle, the majority of bootstrap samples (of prediction errors) should yield Central Tendency measures that are around zero. If, for instance, it turns out that more than (say) 95% of samples are on average not equal to zero then we know that the prediction model yields biased forecasts.

89.5 Pros & Cons

89.5.1 Pros

The Blocked Bootstrap Plot has the following advantages:

  • It allows one to obtain confidence intervals for Central Tendency measures without the need to know the underlying distribution.
  • It provides a lot of useful information about the empirical distribution of the Central Tendency measures.

89.5.2 Cons

The Blocked Bootstrap Plot has the following disadvantages:

  • Most readers are not familiar with this type of analysis.
  • It cannot be computed with many statistical software packages.

89.6 Example

Consider the prediction errors of a time series forecasting model. We do not want to claim that the average error is exactly equal to zero. Instead, we want to assess whether the bootstrap evidence is consistent with an average prediction error of zero at the chosen 95% confidence level. The practical question is whether the simulated bootstrap samples have Arithmetic Means (and perhaps other measures of Central Tendency) that are plausibly centered around zero, or whether they point to a systematic positive or negative prediction bias.

To examine this question we compute the boundaries of the 95% confidence interval, namely \([Quantile(0.025), Quantile(0.975)]\), and check whether zero remains a plausible value for the average prediction error. If the interval contains zero (that is, the lower bound is negative and the upper bound is positive), then the bootstrap evidence does not support a claim of systematic prediction bias at this confidence level.

Interactive Shiny app (click to load).
Open in new tab

The analysis shows that the Arithmetic Mean is close to zero and that the interval which contains the middle 95% of average prediction errors is approximately equal to [-0.03863, 0.056261]. Since the interval contains zero, the bootstrap results do not provide evidence of a systematic positive or negative average prediction error at the chosen confidence level. Hence, there is no evidence of prediction bias in this example, but this should not be phrased as proof that the true average error is exactly zero.

The Gaussian Kernel Density Plot for the Arithmetic Means of simulated time series shows that most simulated means lie around zero. Which of the five measures of Central Tendency describes the residuals best?

Künsch, Hans R. 1989. “The Jackknife and the Bootstrap for General Stationary Observations.” The Annals of Statistics 17 (3): 1217–41. https://doi.org/10.1214/aos/1176347265.
88  Mean Plot
90  Standard Deviation-Mean Plot

© 2026 Patrick Wessa. Provided as-is, without warranty.

Feedback: e-mail | Anonymous contributions: click to copy (Sats) | click to copy (XMR)

Cookie Preferences