General linear modeling of fixed-effects models with multiple responses is
performed. The function calculates 50-50 MANOVA
ffmanova(
formula,
data = NULL,
stand = TRUE,
nSim = 0,
verbose = TRUE,
returnModel = TRUE,
returnY = FALSE,
returnYhat = FALSE,
returnYhatStd = FALSE,
newdata = NULL,
linComb = NULL,
nonEstimableAsNA = TRUE,
outputClass = "ffmanova"
)
Model formula. See "Note" below.
An optional data frame or list.
Logical. Standardization of responses. This option has effect
on the 50-50 MANOVA testing and the calculation of exVarSS
.
nonnegative integer. The number of simulations to use in the rotation tests. Can be a single nonnegative integer or a list of values for each term.
Logical. If TRUE
, the rotation tests print trace information.
When TRUE
, and object, ffModel
, with output from ffModelObj
is included in output.
Must be TRUE
to enable predictions by predict.ffmanova
.
Response matrix, Y
, in output when TRUE
.
Matrix Yhat
of fitted values corresponding to Y
in output when TRUE
.
Standard errors, YhatStd
, in output when TRUE
.
Possible input to predict.ffmanova
. When non-NULL, prediction results will be included output.
Possible input to predict.ffmanova
in addition to newdata
.
Will be used as input to predict.ffmanova
when newdata
and/or linComb
is non-NULL.
When set to, "anova"
, ffAnova
results will be produced.
An object of class "ffmanova"
, which consists of the
concatenated results from the underlying functions manova5050
,
rotationtests
and unitests
:
model term names
explained variances calculated from sums of squares summed over all responses
degrees of freedom - adjusted for other terms in model
degrees of freedom - adjusted for terms contained in actual term
number of principal components used for testing
number of principal components used as buffer components
variance explained by
nPC
components
variance explained by (nPC+nBU)
components
50-50 MANOVA
logical. Whether the responses are standardised.
The test statistics as
matrix of ordinary
matrix of adjusted
matrix of
adjusted
number of simulations performed for each term (same as input)
According to the input parameters, additional elements can be included in output.
An overall
Ordinary single response nSim
) must be chosen.
Unbalance is handled by a variant of Type II sums of squares, which has several nice properties:
Invariant to ordering of the model terms.
Invariant to scale changes.
Invariant to how the overparameterization problem of categorical variable models is solved (how constraints are defined).
Whether two-level factors are defined to be continuos or categorical does not influence the results.
Analysis of a polynomial model with a single experimental variable produce results equivalent to the results using an orthogonal polynomial.
In addition to significance testing an explained variance measure, which is based on sums of sums of squares, is computed for each model term.
Langsrud, <U+00D8>. (2002) 50-50 Multivariate Analysis of Variance for Collinear Responses. The Statistician, 51, 305--317.
Langsrud, <U+00D8>. (2003) ANOVA for Unbalanced Data: Use Type II Instead of Type III Sums of Squares. Statistics and Computing, 13, 163--167.
Langsrud, <U+00D8>. (2005) Rotation Tests. Statistics and Computing, 15, 53--60.
Moen, B., Oust, A., Langsrud, <U+00D8>., Dorrell, N., Gemma, L., Marsden, G.L., Hinds, J., Kohler, A., Wren, B.W. and Rudi, K. (2005) An explorative multifactor approach for investigating global survival mechanisms of Campylobacter jejuni under environmental conditions. Applied and Environmental Microbiology, 71, 2086-2094.
ffAnova
and predict.ffmanova
.
# NOT RUN {
data(dressing)
# An ANOVA model with all design variables as factors
# and with visc as the only response variable.
# Classical univariate Type II test results are produced.
ffmanova(visc ~ (factor(press) + factor(stab) + factor(emul))^2 + day,
data = dressing)
# A second order response surface model with day as a block factor.
# The properties of the extended Type II approach is utilized.
ffmanova(visc ~ (press + stab + emul)^2 + I(press^2)+ I(stab^2)+ I(emul^2)+ day,
data = dressing)
# 50-50 MANOVA results with the particle-volume curves as
# multivariate responses. The responses are not standardized.
ffmanova(pvol ~ (press + stab + emul)^2 + I(press^2)+ I(stab^2)+ I(emul^2)+ day,
stand = FALSE, data = dressing)
# 50-50 MANOVA results with 9 rheological responses (standardized).
# 99 rotation simulation repetitions are performed.
res <- ffmanova(rheo ~ (press + stab + emul)^2 + I(press^2)+ I(stab^2)+ I(emul^2)+ day,
nSim = 99, data = dressing)
res$pRaw # Unadjusted single responses p-values
res$pAdjusted # Familywise error rate adjusted p-values
res$pAdjFDR # False discovery rate adjusted p-values
# As above, but this time 9999 rotation simulation repetitions
# are performed, but only for the model term stab^2.
res <- ffmanova(rheo ~ (press + stab + emul)^2 + I(press^2)+ I(stab^2)+ I(emul^2)+ day,
nSim = c(0,0,0,0,0,9999,0,0,0,0,0), data = dressing)
res$pAdjusted[6,] # Familywise error rate adjusted p-values for stab^2
res$pAdjFDR[6,] # False discovery rate adjusted p-values for stab^2
# Note that the results of the first example above can also be
# obtained by using the car package.
# }
# NOT RUN {
require(car)
Anova(lm(visc ~ (factor(press) + factor(stab) + factor(emul))^2 + day,
data = dressing), type = "II")
# }
# NOT RUN {
# The results of the second example differ because Anova does not recognise
# linear terms (emul) as being contained in quadratic terms (I(emul^2)).
# A consequence here is that the clear significance of emul disappears.
# }
# NOT RUN {
require(car)
Anova(lm(visc ~ (press + stab + emul)^2 + I(press^2)+ I(stab^2)+ I(emul^2)+ day,
data = dressing), type="II")
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab