# groupmeans

Mean response estimates for multivariate analysis of variance (MANOVA)

*Since R2023b*

## Description

specifies options using one or more name-value arguments in addition to any of the input
argument combinations in the previous syntaxes. For example, you can specify the confidence
level for the confidence intervals, and whether to calculate the marginal means or a mean
for each response variable. `means`

= groupmeans(___,`Name=Value`

)

## Examples

### Calculate Marginal Means for One-Way MANOVA

Load the `fisheriris`

data set.

`load fisheriris`

The column vector `species`

contains iris flowers of three different species: setosa, versicolor, and virginica. The matrix `meas`

contains four types of measurements for the flower: the length and width of sepals and petals in centimeters.

Perform a one-way MANOVA with `species`

as the factor and the measurements in `meas`

as the response variables.

maov = manova(species,meas)

maov = 1-way manova Y1,Y2,Y3,Y4 ~ 1 + Factor1 Source DF TestStatistic Value F DFNumerator DFDenominator pValue _______ ___ _____________ ______ ______ ___________ _____________ __________ Factor1 2 pillai 1.1919 53.466 8 290 9.7422e-53 Error 147 Total 149 Properties, Methods

`maov`

is a `manova`

object that contains the results of the one-way MANOVA. The small *p*-value for `species`

indicates that the flower species has a statistically significant effect on at least one of the flower measurements.

Calculate the marginal means for `maov`

.

means = groupmeans(maov)

`means=`*3×5 table*
Factor1 Mean SE Lower Upper
______________ ______ ________ ______ ______
{'setosa' } 2.5355 0.042807 2.4509 2.6201
{'versicolor'} 3.573 0.042807 3.4884 3.6576
{'virginica' } 4.285 0.042807 4.2004 4.3696

The 95% confidence intervals in the table output do not overlap, which is consistent with the small *p*-value for `species`

.

### Get Marginal Means for Two-Way MANOVA

Load the `patients`

data set.

`load patients`

The variables `Systolic`

and `Diastolic`

contain data for patient systolic and diastolic blood pressure. The variables `Smoker`

and `SelfAssessedHealthStatus`

contain data for patient smoking status and self-assessed heath status.

Use the `table`

function to create a table of factor values from the data in `Systolic`

, `Diastolic`

, `Smoker`

, and `SelfAssessedHealthStatus`

.

tbl = table(Systolic,Diastolic,Smoker,SelfAssessedHealthStatus,VariableNames=["Systolic" "Diastolic" "Smoker" "SelfAssessed"]);

Perform a two-way MANOVA to test the null hypothesis that smoking status does not have a statistically significant effect on systolic and diastolic blood pressure, and the null hypothesis that self-assessed health status does not have an effect on systolic and diastolic blood pressure.

maov = manova(tbl,["Systolic" "Diastolic"])

maov = 2-way manova Systolic,Diastolic ~ 1 + Smoker + SelfAssessed Source DF TestStatistic Value F DFNumerator DFDenominator pValue ____________ __ _____________ ________ _______ ___________ _____________ __________ Smoker 1 pillai 0.67917 99.494 2 94 6.2384e-24 SelfAssessed 3 pillai 0.053808 0.87552 6 190 0.51392 Error 95 Total 99 Properties, Methods

`maov`

is a `manova`

object that contains the results of the two-way MANOVA. The small *p*-value for the `Smoker`

term in the MANOVA model indicates that enough evidence exists to conclude that mean response vectors are statistically different across the factor values of `Smoker`

. However, the large *p*-value for the `SelfAssessed`

term indicates that not enough evidence exists to reject the null hypothesis that the mean response vectors are statistically the same across the values for `SelfAssessed`

.

Calculate the marginal means for the values of the factor `Smoker`

.

`groupmeans(maov,"Smoker")`

`ans=`*2×5 table*
Smoker Mean SE Lower Upper
______ ______ _______ ______ ______
false 99.203 0.45685 98.296 100.11
true 109.45 0.62574 108.21 110.7

The output shows that the marginal mean for non-smokers is lower than the marginal mean for smokers.

### Calculate Mean for Each Response Variable

Load the `carsmall`

data set.

`load carsmall`

The variable `Model_Year`

contains data for the year a car was manufactured, and the variable `Cylinders`

contains data for the number of engine cylinders in the car. The `Acceleration`

and `Displacement`

variables contain data for car acceleration and displacement.

Use the `table`

function to create a table of factor values from the data in `Model_Year`

, `Cylinders`

, `Acceleration`

, and `Displacement`

.

tbl = table(Model_Year,Cylinders,Acceleration,Displacement,VariableNames=["Year" "Cylinders" "Acceleration" "Displacement"]);

Perform a two-way MANOVA using the table variables `Year`

and `Cylinders`

as factors, and the `Acceleration`

