aovSufficient {HH} | R Documentation |
Analysis of variance from sufficient statistics for groups.
Description
Analysis of variance from sufficient statistics for groups.
For each group, we need the factor level, the response mean, the
within-group standard deviation, and the sample size.
The correct ANOVA table is produced. The residuals are fake.
The generic vcov
and summary.lm
don't work for the
variance of the regression coefficients in this case.
Use vcovSufficient
.
Usage
aovSufficient(formula, data = NULL,
projections = FALSE, qr = TRUE, contrasts = NULL,
weights = data$n, sd = data$s,
...)
vcovSufficient(object, ...)
Arguments
formula , data , projections , qr , contrasts , ... |
See
|
weights |
See
|
sd |
vector of within-group standard deviations. |
object |
|
Value
For aovSufficient
, an object of class c("aov", "lm").
For vcovSufficient
, a function that returns the covariance
matrix of the regression coefficients.
Note
The residuals are fake. They are all identical and equal to the MLE
standard error (sqrt(SumSq.res/df.tot)
). They give the right
ANOVA table. They may cause confusion or warnings in other programs.
The standard errors and t-tests of the coefficients are not calculated
by summary.lm
.
Using the aov
object from aovSufficient
in glht
requires the vcov.
and df
arguments.
Author(s)
Richard M. Heiberger <rmh@temple.edu>
See Also
Examples
## This example is from Hsu and Peruggia
## This is the R version
## See ?mmc.mean for S-Plus
if.R(s={},
r={
data(pulmonary)
pulmonary
pulmonary.aov <- aovSufficient(FVC ~ smoker,
data=pulmonary)
summary(pulmonary.aov)
## Not run:
pulmonary.mmc <- mmc(pulmonary.aov,
linfct=mcp(smoker="Tukey"),
df=pulmonary.aov$df.residual,
vcov.=vcovSufficient)
mmcplot(pulmonary.mmc, style="both")
## orthogonal contrasts
pulm.lmat <- cbind("npnl-mh"=c( 1, 1, 1, 1,-2,-2), ## not.much vs lots
"n-pnl" =c( 3,-1,-1,-1, 0, 0), ## none vs light
"p-nl" =c( 0, 2,-1,-1, 0, 0), ## {} arbitrary 2 df
"n-l" =c( 0, 0, 1,-1, 0, 0), ## {} for 3 types of light
"m-h" =c( 0, 0, 0, 0, 1,-1)) ## moderate vs heavy
dimnames(pulm.lmat)[[1]] <- row.names(pulmonary)
pulm.lmat
pulmonary.mmc <- mmc(pulmonary.aov,
linfct=mcp(smoker="Tukey"),
df=pulmonary.aov$df.residual,
vcov.=vcovSufficient,
focus.lmat=pulm.lmat)
mmcplot(pulmonary.mmc, style="both", type="lmat")
## End(Not run)
})