Note: This page has been translated by MathWorks. Please click here

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

**MathWorks Machine Translation**

The automated translation of this page is provided by a general purpose third party translator tool.

MathWorks does not warrant, and disclaims all liability for, the accuracy, suitability, or fitness for purpose of the translation.

also
returns the dataset array `stats`

= anova(`lme`

,`Name,Value`

)`stats`

with additional
options specified by one or more `Name,Value`

pair
arguments.

For each fixed-effects term,

`anova`

performs an*F*-test (marginal test), that all coefficients representing the fixed-effects term are 0. To perform tests for type III hypotheses, you must set the`'DummyVarCoding'`

name-value pair argument to`'effects'`

contrasts while fitting your linear mixed-effects model.

`lme`

— Linear mixed-effects model`LinearMixedModel`

objectLinear mixed-effects model, returned as a `LinearMixedModel`

object.

For properties and methods of this object, see `LinearMixedModel`

.

Specify optional comma-separated pairs of `Name,Value`

arguments.
`Name`

is the argument
name and `Value`

is the corresponding
value. `Name`

must appear
inside single quotes (`' '`

).
You can specify several name and value pair
arguments in any order as `Name1,Value1,...,NameN,ValueN`

.

`'DFMethod'`

— Method for computing approximate degrees of freedom`'residual'`

(default) | `'satterthwaite'`

| `'none'`

Method for computing approximate degrees of freedom to use in
the F-test, specified as the comma-separated pair consisting of `'DFMethod'`

and
one of the following.

`'residual'` | Default. The degrees of freedom are assumed to be constant
and equal to n – p, where n is
the number of observations and p is the number
of fixed effects. |

`'satterthwaite'` | Satterthwaite approximation. |

`'none'` | All degrees of freedom are set to infinity. |

For example, you can specify the Satterthwaite approximation as follows.

**Example: **`'DFMethod','satterthwaite'`

`stats`

— Results of dataset array

Results of *F*-tests for fixed-effects terms,
returned as a dataset array with the following columns.

`Term` | Name of the fixed effects term |

`Fstat` | F-statistic for the term |

`DF1` | Numerator degrees of freedom for the F-statistic |

`DF2` | Denominator degrees of freedom for the F-statistic |

`pValue` | p-value of the test for the term |

There is one row for each fixed-effects term. Each term is a
continuous variable, a grouping variable, or an interaction between
two or more continuous or grouping variables. For each fixed-effects
term, `anova`

performs an *F*-test
(marginal test) to determine if all coefficients representing the
fixed-effects term are 0. To perform tests for the type III hypothesis,
you must use the `'effects'`

contrasts while fitting
the linear mixed-effects model.

Load the sample data.

load(fullfile(matlabroot,'examples','stats','shift.mat'))

The data shows the deviations from the target quality characteristic measured from the products that five operators manufacture during three shifts: morning, evening, and night. This is a randomized block design, where the operators are the blocks. The experiment is designed to study the impact of the time of shift on the performance. The performance measure is the deviation of the quality characteristics from the target value. This is simulated data.

`Shift`

and `Operator`

are nominal variables.

shift.Shift = nominal(shift.Shift); shift.Operator = nominal(shift.Operator);

Fit a linear mixed-effects model with a random intercept grouped by operator to assess if performance significantly differs according to the time of the shift. Use the restricted maximum likelihood method and `'effects'`

contrasts.

`'effects'`

contrasts indicate that the coefficients sum to 0, and `fitlme`

creates two contrast-coded variables in the fixed-effects design matrix, $X$1 and $X$2, where

and

The model corresponds to

where ~ N(0, ) and ~ N(0, ).

lme = fitlme(shift,'QCDev ~ Shift + (1|Operator)',... 'FitMethod','REML','DummyVarCoding','effects')

lme = Linear mixed-effects model fit by REML Model information: Number of observations 15 Fixed effects coefficients 3 Random effects coefficients 5 Covariance parameters 2 Formula: QCDev ~ 1 + Shift + (1 | Operator) Model fit statistics: AIC BIC LogLikelihood Deviance 58.913 61.337 -24.456 48.913 Fixed effects coefficients (95% CIs): Name Estimate SE tStat DF pValue '(Intercept)' 3.6525 0.94109 3.8812 12 0.0021832 'Shift_Evening' -0.53293 0.31206 -1.7078 12 0.11339 'Shift_Morning' -0.91973 0.31206 -2.9473 12 0.012206 Lower Upper 1.6021 5.703 -1.2129 0.14699 -1.5997 -0.23981 Random effects covariance parameters (95% CIs): Group: Operator (5 Levels) Name1 Name2 Type Estimate Lower '(Intercept)' '(Intercept)' 'std' 2.0457 0.98207 Upper 4.2612 Group: Error Name Estimate Lower Upper 'Res Std' 0.85462 0.52357 1.395

Perform an -test to determine if all fixed-effects coefficients are 0.

anova(lme)

ans = ANOVA MARGINAL TESTS: DFMETHOD = 'RESIDUAL' Term FStat DF1 DF2 pValue '(Intercept)' 15.063 1 12 0.0021832 'Shift' 11.091 2 12 0.0018721

