# aov.sufficient: Analysis of variance from sufficient statistics for groups. In HH: Statistical Analysis and Data Display: Heiberger and Holland

 aovSufficient 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 `aov`. `weights` See `lm`. `sd` vector of within-group standard deviations. `object` `"aov"` object constructed by `aovSufficient`. It also works with regular `aov` objects.

### 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>

`MMC` and `aov`.

### 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)[] <- 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)
})
```

HH documentation built on Aug. 9, 2022, 5:08 p.m.