1. Home
  2. VPOWER procedure

VPOWER procedure

Uses a parametric bootstrap to estimate the power (probability of detection) for terms in a REML analysis (R.W. Payne & C.J. Brien).


PRINT = string tokens Controls printed output (power, nnotconverged, monitoring); default powe
VPRINT = string tokens Controls the output from the REML analyses (model, components, effects, means, stratumvariances, monitoring, vcovariance, deviance, Waldtests, missingvalues, covariancemodels); default * i.e. none
TERM = formula Fixed term to be assessed in the analysis
UVCOVARIANCE = symmetric matrix Specifies the variances and covariances of the units; default is to take this from the SAVE structure
PROBABILITY = scalar Significance level at which the response is to be detected; default 0.05
TMETHOD = string token Type of test to be made (fratio, wald, twosided, greaterthan, lessthan, equivalence, noninferiority); default frat
XCONTRASTS = variate X-variate defining a contrast to be detected
CONTRASTTYPE = string token Type of contrast (regression, comparison) default rege
CRITICALVALUE = scalar Supplies a critical value for the test statistic
NBOOT = scalar Number of bootstrap samples to analyse; default 500
NRETRIES = scalar Maximum number of extra samples to take when some REML analyses fail to converge; default NBOOT
SEED = scalar Seed for random number generation; default 0 continues an existing sequence or, if none, selects a seed automatically
METHOD = string token Indicates whether to use the standard Fisher-scoring algorithm or the new AI algorithm with sparse matrix methods (Fisher, AI); default AI
MAXCYCLE = scalar Sets a limit on the number of iterations in the REML analyses; default 30
FMETHOD = string token Controls whether and how to calculate F statistics for fixed terms (automatic, none, algebraic, numerical); default auto
WMETHOD = string token Controls which Wald statistics are saved (add, drop); default add
WORKSPACE = scalar Number of blocks of internal memory to be set up for use by the REML algorithm
SAVE = vsave REML save structure to provide the unit-by-unit variance-covariance matrix if UVCOVARIANCE is not specified


RESPONSE = scalars, variates or tables Specifies the response to be detected
POWER = scalars Saves the power (i.e. probability of detection) for RESPONSE
NCONVERGED = scalars Saves the number of bootstrap samples whose REML analyses converged
NNOTCONVERGED = scalars Saves the number of bootstrap samples whose REML analyses failed to converge


When assessing an experimental design, it can be useful to know how likely a fixed response of a specified size is to be detected. This probability of detection, known as the power of the design with respect to the response of interest, helps to determine whether the experiment is sufficiently large or accurate to achieve its purpose.

VPOWER performs a parametric bootstrap to allow the power to be estimated, for designs whose results will be analysed by REML. The model to be fitted must be defined using the VCOMPONENTS and VSTRUCTURE directives, in the usual way. The bootstrap samples are generated from a multivariate Normal distribution with dimension equal to the number of units in the analysis. The UVCOVARIANCE option supplies the variances and covariances of the units. If UVCOVARIANCE is not specified, the default is the unit-by-unit variance-covariance matrix from the REML analysis supplied by the SAVE option, or from the most recent REML if SAVE is not set. (See the UVCOVARIANCE option of VKEEP). Note: you can use the VUVCOVARIANCE procedure to form the variance-covariance matrix, if you know the variance components for a REML model that contains no covariance models.

The NBOOT option specifies the number of bootstrap samples to take (default 500). The NRETRIES option specifies the maximum number of extra samples to take when some REML analyses fail to converge; the default is to use the same number as specified by NBOOT. The SEED option supplies the seed for the random number generator used to form the samples; default 0 continues from the previous generation or (if none) initializes the seed automatically.

The fixed term to be tested is specified using the TERM option of VPOWER, and the response to be detected is specified by the RESPONSE parameter. This can supply a scalar to specify the maximum difference between the effects of the term, it can supply a table, to specify the anticipated effects themselves, or it can supply a variate with the effects entered in to the relevant units of the design. As an alternative to detecting a difference between its effects, you can ask to detect a contrast. RESPONSE must then supply a scalar, and TERM must be a main effect (that is, it must involve just one factor). The XCONTRASTS option must specify a variate or table containing the coefficients defining the contrast, and the CONTRASTTYPE option indicates whether this is a regression contrast (as specified by the REG function) or a comparison (as specified by COMPARISON).

The TMETHOD option specifies the type of test that is to be used to assess the term, with the following settings.

    fratio assumes that the term will be tested using its F ratio (default).
    wald assumes that the term will be tested by a Wald test.
    twosided assumes a two-sided test to assess whether a contrast of the term differs from zero (default).
    lessthan assumes a one-sided test to assess whether a contrast of the term is less than zero.
    greaterthan assumes a one-sided test to assess whether a contrast of the term is greater than zero.
    noninferiority assumes a test to check that a contrast of the term is not significantly less then zero. (See Method for more details.)
    equivalence assumes a one-sided test to check that a contrast of the term does not differ significantly from zero; see Method for more details.

The PROBABILITY option specifies the significance level to be used in the test; the default is 0.05, i.e. 5%. The CRITICALVALUE option can supply the critical value to be used in the test. (The VCRITICAL procedure can obtain this using a similar parametric bootstrap process to that used by VPOWER.). If CRITICALVALUE is not set, the critical value is obtained in the conventional way, using an F, chi-square or t-distribution, according to the type of test.

The VPRINT option controls the output from the REML analyses of the bootstrap samples, with the same settings as the PRINT option of REML. By default, nothing is printed.

