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.
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.
BIPLOT produces a biplot from a set of variates.
CANCORRELATION does canonical correlation analysis.
CLASSIFY obtains a starting classification for non-hierarchical clustering.
KCONCORDANCE) calculates Kendall’s Coefficient of Concordance.
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.
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.
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.
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.
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
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
FRESTRICTEDSET forms vectors with the restricted subset of a list of vectors.
GETDATA recovers data and information previously stored by
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.
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.
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.
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
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.
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.
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.
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.
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.