This function forms the predictions for each term in terms
using a supplied asreml object and
predictPlus.asreml.
Tables are produced using predictPlus.asreml,
in conjunction with
allDifferences.data.frame,
with the argument tables specifying which tables are printed.
The argument plots, along with transform.power,
controls which plots are produced. The plots are
produced using plotPredictions.data.frame, with
line plots produced when variables involving x.num or x.fac
are involved in classify for the predictions and bar charts
otherwise.
In order to get the correct predictions you may
need to supply additional arguments to predict.asreml
through … e.g. present, parallel, levels.
The order of plotting the levels of
one of the factors indexing the predictions can be modified and is achieved
using sort.alldiffs.
# S3 method for asreml
predictPresent(asreml.obj, terms,
linear.transformation = NULL,
wald.tab = NULL, dDF.na = "residual", dDF.values = NULL,
x.num = NULL, x.fac = NULL, nonx.fac.order = NULL,
x.pred.values = NULL, x.plot.values = NULL,
plots = "predictions", panels = "multiple",
graphics.device = NULL,
error.intervals = "Confidence", interval.annotate = TRUE,
meanLSD.type = "overall", LSDby = NULL,
avsed.tolerance = 0.25, titles = NULL,
colour.scheme = "colour", save.plots = FALSE,
transform.power = 1, offset = 0, scale = 1,
pairwise = TRUE, Vmatrix = FALSE,
tables = "all", level.length = NA,
alpha = 0.05, inestimable.rm = TRUE,
sortFactor = NULL, sortWithinVals = NULL,
sortOrder = NULL, decreasing = FALSE,
trace = FALSE, ggplotFuncs = NULL, ...)asreml object for a fitted model.
A character vector giving the terms for which predictions
are required.
A formula or a matrix specifying
a linear transformation to be applied to the predictions.
If a formula is given then it is taken to be a submodel of
the model term corresponding to the classify. The projection matrix
that transforms the predictions so that they conform to the submodel
is obtained; the submodel should involving the variables in the
classify. For example,
for classify set to "A:B", the submodel ~ A + B will
result in the predictions for the combinations of
A and B being made additive for the factors
A and B.
If a matrix is provided then it will be
used to apply the linear transformation to the predictions.
It might be a contrast matrix or a matrix of
weights for a factor used to obtain the weighted average over that factor.
The number of rows in the matrix should equal the
number of linear combinations of the predictions desired and
the number of columns should equal the number of predictions.
In either case, as well as the values of the linear combinations,
their standard errors, pairwise differences and associated statistics
are returned in the alldiffs.object.
A data.frame containing the pseudo-anova table for the
fixed terms produced by a call to wald.asreml. The main
use of it here is in determinining the degrees of freedom for
calculating confidence or half-LSD error.intervals and p-values,
the latter to be stored in the p.differences component of the
alldiffs.object that is created.
The method to use to obtain approximate denominator degrees of freedom.
when the numeric or algebraic methods produce an NA. Consistent with
when no denDF are available, the default is "residual" and so the residual
degrees of freedom from asreml.obj$nedf are used. If
dDF.na = "none", no subtitute denominator degrees of freedom
are employed; if dDF.na = "maximum", the maximum of those denDF
that are available, excluding that for the Intercept, is used; if all
denDF are NA, asreml.obj$nedf is used. If
dDF.na = "supplied", a vector of values for the
denominator degrees of freedom is to be supplied in dDF.values.
Any other setting is ignored and a warning message produced. Generally,
substituting these degrees of freedom is anticonservative in that it
is likely that the degrees of freedom used will be too large.
A vector of values to be used when dDF.na = "supplied".
Its values will be used when denDF in a test for a fixed effect
is NA. This vector must be the same length as the number of
fixed terms, including (Intercept) whose value could be NA.
A character string giving the name of the numeric covariate that
corresponds to x.fac, is potentially included in terms in the
fitted model and which corresponds to the x-axis variable. It should
have the same number of unique values as the number of levels in
x.fac.
A character string giving the name of the factor that corresponds to
x.num, is potentially included in terms in the fitted model and
which corresponds to the x-axis variable. It should have the same
number of levels as the number of unique values in x.num.
The levels of x.fac must be in the order in which they are to
be plotted - if they are dates, then they should be in the form
yyyymmdd, which can be achieved using as.Date. However, the levels
can be non-numeric in nature, provided that x.num is also set.
A character vector giving the order in which factors other
than x.fac are to be plotted in plots with multiple panels
(i.e. where the number of non-x factors is greater than 1).
The first factor in the vector
will be plotted on the X axis (if there is no x.num or
x.fac. Otherwise, the order of plotting the factors is in
columns (X facets) and then rows (Y facets). By default the order is
in decreasing order for the numbers of levels of the non x factors.
The values of x.num for which predicted values are required.
The actual values to be plotted on the x axis or in the labels of
tables. They are
needed when values different to those in x.num are to be
plotted or x.fac is to be plotted because there is no
x.num term corresponding to the same term with x.fac.
Possible values are "none", "predictions",
"backtransforms" and "both". Plots are not produced
if the value is "none". If data are not transformed for
analysis (transform.power = 1), a plot of the predictions
is produced provided plots is not "none". If the
data are transformed, the value of plots determines what
is produced.
Possible values are "single" and "multiple".
When line plots are to be produced, because variables involving
x.num or x.fac are involved in classify for
the predictions, panels determines whether or not a single
panel or multiple panels in a single window are produced. The
panels argument is ignored for for bar charts.
A character specifying a graphics device for plotting.
The default is graphics.device = NULL, which will result
in plots being produced on the current graphics device. Setting it to
"windows", for example, will result in a windows graphics
device being opened.
A character string indicating the type of error interval, if any,
to calculate in order to indicate uncertainty in the results.
Possible values are "none", "StandardError", "Confidence"
and "halfLeastSignificant". The default is for confidence limits to
be used. The "halfLeastSignificant" option results in half the
Least Significant Difference (LSD) being added and subtracted to the
predictions, the LSD being calculated using the square root of the mean of the
variances of all or a subset of pairwise differences between the predictions.
If the LSD is zero, as can happen when predictions are constrained to be equal,
then the limits of the error intervals are set to NA.
If meanLSD.type is set to overall, the avsed.tolerance is not
NA and the range of the SEDs divided by the average of the SEDs exceeds
avsed.tolerance then the error.intervals calculations and the plotting
will revert to confidence intervals.
A logical indicating whether the plot annotation indicating the
type of error.interval is to be included in the plot.
A numeric giving the value of the SED range, the range of the SEDs
divided by the square root of the mean of the variances of all or a subset of the
pairwise differences, that is considered reasonable in calculating
error.intervals. It should be a value between 0 and 1. The following rules apply:
If avsed.tolerance is NA then mean LSDs of the type specified by
meanLSD.type are calculated and used in error.intervals and plots.
Irrespective of the setting of meanLSD.type, if avsed.tolerance is not
exceeded then the mean LSDs are used in error.intervals and plots.
If meanLSD.type is set to overall, avsed.tolerance is not
NA, and avsed.tolerance is exceeded then error.intervals and
plotting revert to confidence intervals.
If meanLSD.type is set to factor.combinations and avsed.tolerance
is not exceeded for any factor combination then the half LSDs are
used in error.intervals and plots; otherwise, error.intervals and
plotting revert to confidence intervals.
If meanLSD.type is set to per.prediction and avsed.tolerance
is not exceeded for any prediction then the half LSDs are used in error.intervals
and plots; otherwise, error.intervals and plotting revert to confidence intervals.
A character string determining whether the mean LSD stored is
(i) the overall mean, based on the square root of the mean of the variances of
all pairwise variances, (ii) the mean for each factor.combination of the
factors specified by LSDby, which is based on the square root of
the mean of the variances for all pairwise differences for each factor combination, unless
there is only one predction for a factor.combination, when notional LSDs are
calculated that are based on the standard error of the prediction multiplied by the square
root of two, or
(iii) the per.prediction mean, based, for each prediction,
on the square root of the mean of the variances for all pairwise differences involving
that prediction. It also
determines, in conjunction with avsed.tolerance, which LSD will be used
in calculating error.intervals and, hence, is used for plots.
A character (vector) of variables names, being the names of the
factors or numerics in the classify for each
combination of which a mean LSD, minLSD and max LSD is stored in the LSD
component of the alldiffs.object when meanLSD.type is
factor.combinatons.
A list, each component of which is named for a column in
the data.frame for asreml.obj and contains a
character string giving a title to use in output (e.g. tables and
graphs). Here they will be used for axis labels.
A character string specifying the colour scheme for the plots.
The default is "colour" which produces coloured lines and bars,
a grey background and white gridlines. A value of "black"
results in black lines, grey bars and gridlines and a white background.
A logical that determines whether any plots will be saved.
If they are to be saved, a file name will be generated that consists of the
following elements separated by full stops: the response variable name with
.back if backtransformed values are being plotted,
the classify term, Bar or Line and, if error.intervals
is not "none", one of SE, CI or LSI. The
file will be saved as a `png' file in the current work directory.
A number specifying the power of a transformation, if one
has been applied to the response variable. Unless it is equal to 1, the default,
back-transforms of the predictions will be obtained and presented in tables
or graphs as appropriate. The back-transform will raise the predictions to the
power equal to the reciprocal of transform.power, unless it equals 0 in
which case the exponential will be taken. Any scaling and offsetting will also be
taken into account in the backtransformation.
A number that has been added to each value of the response after any scaling
and before applying any power transformation. Unless it is equal to 0, the
default, back-transforms of the predictions will be obtained and presented in
tables or graphs as appropriate. The backtransformation will, after
backtransforming for any power transformation, subtract the offset.
A number by which each value of the response has been multiply before adding
any offset and applying any power transformation. Unless it is equal to 1, the
default, back-transforms of the predictions will be obtained and presented in
tables or graphs as appropriate. The backtransformation will, after backtransforming
for any power transformation and then subtracting the offset, divide by the scale.
A logical indicating whether all pairise differences of the
predictions and their standard errors and p-values are to be
computed and stored. If tables is equal to "differences"
or "all" or error.intervals is equal to
"halfLeastSignificant", they will be stored irrespective of the
value of pairwise.
A logical indicating whether the variance matrix of the
predictions will be stored as a component of the alldiffs.object
that is returned. If linear.transformation is set, it will
be stored irrespective of the value of Vmatrix.
A character vector containing a combination of
predictions, vcov, backtransforms,
differences, p.differences, sed,
LSD and all.
These nominate which components of the alldiffs.object
to print.
The maximum number of characters from the the levels of
factors to use in the row and column labels of the tables produced by
allDifferences.data.frame.
The significance level for LSDs or 1 - alpha is the confidence level for confidence intervals.
A logical indicating whether rows for predictions that
are not estimable are to be removed from the components of the
alldiffs.object.
A character containing the name of the
factor that indexes the set of predicted values that determines
the sorting of the components of the alldiffs.object by
sort.alldiffs. If NULL then sorting is not carried
out. If there is more than one variable
in the classify term then sortFactor is sorted for the
predicted values within each combination of the values of the sortWithin
variables: the classify variables, excluding the
sortFactor. There should be only one predicted value for
each unique value of sortFactor within each set defined by a
combination of the values of the sortWithin variables.
A list with a component named for each factor and
numeric that is a classify variable for the predictions,
excluding sortFactor. Each component should contain a single
value that is a value of the variable. The combination of this set
of values will be used to define a subset of the predicted values whose
order will define the order of sortFactor to be used for all
combinations of the sortWithinVals variables. If
sortWithinVals is NULL then the first value of each
sortWithin variable in predictions component is used
to define sortWithinVals. If there is only one variable in the
classify then sortWithinVals is ignored.
A character vector whose length is the same as the number
of levels for sortFactor in the predictions component of the
alldiffs.object. It specifies the desired order of the
levels in the reordered components of the alldiffs.object.
The argument sortWithinVals is ignored.
The following creates a sortOrder vector levs for factor
f based on the values in x:
levs <- levels(f)[order(x)].
A logical passed to order that detemines whether
the order for sorting the components of the alldiffs.object is for
increasing or decreasing magnitude of the predicted values.
If TRUE then partial iteration details are displayed when ASReml-R functions are invoked; if FALSE then no output is displayed.
A list, each element of which contains the
results of evaluating a ggplot function.
It is created by calling the list function with
a ggplot function call for each element.
It is passed to plotPredictions.data.frame.
further arguments passed to predict.asreml via
predictPlus.asreml and to ggplot
via plotPredictions.data.frame.
A list containing an alldiffs.object for each term for
which tables are produced. The names of the components of this list are
the terms with full-stops (.) replacing colons (:).
Plots are also preduced depending on the setting of the plot
argument.
predictPlus.asreml, allDifferences.data.frame,
sort.alldiffs, subset.alldiffs,
redoErrorIntervals.alldiffs, recalcLSD.alldiffs,
plotPredictions.data.frame,
print.alldiffs, as.Date, Devices
# NOT RUN {
data(WaterRunoff.dat)
titles <- list("Days since first observation", "Days since first observation",
"pH", "Turbidity (NTU)")
names(titles) <- names(WaterRunoff.dat)[c(5,7,11:12)]
asreml.options(keep.order = TRUE) #required for asreml-R4 only
current.asr <- asreml(fixed = log.Turbidity ~ Benches + Sources + Type + Species +
Sources:Type + Sources:Species + Sources:Species:xDay +
Sources:Species:Date,
data = WaterRunoff.dat, keep.order = TRUE)
current.asrt <- as.asrtests(current.asr, NULL, NULL)
#### Get the observed combinations of the factors and variables in classify
class.facs <- c("Sources","Species","Date","xDay")
levs <- as.data.frame(table(WaterRunoff.dat[class.facs]))
levs <- levs[do.call(order, levs), ]
levs <- as.list(levs[levs$Freq != 0, class.facs])
levs$xDay <- as.numfac(levs$xDay)
#### parallel and levels are arguments from predict.asreml
diff.list <- predictPresent.asreml(asreml.obj = current.asrt$asreml.obj,
terms = "Date:Sources:Species:xDay",
x.num = "xDay", x.fac = "Date",
parallel = TRUE, levels = levs,
wald.tab = current.asrt$wald.tab,
plots = "predictions",
error.intervals = "StandardError",
titles = titles,
transform.power = 0,
present = c("Type","Species","Sources"),
tables = "none",
level.length = 6)
# }
Run the code above in your browser using DataLab