1. Home
  2. ABLUPS procedure

ABLUPS procedure

Calculates BLUPs for block terms in an ANOVA analysis (R.W. Payne).


PRINT = string token Controls printed output (blups); default blup 
PTERMS = formula Specifies the block terms whose BLUPs are to be printed; default is to print them all
PSE = string tokens Types of standard errors to be printed with the BLUPs (differences, alldifferences, blups, allblups); default diff, blup
SAVE = identifier Save structure for the ANOVA analysis; default is to take the most recent ANOVA analysis


TERMS = formula Block terms whose BLUPs etc are to be saved
BLUPS = table or pointer to tables Saves the BLUPs
SEBLUPS = table or pointer to tables Standard errors for the BLUPs of each term
SEDMEANS = symmetric matrix or pointer to symmetric matrices Standard errors of differences between the BLUPs of each term


This procedure can be used to calculate best linear unbiased predictors (BLUPs) for block terms in an analysis of variance that has been performed by the ANOVA directive. These differ from the ordinary ANOVA residuals in that they are predictors rather than estimates of the random effects. They usually have the property of shrinkage, i.e. they are biased towards zero. As a result they are more likely to represent future observations of the same terms.

By default, the BLUPs are from most recent ANOVA analysis. However, you can use an earlier analysis, by using the SAVE option of ABLUPS to specify its save structure (saved using the SAVE parameter of the earlier ANOVA command).

The BLUPs are usually printed. However, this can be suppressed by setting option PRINT=*. The PTERMS option can be used to specify the block terms whose BLUPs are to be printed. The default is to print the BLUPs for all the block terms.

The PSE option specifies which standard errors are printed, with the following settings.

differences prints a summary of the standard errors of differences between pairs of BLUPs,
alldifferences prints all the standard errors of differences between pairs of BLUPs,
blups prints a summary of the standard errors of the BLUPs, and
allblups prints all the standard errors of the BLUPs.

By default PSE=differences, blups.

The parameters of ABLUPS can save the BLUPs and standard errors. The TERMS parameter specifies the block terms whose BLUPs or standard errors are to be saved. The BLUPS parameter saves tables of BLUPs, the SEMEANS parameter saves tables containing their standard errors, and the SEDMEANS parameter saves symmetric matrices containing standard errors of differences between pairs of BLUPs. If you have a single term, you can supply a table or symmetric matrix for each of these parameters, as appropriate. However, if you have several terms, you must supply a pointer which will then be set up to contain as many tables or symmetric matrices as there are TERMS. A fault is given if the pointer has been defined already with a different number of elements to the number of TERMS.



The BLUPs are calculated by a ridge regression where the y-variate is the variate of combined residuals from the ANOVA, and the explanatory terms are the block terms. The ridge variate contains the reciprocals of the gamma parameters, which are the variance components of the block terms divided by the variance of the bottom stratum. See, for example, equation 5.4 and the subsequent discussion in Robinson (1991). The variance-covariance matrix for the BLUPs is calculated as

σ2 × ( Z′ Z + G-1 – Z′ X (X′ X)-1 X′ Z )-1

where G is a diagonal matrix containing the gamma parameters, X is the design matrix for the treatment effects and any covariates, Z is the design matrix for the block effects, and σ2 is the variance of the bottom stratum. The design matrices and the inverse of X′ X are obtained using Genstat regression; see the TERMS and RKEEP directives for details.

Action with RESTRICT

If the y-variate originally analysed by ANOVA was restricted, the calculations will use only the units not excluded by the restriction.


Robinson, G.K. (1991). That BLUP is a good thing: the estimation of random effects. Statistical Science, 6, 15-32.

See also

Directives: ANOVA, REML.
Commands for: Analysis of variance.


CAPTION     'ABLUPS example',\
            'Slate Hall Farm data (Guide to REML in Genstat, Section 1.8).';\
SPLOAD      [PRINT=*] '%gendir%/data/slatehall.gsh'
BLOCKS      replicates/(rows*columns)
ANOVA       [PRINT=aov,information,stratum] yield
" compare with REML "
VCOMPONENTS [FIXED=variety] replicates/(rows*columns)
REML        [PRINT=components; METHOD=fisher] yield
VDISPLAY    [PRINT=effects; PTERM=replicates/(rows*columns)]
Updated on October 29, 2020

Was this article helpful?