The
-value for the constant term, 0.0021832, is the same as in the coefficient table in the `lme`

display. The
-value of 0.0018721 for `Shift`

measures the combined significance for both coefficients representing `Shift`

.

Load the sample data.

load(fullfile(matlabroot,'examples','stats','fertilizer.mat'))

The dataset array includes data from a split-plot experiment, where soil is divided into three blocks based on the soil type: sandy, silty, and loamy. Each block is divided into five plots, where five types of tomato plants (cherry, heirloom, grape, vine, and plum) are randomly assigned to these plots. The tomato plants in the plots are then divided into subplots, where each subplot is treated by one of four fertilizers. This is simulated data.

Store the data in a dataset array called `ds`

, for practical purposes, and define `Tomato`

, `Soil`

, and `Fertilizer`

as categorical variables.

ds = fertilizer; ds.Tomato = nominal(ds.Tomato); ds.Soil = nominal(ds.Soil); ds.Fertilizer = nominal(ds.Fertilizer);

Fit a linear mixed-effects model, where `Fertilizer`

and `Tomato`

are the fixed-effects variables, and the mean yield varies by the block (soil type) and the plots within blocks (tomato types within soil types) independently. Use the `'effects'`

contrasts when fitting the data for the type III sum of squares.

lme = fitlme(ds,'Yield ~ Fertilizer * Tomato + (1|Soil) + (1|Soil:Tomato)',... 'DummyVarCoding','effects')

lme = Linear mixed-effects model fit by ML Model information: Number of observations 60 Fixed effects coefficients 20 Random effects coefficients 18 Covariance parameters 3 Formula: Yield ~ 1 + Tomato*Fertilizer + (1 | Soil) + (1 | Soil:Tomato) Model fit statistics: AIC BIC LogLikelihood Deviance 522.57 570.74 -238.29 476.57 Fixed effects coefficients (95% CIs): Name Estimate SE tStat DF '(Intercept)' 104.6 3.3008 31.69 40 'Tomato_Cherry' 1.4 5.9353 0.23588 40 'Tomato_Grape' -7.7667 5.9353 -1.3085 40 'Tomato_Heirloom' -11.183 5.9353 -1.8842 40 'Tomato_Plum' 30.233 5.9353 5.0938 40 'Fertilizer_1' -28.267 2.3475 -12.041 40 'Fertilizer_2' -1.9333 2.3475 -0.82356 40 'Fertilizer_3' 10.733 2.3475 4.5722 40 'Tomato_Cherry:Fertilizer_1' -0.73333 4.6951 -0.15619 40 'Tomato_Grape:Fertilizer_1' -7.5667 4.6951 -1.6116 40 'Tomato_Heirloom:Fertilizer_1' 5.1833 4.6951 1.104 40 'Tomato_Plum:Fertilizer_1' 2.7667 4.6951 0.58927 40 'Tomato_Cherry:Fertilizer_2' 7.6 4.6951 1.6187 40 'Tomato_Grape:Fertilizer_2' -1.9 4.6951 -0.40468 40 'Tomato_Heirloom:Fertilizer_2' 5.5167 4.6951 1.175 40 'Tomato_Plum:Fertilizer_2' -3.9 4.6951 -0.83066 40 'Tomato_Cherry:Fertilizer_3' -6.0667 4.6951 -1.2921 40 'Tomato_Grape:Fertilizer_3' 3.7667 4.6951 0.80226 40 'Tomato_Heirloom:Fertilizer_3' 3.1833 4.6951 0.67802 40 'Tomato_Plum:Fertilizer_3' 1.1 4.6951 0.23429 40 pValue Lower Upper 5.9086e-30 97.929 111.27 0.81473 -10.596 13.396 0.19816 -19.762 4.2291 0.066821 -23.179 0.81242 8.777e-06 18.238 42.229 7.0265e-15 -33.011 -23.522 0.41507 -6.6779 2.8112 4.577e-05 5.9888 15.478 0.87667 -10.222 8.7558 0.11491 -17.056 1.9224 0.27619 -4.3058 14.672 0.55899 -6.7224 12.256 0.11337 -1.8891 17.089 0.68787 -11.389 7.5891 0.24695 -3.9724 15.006 0.4111 -13.389 5.5891 0.20373 -15.556 3.4224 0.42714 -5.7224 13.256 0.50167 -6.3058 12.672 0.81596 -8.3891 10.589 Random effects covariance parameters (95% CIs): Group: Soil (3 Levels) Name1 Name2 Type Estimate Lower '(Intercept)' '(Intercept)' 'std' 2.5028 0.027711 Upper 226.05 Group: Soil:Tomato (15 Levels) Name1 Name2 Type Estimate Lower '(Intercept)' '(Intercept)' 'std' 10.225 6.1497 Upper 17.001 Group: Error Name Estimate Lower Upper 'Res Std' 10.499 8.5389 12.908

Perform an analysis of variance to test for the fixed-effects.

anova(lme)

