Modern agricultural research began at Rothamsted in 1843, when Sir John Bennet Lawes started the Broadbalk wheat experiment which is now the world’s longest-running field experiment. Rothamsted also pioneered the application of statistics in biological research when Sir Ronald Fisher was appointed in 1919 to study the accumulated results of Broadbalk and its many subsequent experiments. Fisher soon realised the need for improved statistical techniques over the whole range of agricultural and biological research, and the groundwork for modern applied statistics was laid by him and his colleagues during the 1920s and 1930s.
Statistical computing began at Rothamsted when Fisher’s successor Frank Yates obtained an Elliot 401 computer – one of the first computers to be used away from its manufacturing base, and one of the first to be used for statistical work. This extended the tradition, started by Fisher, of conducting statistical research to solve real problems arising from biological research. The resulting new methods could now be implemented in the Rothamsted statistical programs to enable them to be used more effectively in practice.
The ideas underlying Genstat took shape in 1965–1966 when John Nelder visited the Waite Institute of the University of Adelaide to work with Graham Wilkinson who was then on secondment there from CSIRO (Commonwealth Scientific and Industrial Research Organization). Full development began at Rothamsted in 1968 when Nelder was appointed as Head of the Statistics Department.
Release 1
The original Genstat’s (Versions 1-4) were designed in the days when computers could be run only in batch mode. Analysis programs were prepared on cards or paper tape, and the results were returned later in the day on wide sheets of output. In the 1980’s, under the leadership of Roger Payne, a new much revised version was produced with a redesigned syntax and style of operation, to make interactive use more convenient on the new generation of computers like the VAX 750. The new release, in 1987, was known as Genstat 5. However, the 5 was dropped in 2000, when the name was changed from “Genstat” to “GenStat”. This lasted until Release 18, when the original name “Genstat” was restored. The Genstat 5 command language now provides the scripting language for Genstat for Windows.
In addition to the new syntax, the new release also added the ability to plot high-resolution graphs, and to fit a range of standard curves (directive FITCURVE
). It also introduced the procedure structure. The initial test release had seven procedures.
ALIAS
finds out information about aliased model terms in analysis of variance.
CHECKARGUMENT
checks the arguments of a procedure.
LIBEXAMPLE
accesses examples and source code of library procedures.
LIBHELP
provides help information about library procedures.
LIBINFORM
provides information about the procedure library.
NOTICE
provides news and other information about Genstat.
PERCENT
expresses the body of a table as percentages of one of its margins.
The full release in 1987, with procedure library PL1, added 28 new procedures.
AONEWAY
|provides one-way analysis of variance for inexperienced users.
APLOT
plots residuals from an ANOVA
analysis.
BIPLOT
produces a biplot from a set of variates.
CANCORRELATION
does canonical correlation analysis.
CENSOR
pre-processes censored data before analysis by ANOVA
.
CLASSIFY
obtains a starting classification for non-hierarchical clustering.
CONCORD
(now KCONCORDANCE
) calculates Kendall’s Coefficient of Concordance.
CORRESP
(now CORANALYSIS
) does correspondence analysis, or reciprocal averaging.
DDENDROGRAM
draws dendrograms with control over structure and style.
DESCRIBE
saves and/or prints summary statistics for variates.
DISCRIMINATE
performs discriminant analysis.
FIELLER
calculates effective doses or relative potencies.
GENPROCRUSTES
performs a generalized Procrustes analysis.
GLM
analyses non-standard generalized linear models.
KOLMOG2
performs a Kolmogorov-Smirnoff two-sample test.
KRUSKAL
carries out a Kruskal-Wallis one-way analysis of variance.
MANNWHITNEY
performs a Mann-Whitney U test.
MANOVA
performs multivariate analysis of variance and covariance.
MULTMISSING
estimates missing values for units in a multivariate data set.
ORTHPOLYNOMIAL
calculates orthogonal polynomials.
QUANTILE
calculates quantiles of the values in a variate.
RCHECK
checks the fit of a linear or generalized linear regression.
SKEWSYMMETRY
provides an analysis of skew-symmetry for an asymmetric matrix.
SPEARMAN
calculates Spearman’s rank correlation coefficient.
SUBSET
forms vectors containing subsets of the values in other vectors.
TTEST
performs a one- or two-sample t-test.
VHOMOGENEITY
tests homogeneity of variances and variance-covariance matrices.
WILCOXON
performs a Wilcoxon Matched-Pairs (Signed-Rank) test.
Procedure library PL2, in 1988, added 16 procedures.
BARCHART
(now a directive) plots a bar chart using line-printer or high-quality graphics.
DSHADE
produces a shaded similarity matrix by high-quality graphics.
GRBETA
(replaced in PL7 by GRANDOM
) generates pseudo-random numbers from a beta distribution.
GRCHI
(replaced by GRANDOM
) generates pseudo-random numbers from the chi-square distribution.
GRF
(replaced by GRANDOM
) generates pseudo-random numbers from the F distribution.
GRGAMMA
(replaced by GRANDOM
) generates pseudo-random numbers from the gamma distribution.
GRLOGNORMAL
(replaced by GRANDOM
) generates pseudo-random numbers from the log-Normal distribution.
GRNORMAL
(replaced by GRANDOM
) generates pseudo-random numbers from the Normal distribution.
GRT
(replaced by GRANDOM
) generates pseudo-random numbers from Student’s t distribution.
GRWEIBULL
(replaced by GRANDOM
) generates pseudo-random numbers from the Weibull distribution.
LATTICE
analyses square and rectangular lattice designs.
LIBMANUAL
prints a ‘Manual’ containing information about Library procedures.
MANCOVA
performs a multivariate analysis of covariance.
NPCHECK
checks the validity of input data for nonparametric procedures.
NPRANK
produces ranks, allowing for ties, for the nonparametric procedures.
REPMEASURES
(replaced in PL8 by AREPMEASURES
) checks if a set of repeated measures can be analysed as a split plot.
Then, in 1989, PL3 added 13 more procedures.
ANTORDER
assesses order of ante-dependence for repeated measures data.
ANTTEST
calculates overall tests based on a specified order of ante-dependence.
BJESTIMATE
fits an ARIMA model, with forecast and residual checks.
BJFORECAST
plots forecasts of a time series using a previously fitted ARIMA.
BJIDENTIFY
displays time series statistics useful for ARIMA model selection.
CONVEXHULL
finds the points of a single or a full peel of convex hulls.
CUMDISTRIBUTION
fits frequency distributions to accumulated counts.
HANOVA
does hierarchical analysis of variance or covariance for unbalanced data.
LIBMANUAL
produces a manual for the procedure library.
LRVSCREE
prints a scree diagram and/or a difference table of latent roots.
SMOOTHSPECTRUM
forms smoothed spectrum estimates for univariate time series.
VINTERPOLATE
performs linear & inverse linear interpolation between variates.
VREGRESS
performs regression across variates.
Release 2
This was produced in 1990, and had 12 new directives.
COLOUR
enables the red, green and blue intensities of the Genstat colours to be modified (where permitted by the graphics device).
DREAD
reads the locations of points from an interactive graphical device.
DSURFACE
produces perspective views of two-way arrays of numbers.
FCLASSIFICATION
forms a classification set for each term in a formula, breaks a formula up into separate formulae (one for each term) and applies a limit to the number of factors and variates in the terms of a formula.
MDS
performs non-metric multidimensional scaling.
MONOTONIC
fits an increasing monotonic regression of y on x.
QUESTION
obtains a response using a Genstat menu.
RFUNCTION
estimates functions of parameters of a nonlinear model.
REML
fits a variance-components model by residual (or restricted) maximum likelihood.
VCOMPONENTS
defines the variance-components model for REML
.
VDISPLAY
display further output from a variance-components analysis.
VKEEP
copies information from a variance-components analysis into Genstat data structures.
Its first procedure library, PL4, had 20 new procedures.
AKAIKEHISTOGRAM
prints histograms with improved definition of groups.
BINOMIAL
calculates probabilities from the binomial distribution.
BSUPDATE
creates or updates a backing-store subfile.
DECIMALS
sets the number of decimals for a structure, using its round-off.
DILUTION
calculates Most Probable Numbers from dilution series data.
FITPARALLEL
carries out analysis of parallelism for non-linear functions.
FITSCHNUTE
fits a general 4 parameter growth model to a non-decreasing y-variate.
FTEXT
forms a text structure from a variate.
GINVERSE
calculates the generalized inverse of a matrix.
INVNORMAL
calculates probabilities from the inverse normal distribution.
LINDEPENDENCE
finds the linear relations associated with matrix singularities.
LOGNORMAL
calculates probabilities from the lognormal distribution.
MENU
initiates a menu system.
PAIRTEST
performs t-tests for pairwise differences.
POISSON
calculates probabilities from the Poisson distribution.
RANK
produces ranks, from the values in a variate, allowing for ties.
RPAIR
gives t-tests for all pairwise differences of means from regression/GLM.
STUDENT
calculates probabilities from Student’s t-distribution.
VFUNCTION
calculates functions of variance components from a REML analysis.
VPLOT
plots residuals from a REML analysis.
Procedure library PL5, in 1991, added 10 procedures.
AUDISPLAY
produces further output for an unbalanced design.
AUNBALANCED
performs analysis of variance for unbalanced designs.
LVARMODEL
analyses a field trial using the Linear Variance Neighbour model.
MPOWER
forms integer powers of a square matrix.
NORMTEST
performs tests of univariate and/or multivariate normality.
PROBITANALYSIS
fits probit models allowing for natural mortality & immunity.
SAMPLE
samples from a set of units, possibly stratified by factors.
VTABLE
forms a variate and set of classifying factors from a table.
WADLEY
fits models for Wadley’s problem, allowing alternative links & errors.
Procedure library PL6, in 1992, added 21 further procedures.
AFALPHA
generates alpha designs.
AFCYCLIC
generates block and treatment factors for cyclic designs.
AFUNITS
forms a factor to index the units of the final stratum of a design.
AKEY
generates values for treatment factors using the design key method.
ASWEEP
performs sweeps for model terms in an analysis of variance.
DAPLOT
(now replaced by APLOT
) plots residuals from ANOVA with interactive identification of outliers.
DAYLENGTH
calculates daylengths at a given period of the year.
DBARCHART
produces barcharts for one or two-way tables.
EXTRABINOMIAL
fits the models of Williams (1982) to overdispersed proportions.
FACPRODUCT
forms a factor with a level for every combination of other factors.
FEXACT2X2
does Fisher’s exact test for 2×2 tables.
GLMM
fits a generalized linear mixed model to binomial data.
HEATUNITS
calculates accumulated heat units of a temp. dependent process.
NLCONTRASTS
fits non-linear contrasts to quantitative factors in ANOVA.
PDESIGN
prints or stores treatment combinations tabulated by block factors.
RGRAPH
draws a graph to display the fit of a regression model.
RIDGE
produces ridge regression and principal component regression analyses.
ROBSSPM
forms robust estimates of sum-of-squares-and-products matrices.
SIGNTEST
performs a one or two sample sign test.
VEQUATE
equates across numerical structures.
VWALD
prints Wald tests for fixed terms in a REML analysis.
Release 3
This was produced in 1993, and had 10 new directives.
DDISPLAY
redraws the current graphical display.
DISTRIBUTION
estimates the parameters of continuous and discrete distributions.
DKEEP
saves information from the last plot on a particular device.
DUPLICATE
forms new data structures with attributes taken from an existing structure.
D3HISTOGRAM
produces 3-dimensional histograms.
ENQUIRE
provides details about files opened by Genstat.
EXECUTE
executes the statements contained within a text.
GROUPS
forms a factor (or grouping variable) from a variate or text, together with the set of distinct values that occur.
SETOPTION
sets or modifies defaults of options of Genstat directives or procedures.
SETPARAMETER
sets or modifies defaults of parameters of Genstat directives or procedures.
Its procedure library, PL7, had 22 new procedures.
AGALPHA
forms alpha designs by standard generators for up to 100 treatments.
AGCYCLIC
generates cyclic designs from standard generators.
AGDESIGN
generates generally balanced designs.
AGFRACTION
generates fractional factorial designs.
AGHIERARCHICAL
generates orthogonal hierarchical designs.
BOXPLOT
draws box-and-whisker diagrams or schematic plots..
CHISQUARE
calculates chi-square statistics for one- and two-way tables.
DESIGN
helps to select and generate effective experimental designs.
DMST
gives a high resolution plot of an ordination with minumum spanning tree.
DREPMEASURES
plots profiles and differences of profiles for repeated measures data.
FACAMEND
permutes the levels and labels of a factor.
FDESIGNFILE
forms a backing-store file of information for AGDESIGN
.
FILEREAD
reads data from a file, assumed to be in a rectangular array.
GRANDOM
generates pseudo-random numbers from probability distributions.
PCOPROCRUSTES
performs a multiple Procrustes analysis.
PPAIR
displays results of t-tests for pairwise differences in compact diagrams.
PREWHITEN
filters a time series before spectral analysis.
PTDESCRIBE
gives summary and second order statistics for a point process.
RJOINT
does modified joint regression analysis for variety-by-environment data.
RUNTEST
performs a test of randomness of a sequence of observations.
VORTHPOLYNOMIAL
calculates orthogonal polynomial time-contrasts for repeated measures.
XOCATEGORIES
performs analyses of categorical data from crossover trials.
Procedure library PL8, in 1994, added 25 further procedures.
AFORMS
prints data forms for an experimental design
AGRAPH
plots one- or two-way tables of means from ANOVA
.
AMERGE
merges extra units into an experimental design.
APPEND
appends a list of vectors of the same type.
APRODUCT
forms a new experimental design from the product of two designs.
ARANDOMIZE
randomizes and prints an experimental design.
AREPMEASURES
produces an analysis of variance for repeated measurements.
BANK
calculates the optimum aspect ratio for a graph.
BOOTSTRAP
produces bootstrapped estimates, standard errors and distributions.
DDESIGN
plots the plan of an experimental design.
DIALLEL
analyses full and half diallel tables with parents.
DOTPLOT
produces a Dot Plot using line-printer or high-resolution graphics.
DPARALLEL
displays multivariate data using parallel coordinates.
DSCATTER
produces a scatter-plot matrix using high-quality graphics.
FLIBHELP
forms a help information file for use by LIBHELP
&c.
FRESTRICTEDSET
forms vectors with the restricted subset of a list of vectors.
GETDATA
recovers data and information previously stored by SAVEDATA
.
IFUNCTION
estimates implicit and/or explicit functions of parameters.
INSIDE
determines whether points lie within a specified polygon.
JACKKNIFE
produces Jackknife estimates and standard errors.
MVARIOGRAM
fits models to an experimental variogram.
PERIODTEST
gives periodogram-based tests for white noise in time series.
RUGPLOT
draws “rugplots” to display the distribution of one or more samples.
SAVEDATA
saves all the current data and information for use in a future run.
STEM
produces a simple stem-and-leaf chart.
Release 3.2
This was produced in 1995, and had 6 new directives.
LIST
lists details of the data structures currently available within Genstat.
FKEY
forms design keys for multi-stratum experimental designs, allowing for confounded and aliased treatments.
FPSEUDOFACTORS
determines patterns of confounding and aliasing from a design key, and extends the treatment model to incorporate the necessary pseudo factors.
FVARIOGRAM
forms auto variograms for individual variates or cross variograms for pairs of variates.
KRIGE
calculates kriged estimates using a model fitted to the sample variogram.
WORKSPACE
accesses private data structures for use in procedures.
Its procedure library, PL9, had 8 new procedures.
ANTMVESTIMATE
estimates missing values in repeated measurements.
FITMULTIVARIATE
(now RMULTIVARIATE
) provides multivariate linear regression with accumulated testing of terms.
GEE
fits models to longitudinal data by generalized estimating equations.
KAPLANMEIER
calculates the Kaplan-Meier estimate of the survivor function.
KAPPA
calculates a kappa coefficient of agreement for nominally scaled data.
PLS
fits a partial least squares regression model.
RPROPORTIONAL
fits the proportional hazards model to survival data as a generalized linear model.
RSURVIVAL
models survival times of exponential, Weibull or extreme-value distributions.
The main importance of Release 3.2 though, is that it provided the server for the first edition, in 1996, of Genstat for Windows.
Release 4.1
This provided the server, in 1997, for the second edition of Genstat for Windows and, in 1998, for the third edition. It had 6 new directives.
DCLEAR
clears a graphics screen
DECLARE
declares one or more customized data structures
STRUCTURE
defines a customized data structure
VPEDIGREE
generates an inverse relationship matrix for use when fitting animal or plant breeding models by REML
VSTATUS
prints the current model settings for REML
VSTRUCTURE
defines a variance structure for random effects in REML
Its procedure library, PL10, had 24 new procedures.
AGBIB
generates balanced incomplete block designs.
AGBOXBEHNKEN
generates Box Behnken designs.
AGCENTRALCOMPOSITE
generates central composite designs.
AGMAINEFFECT
generates designs to estimate main effects of two-level factors.
AGNEIGHBOUR
generates neighbour-balanced designs.
ASTATUS
provides information about the settings of ANOVA
models and variates.
A2PLOT
plots effects from two-level designs with robust s.e. estimates.
CINTERACTION
clusters rows and columns of a two-way interaction table.
CVAPLOT
plots the mean and unit scores from a canonical variate analysis.
CVASCORES
calculates scores for individual units in canonical variate analysis.
DPOLYGON
draws polygons using high-resolution graphics.
DPTMAP
draws maps for spatial point patterns using high-resolution graphics.
DPTREAD
adds points interactively to a spatial point pattern.
DRPOLYGON
reads a polygon interactively from the current graphics device.
FITNONNEGATIVE
fits a generalized linear model with nonnegativity constraints.
GRLABEL
randomly labels two or more spatial point patterns.
GRTHIN
randomly thins a spatial point pattern.
GRTORSHIFT
performs a random toroidal shift on a spatial point pattern.
LIBVERSION
provides the name of the current Genstat 5 Procedure Library.
PTBOX
generates a box bounding or surrounding a spatial point pattern.
PTCLOSEPOLYGON
closes open polygons.
PTREMOVE
removes points interactively from a spatial point pattern.
SPLINE
calculates a set of basis functions for M-, B- or I-splines.
STANDARDIZE
standardizes columns of a data matrix to have mean 0 & variance 1.
Procedure library PL11 was produced in 1999 to accompany the fourth edition of Genstat for Windows. It added 11 procedures.
AGLATIN
generates mutually orthogonal Latin squares.
AGSEMILATIN
generates semi-Latin squares.
APOLYNOMIAL
forms the equation for a polynomial contrast fitted by ANOVA
.
CONFIDENCE
calculates simultaneous confidence intervals (D.M. Smith)
GALOIS
forms addition and multiplication tables for a Galois finite field .
MANTEL
assesses the association between similarity matrices.
PERMUTE
forms all possible permutations of the integers 1…n.
PRIMEPOWER
decomposes a positive integer into its constituent prime powers.
REPLICATION
(now replaced by ASAMPLESIZE
) calculates the replication necessary to detect a treatment effect.
RSCREEN
performs screening tests for generalized or multivariate linear models.
YTRANSFORM
estimates the parameter lambda of a single parameter transformation.
Release 4.2
This provided the server, in 2000, for the fifth edition of GenStat for Windows. We later realized that it should have been named Release 5, to synchronize the numbering. Instead that was done for the sixth edition, when the server release number jumped from 4.2 to 6. Release 4.2 had 7 new directives.
D3GRAPH
plots a 3-dimensional graph.
DFINISH
ends a sequence of related high-resolution plots.
DSTART
starts a sequence of related high-resolution plots.
VRESIDUAL
defines the residual term for a REML model.
XAXIS
defines the x-axis in each window for high-resolution graphics.
YAXIS
defines the y-axis in each window for high-resolution graphics.
ZAXIS
defines the z-axis in each window for high-resolution graphics.
Its procedure library, PL12, had 8 new procedures.
AFLABELS
forms a variate of unit labels for a design.
AGSQLATTICE
generates square lattice designs.
DTIMEPLOT
produces horizontal bars displaying a continuous time record.
FRIEDMAN
performs Friedman’s non-parametric analysis of variance.
GRMULTINORMAL
generates multivariate normal pseudo-random numbers.
MEDIANTETRAD
gives robust identification of multiple outliers in 2-way tables.
PARTIALCORRELATIONS
calculates partial correlations for a list of variates.
TRELLIS
does a trellis plot.
Procedure library PL13, in 2001, contained 13 new procedures:
AFIELDRESIDUALS
display residuals in field layout.
ALLPAIRWISE
performs a range of all pairwise multiple comparison tests..
AMMI
allows exploratory analysis of genotype x environment interactions.
AUDISPLAY
saves output from analysis of an unbalanced design (by AUNBALANCED
).
EDINVNORMAL
calculates the equivalent deviate for inverse normal distributions.
FBASICCONTRASTS
breaks a model term down into its basic contrasts.
FFRAME
forms multiple windows in a plot-matrix for high-resolution graphics.
FPROJECTIONMATRIX
forms a projection matrix for a set of model terms.
GSTATISTIC
calculates the gamma statistic of agreement for ordinal data.
JOIN
joins or merges two sets of vectors together, based on classifying keys.
KERNELDENSITY
uses kernel density estimation to estimate a sample density.
MVFILL
replaces missing values in a vector with the previous non-missing value.
RSEARCH
helps search through models for a regression or glm.