asremlPlus-package | R Documentation |
Assists in automating the selection of terms to include in mixed models when 'asreml' is used to fit the models. Procedures are available for choosing models that conform to the hierarchy or marginality principle, for fitting and choosing between two-dimensional spatial models using correlation, natural cubic smoothing spline and P-spline models. A history of the fitting of a sequence of models is kept in a data frame. Also used to compute functions and contrasts of, to investigate differences between and to plot predictions obtained using any model fitting function. The content falls into the following natural groupings: (i) Data, (ii) Model modification functions, (iii) Model selection and description functions, (iv) Model diagnostics and simulation functions, (v) Prediction production and presentation functions, (vi) Response transformation functions, (vii) Object manipulation functions, and (viii) Miscellaneous functions (for further details see 'asremlPlus-package' in help). The 'asreml' package provides a computationally efficient algorithm for fitting a wide range of linear mixed models using Residual Maximum Likelihood. It is a commercial package and a license for it can be purchased from 'VSNi' <https://vsni.co.uk/> as 'asreml-R', who will supply a zip file for local installation/updating (see <https://asreml.kb.vsni.co.uk/>). It is not needed for functions that are methods for 'alldiffs' and 'data.frame' objects. The package 'asremPlus' can also be installed from <http://chris.brien.name/rpackages/>.
Version: NA
Date: NA
Note that many of the function below are S3 methods so that the suffix can be omitted. Of course, whether or not the suffix is omitted, the object supplied to the first argument must be of the class specified by the suffix. For example getFormulae.asreml
is a getFormulae
method for an asreml.object
and so .asreml
can be omitted and the object supplied to the first argument must be of class asreml
.
(i) Data | |
Oats.dat
| Data for an experiment to investigate nitrogen response of |
3 oats varieties. | |
Wheat.dat
| Data for an experiment to investigate 25 varieties of |
wheat. | |
WaterRunoff.dat
| Data for an experiment to investigate the quality of |
water runoff over time | |
(ii) Model modification | |
addSpatialModel.asrtests
| Adds, to a supplied model, a spatial model that accounts for |
local spatial variation. | |
addSpatialModelOnIC.asrtests
| Uses information criteria to decide whether to add a spatial |
model to account for local spatial variation. | |
changeTerms.asrtests
| Adds and drops terms from one or both of the fixed or random |
model, replaces the residual (rcov) model with a new model | |
and changes bounds or initial values of terms. | |
iterate.asrtests
| Subject the fitted asreml.obj stored in an asrtests.object |
to further iterations of the fitting process. | |
newfit.asreml
| Refits an asreml model with changed arguments by extracting, |
modifying and evaluating its call - an alternate to |
|
update.asreml. | |
reparamSigDevn.asrtests
| Reparamterizes each random (deviations) term |
involving 'devn.fac' to a fixed term and ensures | |
that the same term, with 'trend.num' replacing | |
'devn.fac', is included if any other term with | |
'trend.num' is included in 'terms'. | |
rmboundary.asrtests
| Removes any boundary or singular variance components |
from the fit stored in 'asreml.obj' and records their | |
removal in an asrtests.object . |
|
setvarianceterms.call
| Allows the setting of bounds and initial values |
for terms in the 'random' and 'residual' arguments of an | |
'asreml' call. | |
(iii) Model selection and description | |
addto.test.summary
| Adds a row to a test.summary data.frame . |
changeModelOnIC.asrtests
| Uses information criteria to decide whether to change an |
already fitted model. | |
chooseModel.asrtests
| Determines and records the set of significant terms using an |
asrtests.object , taking into account the hierarchy |
|
or marginality relations of the terms.. | |
chooseModel.data.frame
| Determines the set of significant terms from results stored |
in a data.frame , taking into account the marginality |
|
relations of terms and recording the tests used in a | |
data.frame . |
|
chooseSpatialModelOnIC.asrtests
| Uses information criteria to choose the best fitting |
spatial model for accounting for local spatial variation. | |
getTestPvalue.asrtests
| Gets the p-value for a test recorded in the test.summary |
data.frame of an asrtests.object . |
|
infoCriteria.asreml
| Computes AIC and BIC for models. |
infoCriteria.list
| Computes AIC and BIC for models. |
R2adj.asreml
| Calculates the adjusted coefficient of determination for a |
specified combination of fixed and random terms. | |
recalcWaldTab.asrtests
| Recalculates the denDF, F.inc and P values for a table |
of Wald test statistics obtained using 'wald.asreml'. | |
REMLRT.asreml
| Performs a REML ratio test. |
bootREMLRT.asreml
| Performs a REML ratio test using the parametric |
bootstrap. | |
testranfix.asrtests
| Tests for a single fixed or random term in model |
fitted using 'asreml' and records the result in an | |
asrtests.object . |
|
testresidual.asrtests
| Fits a new residual formula using 'asreml', tests |
whether the change is significant and records the | |
result in an asrtests.object . |
|
testswapran.asrtests
| Tests, using a REMLRT, the significance of the difference |
between the current random model and one in which oldterms | |
are dropped and newterms are added. The result is recorded | |
in an asrtests.object . |
|
(iv) Model diagnostics and simulation | |
plotVariofaces
| Plots empirical variogram faces, including envelopes, |
from supplied residuals as described by Stefanova, Smith | |
& Cullis (2009). | |
variofaces.asreml
| Calculates and plots empirical variogram faces, including |
envelopes, as described by Stefanova, Smith & Cullis (2009). | |
estimateV.asreml
| Forms the estimated variance, random or residual matrix for |
the observations from the variance parameter estimates. | |
simulate.asreml
| Produce sets of simulated data from a multivariate normal |
distribution and save quantities related to the simulated data. | |
(v) Prediction production and presentation | |
addBacktransforms.alldiffs
| Adds or recalculates the backtransforms component of an |
alldiffs.object . |
|
allDifferences.data.frame
| Using supplied predictions and standard errors of pairwise |
differences or the variance matrix of predictions, forms | |
all pairwise differences between the set of predictions, and | |
p-values for the differences. | |
exploreLSDs
| Explores the computed LSD values for pairwise differences |
between predictions. | |
linTransform.alldiffs
| Calculates a linear transformation of the |
predictions stored in an alldiffs.object . |
|
pairdiffsTransform.alldiffs
| Calculates the differences between nominated pairs of |
predictions stored in an alldiffs.object |
|
pickLSDstatistics
| Pick LSDstatistics whose values minimize the number of |
errors in pairwise comparisons of predictions. | |
plotLSDerrors.data.frame
| Plots a map of the supplied errors that occur in using the |
computed LSD values for pairwise differences between | |
predictions. | |
plotLSDerrors.alldiffs
| Plots a map of the errors that occur in using the computed |
LSD values for pairwise differences between predictions. | |
plotLSDs.data.frame
| Plots a heat map of computed LSD values for pairwise |
differences between predictions. | |
plotLSDs.alldiffs
| Plots a heat map of computed LSD values for pairwise |
differences between predictions. | |
plotPredictions.data.frame
| Plots the predictions for a term, possibly with |
error bars. | |
plotPvalues.alldiffs
| Plots the p-values in the p.differences components |
of an alldiffs.object as a heat map. |
|
plotPvalues.data.frame
| Plots the p-values in data.frame as a heat map. |
predictPlus.asreml
| Forms the predictions and associated statistics for |
a term, using an asreml object and a wald.tab and | |
taking into account that a numeric vector | |
and a factor having parallel values may occur in the | |
model. It stores the results in an object of class | |
'alldifffs' and may print the results. It can be | |
when there are not parallel values. | |
predictPresent.asreml
| Forms the predictions for each of one or more terms |
and presents them in tables and/or graphs. | |
ratioTransform.alldiffs
| Calculates the ratios of nominated pairs of predictions |
stored in an alldiffs.object . |
|
recalcLSD.alldiffs
| Adds or recalculates the LSD.frame that is a |
component of an alldiffs.object . |
|
redoErrorIntervals.alldiffs
| Adds or replaces the error intervals stored in the |
prediction component of an alldiffs.object . |
|
renewClassify.alldiffs
| Renews the components in an alldiffs.object |
according to a new classify. | |
sort.alldiffs
| Sorts the components in an alldiffs.object |
according to the predicted values associated with a factor. | |
subset.alldiffs
| Subsets the components in an alldiffs.object according |
to the supplied condition. | |
sort.predictions.frame
| Sorts a predictions.frame according to the |
predicted values. associated with a factor. | |
(vi) Response transformation | |
angular
| Applies the angular transformation to proportions. |
angular.mod
| Applies the modified angular transformation to a |
vector of counts. | |
powerTransform
| Performs a combination of a linear and a power |
transformation on a variable. The transformed | |
variable is stored in the 'data.frame data'. | |
(vii) Object manipulation | |
as.alldiffs
| Forms an alldiffs.object from the supplied |
predictions, along with those statistics, associated with | |
the predictions and their pairwise differences, that have | |
been supplied. | |
asrtests
| Pseudonym for as.asrtests . |
as.asrtests
| Forms an asrtests.object that stores |
(i) a fitted asreml object, | |
(ii) a pseudo-anova table for the fixed terms and | |
(iii) a history of changes and hypothesis testing | |
used in obtaining the model. | |
as.predictions.frame
| Forms a predictions.frame from a data.frame, ensuring |
that the correct columns are present. | |
convAsremlobj.asreml
| Recreates an asreml object so that it is compatible with the |
currently loaded asreml version. |
|
convEffectNames2DataFrame.asreml
| Converts the effects names for a term stored in the component of an |
asreml object into a data.frame . |
|
facCombine.alldiffs
| Combines several factors into one in the components of |
an alldiffs.object . |
|
facRecast.alldiffs
| Reorders and/or revises the factor levels using the order of |
old levels in levels.order and the new labels for the |
|
levels given in newlabels . |
|
facRename.alldiffs
| Renames factor s in the prediction component |
of an alldiffs.object . |
|
getFormulae.asreml
| Gets the formulae from an asreml object. |
is.alldiffs
| A single-line function that tests whether an object is |
of class alldiffs. | |
is.asrtests
| A single-line function that tests whether an object is |
of class asrtests. | |
is.predictions.frame
| A single-line function that tests whether an object is |
of classes predictions.frame and data.frame . |
|
makeTPPSplineMats.data.frame
| Make the spline basis matrices and data needed to fit |
Tensor Product P-Splines. | |
print.alldiffs
| Prints the values in an alldiffs.object in a nice format. |
print.asrtests
| Prints the values in an asrtests.object . |
print.LSDdata
| Prints the components of a list containing data on the |
LSDs for all pairwise differences of predictions. | |
print.predictions.frame
| Prints the values in a predictions.frame , with or without |
title and heading. | |
print.test.summary
| Prints a data.frame containing a test.summary. |
print.wald.tab
| Prints a data.frame containing a Wald or pseudoanova table. |
printFormulae.asreml
| Prints the formulae from an asreml object. |
sort.alldiffs
| Sorts the components of an alldiffs.object according to |
the predicted values associated with a factor. | |
subset.alldiffs
| Subsets the components in an alldiffs.object according |
to the supplied condition. | |
subset.list
| Forms a list that contains a subset of the components of |
the supplied list . |
|
validAlldiffs
| Checks that an object is a valid alldiffs.object . |
validAsrtests
| Checks that an object is a valid asrtests.object . |
validPredictionsFrame
| Checks that an object is a valid predictions.frame . |
(viii) Miscellaneous | |
getASRemlVersionLoaded
| Finds the version of asreml that is loaded and |
returns the initial characters in version. | |
isCompoundSymmetric
| Tests whether an object of class matrix is |
compound symmetric | |
loadASRemlVersion
| Ensures that a specific version of asreml is loaded. |
num.recode
| Recodes the unique values of a vector using the values |
in a new vector. | |
permute.square
| Permutes the rows and columns of a square matrix. |
permute.to.zero.lowertri
| Permutes a square matrix until all the lower |
triangular elements are zero. | |
The functions whose names end in 'alldiffs" utilize an alldiffs.object
that stores:
(i) a predictions.frame
, being a data frame containing predicted values, variables indexing them and their standard errors and estimability status;
the lower and upper limits of error intervals will be included when these are requested,
(ii) optionally, square matrices containing all pairwise differences, the standard errors and p-values of the differences,
and a data.frame
containing LSD values and their summary statistics,
(iii) optionally, the variance matrix of the predictions, and
(iv) if the response was transformed for analysis, a data frame with backtransforms of the predicted values.
The functions whose names end in 'asrtests', which are most of the model functions, utilize an asrtests.object
that stores:
(i) the currently fitted model in asreml.obj
,
(ii) the table of test statistics for the fixed effects in wald.tab
, and
(iii) a data frame that contains a history of the changes made to the model in test.summary
.
Chris Brien [aut, cre] (<https://orcid.org/0000-0003-0581-1817>)
Maintainer: Chris Brien <chris.brien@adelaide.edu.au>
Butler, D. G., Cullis, B. R., Gilmour, A. R., Gogel, B. J. and Thompson, R. (2023). ASReml-R Reference Manual Version 4.2. VSN International Ltd, https://asreml.kb.vsni.co.uk/
asreml
## Not run:
## Analyse wheat dat using asreml and asremlPlus (see the WheatSpatial Vignette for details)
## Set up for analysis
library(dae)
library(asreml)
library(asremlPlus)
## use ?Wheat.dat for data set details
data(Wheat.dat)
# Add row and column covariates for the spatial modelling
tmp.dat <- within(Wheat.dat,
{
cColumn <- dae::as.numfac(Column)
cColumn <- cColumn - mean(unique(cColumn))
cRow <- dae::as.numfac(Row)
cRow <- cRow - mean(unique(cRow))
})
# Fit an initial model - Row and column random
current.asr <- do.call(asreml,
list(yield ~ Rep + WithinColPairs + Variety,
random = ~ Row + Column,
residual = ~ Row:Column,
data = tmp.dat))
# Intialize a model sequence by loading the current fit into an asrtests object
current.asrt <- as.asrtests(current.asr, NULL, NULL, IClikelihood = "full",
label = "Initial model")
# Check for and remove any boundary terms and print a summary of the fit in the asrtests object
current.asrt <- rmboundary(current.asrt)
print(current.asrt)
## Compare a series of information criteria to select a linear mixed model for the data
# Check the need for the term for within Column pairs (a post hoc factor)
current.asrt <- changeModelOnIC(current.asrt, dropFixed = "WithinColPairs",
label = "Try dropping withinColPairs", IClikelihood = "full")
print(current.asrt)
# Fit an ar1 model for local spatial variation
spatial.ar1.asrt <- addSpatialModelOnIC(current.asrt, spatial.model = "corr",
row.covar = "cRow", col.covar = "cColumn",
row.factor = "Row", col.factor = "Column",
IClikelihood = "full")
spatial.ar1.asrt <- rmboundary(spatial.ar1.asrt)
infoCriteria(list(nonspatial = current.asrt$asreml.obj,
ar1 = spatial.ar1.asrt$asreml.obj))
print(spatial.ar1.asrt)
# Choose a model for local spatial variation from several potential models
suppressWarnings(
spatial.asrts <- chooseSpatialModelOnIC(current.asrt,
row.covar = "cRow", col.covar = "cColumn",
row.factor = "Row", col.factor = "Column",
dropRandom = "Row + Column",
rotateX = TRUE, ngridangles = NULL,
asreml.option = "grp", return.asrts = "all"))
# Output the results
print(spatial.asrts$spatial.IC)
print(R2adj(spatial.asrts$asrts$TPNCSS$asreml.obj, include.which.random = ~ .))
print(spatial.asrts$best.spatial.mod)
print(spatial.asrts$asrts$TPNCSS)
printFormulae(spatial.asrts$asrts$TPNCSS$asreml.obj)
## Diagnosting checking using residual plots and variofaces
# Get current fitted asreml object and update to include standardized residuals
current.asr <- spatial.asrts$asrts$TPNCSS$asreml.obj
current.asr <- update(current.asr, aom=TRUE)
Wheat.dat$res <- residuals(current.asr, type = "stdCond")
Wheat.dat$fit <- fitted(current.asr)
# Do residuals-versus-fitted values plot
with(Wheat.dat, plot(fit, res))
# Plot variofaces
variofaces(current.asr, V=NULL, units="addtores",
maxiter=50, update = FALSE,
ncores = parallel::detectCores())
# Plot normal quantile plot
ggplot(data = Wheat.dat, mapping = aes(sample = res)) +
stat_qq_band(bandType = "ts") + stat_qq_line() + stat_qq_point() +
labs(x = "Theoretical Quantiles", y = "Sample Quantiles",
title = "Normal probability plot") +
theme(plot.title = element_text(size = 12, face = "bold")) + theme_bw()
## Prediction production and presentation
# Get Variety predictions and all pairwise prediction differences and p-values
Var.diffs <- predictPlus(classify = "Variety",
asreml.obj=current.asr,
error.intervals="halfLeast",
wald.tab=current.asrt$wald.tab,
sortFactor = "Variety",
tables = "predictions")
# Plot the Variety predictions, with halfLSD intervals, and the p-values
plotPredictions(Var.diffs$predictions,
classify = "Variety", y = "predicted.value",
error.intervals = "half")
plotPvalues(Var.diffs)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.