and `Displacement`

variables as response variables.

`maov = manova(tbl,"Acceleration,Displacement ~ Cylinders + Year")`

maov = 2-way manova Acceleration,Displacement ~ 1 + Year + Cylinders Source DF TestStatistic Value F DFNumerator DFDenominator pValue _________ __ _____________ ________ ______ ___________ _____________ __________ Year 2 pillai 0.084893 2.1056 4 190 0.081708 Cylinders 2 pillai 0.94174 42.27 4 190 2.5049e-25 Error 95 Total 99 Properties, Methods

`maov`

is a `manova`

object that contains the results of the two-way MANOVA. The table output shows that the *p*-value for the MANOVA model term `Year`

is too large to conclude that `Year`

has a statistically significant effect on `Acceleration`

and `Displacement`

.

Calculate the means, standard errors, and 95% confidence intervals for each response variable, grouped by the factor values in `Year`

.

`means = groupmeans(maov,"Year",MarginalMean=false)`

`means=`*6×6 table*
Year ResponseName Mean SE Lower Upper
____ ______________ ______ _______ ______ ______
70 "Acceleration" 14.102 0.45499 13.199 15.005
70 "Displacement" 233.02 6.4983 220.12 245.92
76 "Acceleration" 15.623 0.41203 14.805 16.441
76 "Displacement" 218.43 5.8848 206.75 230.12
82 "Acceleration" 15.083 0.53717 14.016 16.149
82 "Displacement" 234.09 7.6721 218.86 249.32

The table output shows that the 95% confidence intervals have significant overlap for each response variable, supporting the conclusion that `Year`

does not have a statistically significant effect on `Acceleration`

and `Displacement`

.

## Input Arguments

`maov`

— MANOVA results

`manova`

object

MANOVA results, specified as a `manova`

object.
The properties of `maov`

contain the factor values and response data
used by `groupmeans`

to calculate the means, standard errors, and
confidence intervals.

`factors`

— Factors used to group response data

string scalar | character vector | string vector | cell array of character vectors

Factors used to group the response data, specified as a string scalar, a character or string
vector, or a cell array of character vectors. The `groupmeans`

function groups the response data by the combinations of values for the factors in
`factors`

. The `factors`

argument must be one
or more of the names in `maov.FactorNames`

.

**Example: **`["Factor1","Factor2"]`

**Data Types: **`string`

| `cell`

### Name-Value Arguments

Specify optional pairs of arguments as
`Name1=Value1,...,NameN=ValueN`

, where `Name`

is
the argument name and `Value`

is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.

**Example: **`groupmeans(maov,["Cylinders","Year"],MarginalMean=false,Alpha=0.01)`

calculates a mean with a 99% confidence interval for each response variable.

`Alpha`

— Significance level

`0.05`

(default) | scalar value in the range (0,1)

Significance level for the estimates, specified as a scalar value in the range
(0,1). The confidence level of the confidence intervals is $$100(1-\alpha )\%$$. The default value for `alpha`

is
`0.05`

, which returns 95% confidence intervals for the
estimates.

**Example: **`Alpha=0.01`

**Data Types: **`single`

| `double`

`MarginalMean`

— Indicator to calculate marginal means

`true`

or `1`

(default) | `false`

or `0`

Indicator to calculate the marginal means, specified as a numeric or logical
`1`

(`true`

) or `0`

(`false`

). Each marginal mean is the average of the values in the
corresponding mean response vector. When `MarginalMean`

is false,
`groupmeans`

calculates a separate mean for each response
variable.

**Example: **`MarginalMean=false`

**Data Types: **`logical`

## Output Arguments

`means`

— Means, standard errors, and confidence intervals

table

Means, standard errors, and confidence intervals, returned as a table. The table
`means`

has one row per unique combination of factor values when
`MarginalMean`

is `true`

. Otherwise,
`means`

has *r* rows per unique combination of
factor values, where *r* is the number of response variables.

If `maov`

is a one-way `manova`

object,
`means`

contains a column corresponding to the single factor. If
`maov`

is a two- or N-way `manova`

object,
`means`

contains a column for each factor specified in
`factors`

. The table also contains the following columns.

`Mean`

— Estimate of the marginal or response variable mean corresponding to the factor value. Use the`MarginalMean`

name-value argument to specify the type of mean to calculate.`SE`

— Standard error of the mean estimate.`Lower`

— 95% lower confidence bound of the mean estimate.`Upper`

— 95% upper confidence bound of the mean estimate.

## Version History

**Introduced in R2023b**

## See Also

## Open Example

You have a modified version of this example. Do you want to open this example with your edits?

## MATLAB Command

You clicked a link that corresponds to this MATLAB command:

Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

## How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

### Americas

- América Latina (Español)
- Canada (English)
- United States (English)

### Europe

- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)

- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)