ans = ANOVA MARGINAL TESTS: DFMETHOD = 'RESIDUAL' Term FStat DF1 DF2 pValue '(Intercept)' 1004.2 1 40 5.9086e-30 'Tomato' 7.1663 4 40 0.00018935 'Fertilizer' 58.833 3 40 1.0024e-14 'Tomato:Fertilizer' 1.4182 12 40 0.19804

The
-value for the constant term, 5.9086e-30, is the same as in the coefficient table in the `lme`

display. The
-values of 0.00018935, 1.0024e-14, and 0.19804 for `Tomato`

, `Fertilizer`

, and `Tomato:Fertilizer`

represent the combined significance for all tomato coefficients, fertilizer coefficients, and coefficients representing the interaction between the tomato and fertilizer, respectively. The
-value of 0.19804 indicates that the interaction between tomato and fertilizer is not significant.

Load the sample data.

load(fullfile(matlabroot,'examples','stats','weight.mat'))

`weight`

contains data from a longitudinal study, where 20 subjects are randomly assigned 4 exercise programs, and their weight loss is recorded over six 2-week time periods. This is simulated data.

Store the data in a table. Define `Subject`

and `Program`

as categorical variables.

tbl = table(InitialWeight,Program,Subject,Week,y); tbl.Subject = nominal(tbl.Subject); tbl.Program = nominal(tbl.Program);

Fit the model using the `'effects'`

contrasts.

lme = fitlme(tbl,'y ~ InitialWeight + Program*Week + (Week|Subject)',... 'DummyVarCoding','effects')

lme = Linear mixed-effects model fit by ML Model information: Number of observations 120 Fixed effects coefficients 9 Random effects coefficients 40 Covariance parameters 4 Formula: y ~ 1 + InitialWeight + Program*Week + (1 + Week | Subject) Model fit statistics: AIC BIC LogLikelihood Deviance -22.981 13.257 24.49 -48.981 Fixed effects coefficients (95% CIs): Name Estimate SE tStat DF '(Intercept)' 0.77122 0.24309 3.1725 111 'InitialWeight' 0.0031879 0.0013814 2.3078 111 'Program_A' -0.11017 0.080377 -1.3707 111 'Program_B' 0.25061 0.08045 3.1151 111 'Program_C' -0.14344 0.080475 -1.7824 111 'Week' 0.19881 0.033727 5.8946 111 'Program_A:Week' -0.025607 0.058417 -0.43835 111 'Program_B:Week' 0.013164 0.058417 0.22535 111 'Program_C:Week' 0.0049357 0.058417 0.084492 111 pValue Lower Upper 0.0019549 0.28951 1.2529 0.022863 0.00045067 0.0059252 0.17323 -0.26945 0.0491 0.0023402 0.091195 0.41003 0.077424 -0.3029 0.016031 4.1099e-08 0.13198 0.26564 0.66198 -0.14136 0.090149 0.82212 -0.10259 0.12892 0.93282 -0.11082 0.12069 Random effects covariance parameters (95% CIs): Group: Subject (20 Levels) Name1 Name2 Type Estimate Lower '(Intercept)' '(Intercept)' 'std' 0.18407 0.12281 'Week' '(Intercept)' 'corr' 0.66841 0.21076 'Week' 'Week' 'std' 0.15033 0.11004 Upper 0.27587 0.88573 0.20537 Group: Error Name Estimate Lower Upper 'Res Std' 0.10261 0.087882 0.11981

The -values 0.022863 and 4.1099e-08 indicate significant effects of the initial weights of the subjects and the time factor in the amount of weight lost. The weight loss of subjects who are in program B is significantly different relative to the weight loss of subjects that are in program A. The lower and upper limits of the covariance parameters for the random effects do not include zero, thus they are significant.

Perform an F-test that all fixed-effects coefficients are zero.

anova(lme)

ans = ANOVA MARGINAL TESTS: DFMETHOD = 'RESIDUAL' Term FStat DF1 DF2 pValue '(Intercept)' 10.065 1 111 0.0019549 'InitialWeight' 5.326 1 111 0.022863 'Program' 3.6798 3 111 0.014286 'Week' 34.747 1 111 4.1099e-08 'Program:Week' 0.066648 3 111 0.97748

The
-values for the constant term, initial weight, and week are the same as in the coefficient table in the previous `lme`

output display. The
-value of 0.014286 for `Program`

represents the combined significance for all program coefficients. Similarly, the
-value for the interaction between program and week (`Program:Week`

) measures the combined significance for all coefficients representing this interaction.

Now, use the Satterthwaite method to compute the degrees of freedom.

anova(lme,'DFMethod','satterthwaite')

ans = ANOVA MARGINAL TESTS: DFMETHOD = 'SATTERTHWAITE' Term FStat DF1 DF2 pValue '(Intercept)' 10.065 1 20.445 0.004695 'InitialWeight' 5.326 1 20 0.031827 'Program' 3.6798 3 19.14 0.030233 'Week' 34.747 1 20 9.1346e-06 'Program:Week' 0.066648 3 20 0.97697

The Satterthwaite method produces smaller denominator degrees of freedom and slightly larger -values.

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.

Was this topic helpful?

You can also select a location from the following list:

- Canada (English)
- United States (English)

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