HH (version 2.2-23)

aov.sufficient: 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 vcov.sufficient.

Usage

aov.sufficient(formula, data = NULL,
               projections = FALSE, qr = TRUE, contrasts = NULL,
               weights = data$n, sd = data$s,
               ...)

vcov.sufficient(object, ...)

Arguments

formula, data, projections, qr, contrasts, ...
See#ifndef S-Plus aov. #endif #ifdef S-Plus aov. #endif
weights
See#ifndef S-Plus lm. #endif #ifdef S-Plus lm. #endif
sd
vector of within-group standard deviations.
object
"aov" object constructed by aov.sufficient. It also works with regular aov objects.

Value

  • For aov.sufficient, an object of class c("aov", "lm"). For vcov.sufficient, a function that returns the covariance matrix of the regression coefficients.

See Also

MMC and#ifndef S-Plus aov. #endif #ifdef S-Plus aov. #endif

Examples

Run this code
## This example is from Hsu and Peruggia

## This is the R version
## See ?mmc.mean for S-Plus

if.R(s={},
r={

pulmonary <- read.table(hh("datasets/pulmonary.dat"), header=TRUE,
                        row.names=NULL)
names(pulmonary)[3] <- "FVC"
names(pulmonary)[1] <- "smoker"
pulmonary$smoker <- factor(pulmonary$smoker, levels=pulmonary$smoker)
row.names(pulmonary) <- pulmonary$smoker
pulmonary
pulmonary.aov <- aov.sufficient(FVC ~ smoker,
                                data=pulmonary)
summary(pulmonary.aov)

pulmonary.mmc <- glht.mmc(pulmonary.aov,
                          linfct=mcp(smoker="Tukey"),
                          df=pulmonary.aov$df.residual,
                          vcov.=vcov.sufficient)
old.omd <- par(omd=c(.03,.95,0,1))
plot(pulmonary.mmc)
## tiebreaker plot, with contrasts ordered to match MMC plot,
## with all contrasts forced positive and with names also reversed,
## and with matched x-scale.
plot.matchMMC(pulmonary.mmc$mca)

## 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 <- glht.mmc(pulmonary.aov,
                          linfct=mcp(smoker="Tukey"),
                          df=pulmonary.aov$df.residual,
                          vcov.=vcov.sufficient,
                          focus.lmat=pulm.lmat)

plot(pulmonary.mmc)
plot.matchMMC(pulmonary.mmc$lmat, col.signif='blue')

## pairwise and orthogonal contrasts on the same plot
plot(pulmonary.mmc, print.mca=TRUE, print.lmat=TRUE)
par(old.omd)

})

Run the code above in your browser using DataCamp Workspace