The MAXCYCLE option sets a limit on the number of iterations in the REML analyses (default 30). The METHOD option controls whether REML uses the Fisher-scoring algorithm, or the AI algorithm with sparse matrix methods (the default). The WMETHOD option controls whether the Wald and F statistics are obtained from the table where terms are added sequentially (the default), or from the table where suitable terms are dropped from the full fixed model. Note that, if you use the table where terms are dropped, the TERM must not be not marginal to any other term in the fixed model: for example, the main effect A cannot be tested if the model contains an interaction, such as A.B. The FMETHOD option controls how to estimate the denominator degrees of freedom for the F tests. (This is relevant if TMETHOD=fratio, or if tests for fixed effects are being printed in the REML analyses of the bootstrap samples.) The WORKSPACE option specifies the number of blocks of internal memory to be set up for use by the REML algorithm. The default is to use the same value as in the SAVE structure, if SAVE has been set. Otherwise, it uses the value from the most recent REML analysis, or the standard REML default if there has been no analysis.

Printed output is controlled buy the PRINT option, with the following settings.

    power prints the estimated power.
    nnotconverged prints the number of bootstrap samples whose analysis failed to converge.
    monitoring prints monitoring information, showing the progress of the bootstrap sampling.

By default, the power is printed.

The POWER parameter can save the power, in a scalar. The NCONVERGED and NNOTCONVERGED parameters can save the number of samples whose analyses converged, or failed to converge, respectively.




The power is estimated by seeing how frequently the relevant test would be significant in the analyses of the bootstrap samples.

With an equivalence test, you define a threshold h below which two treatments can be assumed to be equivalent. The contrast c would be the difference between the treatments, and the null hypothesis that the treatments are not equivalent is that either

c ≤ –t



with the alternative hypothesis that they are equivalent, i.e.

t < c < t

This defines an intersection-union test, in which each component of the null hypothesis must be rejected separately. This implies performing two one-sided t-tests (this is known as a TOST procedure). If the significance level for the full test is to be α, each t-test must have significance level α (see Berger & Hsu 1996).

With a non-inferiority test, you again define the threshold t for the effect of the new treatment to be inferior to the standard treatment, and a contrast representing the effect of the new test minus the effect of the standard treatment. The null hypothesis is


which represents a one-sided “less-than” t-test.


Berger, M.L. & Hsu, J.C. (1996). Bioequivalence trials, intersection-union tests and equivalence confidence sets. Statistical Science, 11, 283-319.

See also

Directive: REML.


Commands for: REML analysis of linear mixed models, Design of experiments.


CAPTION     'VPOWER example',!t('1) Split plot design, like Oats example',\
            '(see Guide to REML in Genstat, Section 1.1)'); STYLE=meta,plain
" form design factors "
AGHIERARCHICAL [PRINT=design; ANALYSE=no; SEED=-1] blocks,wplots,subplots;\
            TREATMENTFACTORS=*,varieties,nitrogen; LEVELS=6,3,4
" use VUVCOVARIANCE to form unit-by-unit variance-covariance matrix,
  assuming variance components of 175 for blocks and 125 for
  whole-plots within blocks, and a residual variance of 100."
VARIATE       [VALUES=175,125,100] components
VUVCOVARIANCE [FIXED=varieties*nitrogen] !f(blocks/wplots/subplots);\
              COMPONENTS=components; UVCOVARIANCE=uvcov
" estimate power for maximum difference of 30 between effects of varieties "
VCOMPONENTS [FIXED=varieties*nitrogen] blocks/wplots/subplots
VPOWER      [TERM=varieties; UVCOVARIANCE=uvcov; SEED=192697] 30
CAPTION     !t('2) Spatial analysis of balanced lattice design, like Slate',\
            'Hall Farm example (see Guide to REML in Genstat, Section 3.2)')
SPLOAD      [PRINT=*] '%gendir%/data/slatehall.gsh'
" show analysis of the original data "
VCOMPONENTS [FIXED=variety] fieldrow.fieldcolumn+plotnumber
VSTRUCTURE  [TERM=fieldrow.fieldcolumn] AR,AR; FACTOR=fieldrow,fieldcolumn
REML        [PRINT=model,components,means] yield
" estimate power for a maximum difference of 2 between variety effects,
  assuming the same pattern of random variation as in the original data "
VPOWER      [TERM=variety; SEED=363946] 2.5
" estimate power assuming a variance component of 0.8 for plotnumber 
  (measurement error), a variance of 4 for the fieldrow.fieldcolumn
  covariance term with correlation parameters of 0.6 and 0.8 for
  fieldrow and fieldcolumn respectively "
SCALAR      spatialvar,plotvar; VALUE=4,0.3
" calculate variance ratio for plotnumber to use as the initial value
  in VCOMPONENTS: fieldrow.fieldcolumn is the residual term (see the
  warning about the term to be used as R), initial values for other
  terms are their variance components divided by the residual variance "
CALCULATE   plotgamma = plotvar / spatialvar
VCOMPONENTS [FIXED=variety] fieldrow.fieldcolumn + plotnumber;\
VSTRUCTURE  [TERM=fieldrow.fieldcolumn] AR,AR; FACTOR=fieldrow,fieldcolumn;\
" REML analysis with no iterations, to provide variability information
  for those variance and correlation parameters "
REML        [PRINT=model,components,means; MAXCYCLE=0] yield
VPOWER      [TERM=variety; SEED=532890] 2.5
Updated on March 4, 2019

Was this article helpful?