Main Content

**Class: **GeneralizedLinearMixedModel

Display generalized linear mixed-effects model

`glme`

— Generalized linear mixed-effects model`GeneralizedLinearMixedModel`

objectGeneralized linear mixed-effects model, specified as a `GeneralizedLinearMixedModel`

object.
For properties and methods of this object, see `GeneralizedLinearMixedModel`

.

Load the sample data.

`load mfr`

This simulated data is from a manufacturing company that operates 50 factories across the world, with each factory running a batch process to create a finished product. The company wants to decrease the number of defects in each batch, so it developed a new manufacturing process. To test the effectiveness of the new process, the company selected 20 of its factories at random to participate in an experiment: Ten factories implemented the new process, while the other ten continued to run the old process. In each of the 20 factories, the company ran five batches (for a total of 100 batches) and recorded the following data:

Flag to indicate whether the batch used the new process (

`newprocess`

)Processing time for each batch, in hours (

`time`

)Temperature of the batch, in degrees Celsius (

`temp`

)Categorical variable indicating the supplier of the chemical used in the batch (

`supplier`

)Number of defects in the batch (

`defects`

)

The data also includes `time_dev`

and `temp_dev`

, which represent the absolute deviation of time and temperature, respectively, from the process standard of 3 hours at 20 degrees Celsius.

Fit a generalized linear mixed-effects model using `newprocess`

, `time_dev`

, `temp_dev`

, and `supplier`

as fixed-effects predictors. Include a random-effects term for intercept grouped by `factory`

, to account for quality differences that might exist due to factory-specific variations. The response variable `defects`

has a Poisson distribution, and the appropriate link function for this model is log. Use the Laplace fit method to estimate the coefficients. Specify the dummy variable encoding as `'effects'`

, so the dummy variable coefficients sum to 0.

The number of defects can be modeled using a Poisson distribution

$${\text{defects}}_{ij}\sim \text{Poisson}({\mu}_{ij})$$

This corresponds to the generalized linear mixed-effects model

$$\mathrm{log}({\mu}_{ij})={\beta}_{0}+{\beta}_{1}{\text{newprocess}}_{ij}+{\beta}_{2}{\text{time}\text{\_}\text{dev}}_{ij}+{\beta}_{3}{\text{temp}\text{\_}\text{dev}}_{ij}+{\beta}_{4}{\text{supplier}\text{\_}\text{C}}_{ij}+{\beta}_{5}{\text{supplier}\text{\_}\text{B}}_{ij}+{b}_{i},$$

where

$${\text{defects}}_{ij}$$ is the number of defects observed in the batch produced by factory $$i$$ during batch $$j$$.

$${\mu}_{ij}$$ is the mean number of defects corresponding to factory $$i$$ (where $$i=1,2,...,20$$) during batch $$j$$ (where $$j=1,2,...,5$$).

$${\text{newprocess}}_{ij}$$, $${\text{time}\text{\_}\text{dev}}_{ij}$$, and $${\text{temp}\text{\_}\text{dev}}_{ij}$$ are the measurements for each variable that correspond to factory $$i$$ during batch $$j$$. For example, $${\text{newprocess}}_{ij}$$ indicates whether the batch produced by factory $$i$$ during batch $$j$$ used the new process.

$${\text{supplier}\text{\_}\text{C}}_{ij}$$ and $${\text{supplier}\text{\_}\text{B}}_{ij}$$ are dummy variables that use effects (sum-to-zero) coding to indicate whether company

`C`

or`B`

, respectively, supplied the process chemicals for the batch produced by factory $$i$$ during batch $$j$$.$${b}_{i}\sim N(0,{\sigma}_{b}^{2})$$ is a random-effects intercept for each factory $$i$$ that accounts for factory-specific variation in quality.

glme = fitglme(mfr,'defects ~ 1 + newprocess + time_dev + temp_dev + supplier + (1|factory)','Distribution','Poisson','Link','log','FitMethod','Laplace','DummyVarCoding','effects');

Display the model.

disp(glme)

Generalized linear mixed-effects model fit by ML Model information: Number of observations 100 Fixed effects coefficients 6 Random effects coefficients 20 Covariance parameters 1 Distribution Poisson Link Log FitMethod Laplace Formula: defects ~ 1 + newprocess + time_dev + temp_dev + supplier + (1 | factory) Model fit statistics: AIC BIC LogLikelihood Deviance 416.35 434.58 -201.17 402.35 Fixed effects coefficients (95% CIs): Name Estimate SE tStat DF pValue {'(Intercept)'} 1.4689 0.15988 9.1875 94 9.8194e-15 {'newprocess' } -0.36766 0.17755 -2.0708 94 0.041122 {'time_dev' } -0.094521 0.82849 -0.11409 94 0.90941 {'temp_dev' } -0.28317 0.9617 -0.29444 94 0.76907 {'supplier_C' } -0.071868 0.078024 -0.9211 94 0.35936 {'supplier_B' } 0.071072 0.07739 0.91836 94 0.36078 Lower Upper 1.1515 1.7864 -0.72019 -0.015134 -1.7395 1.5505 -2.1926 1.6263 -0.22679 0.083051 -0.082588 0.22473 Random effects covariance parameters: Group: factory (20 Levels) Name1 Name2 Type Estimate {'(Intercept)'} {'(Intercept)'} {'std'} 0.31381 Group: Error Name Estimate {'sqrt(Dispersion)'} 1

The `Model information`

table displays the total number of observations in the sample data (100), the number of fixed- and random-effects coefficients (6 and 20, respectively), and the number of covariance parameters (1). It also indicates that the response variable has a `Poisson`

distribution, the link function is `Log`

, and the fit method is `Laplace`

.

`Formula`

indicates the model specification using Wilkinson's notation.

The `Model fit statistics`

table displays statistics used to assess the goodness of fit of the model. This includes the Akaike information criterion (`AIC`

), Bayesian information criterion (`BIC`

) values, log likelihood (`LogLikelihood`

), and deviance (`Deviance`

) values.

The `Fixed effects coefficients`

table indicates that `fitglme`

returned 95% confidence intervals. It contains one row for each fixed-effects predictor, and each column contains statistics corresponding to that predictor. Column 1 (`Name`

) contains the name of each fixed-effects coefficient, column 2 (`Estimate`

) contains its estimated value, and column 3 (`SE`

) contains the standard error of the coefficient. Column 4 (`tStat`

) contains the $$t$$-statistic for a hypothesis test that the coefficient is equal to 0. Column 5 (`DF`

) and column 6 (`pValue`

) contain the degrees of freedom and $$p$$-value that correspond to the $$t$$-statistic, respectively. The last two columns (`Lower`

and `Upper`

) display the lower and upper limits, respectively, of the 95% confidence interval for each fixed-effects coefficient.

`Random effects covariance parameters`

displays a table for each grouping variable (here, only `factory`

), including its total number of levels (20), and the type and estimate of the covariance parameter. Here, `std`

indicates that `fitglme`

returns the standard deviation of the random effect associated with the factory predictor, which has an estimated value of 0.31381. It also displays a table containing the error parameter type (here, the square root of the dispersion parameter), and its estimated value of 1.

The standard display generated by `fitglme`

does not provide confidence intervals for the random-effects parameters. To compute and display these values, use `covarianceParameters`

.

The *Akaike information criterion* (AIC)
is *AIC* = –2log*L*_{M} +
2(*param*).

log*L*_{M} depends
on the method used to fit the model.

If you use

`'Laplace'`

or`'ApproximateLaplace'`

, then log*L*_{M}is the maximized log likelihood.If you use

`'MPL'`

, then log*L*_{M}is the maximized log likelihood of the pseudo data from the final pseudo likelihood iteration.If you use

`'REMPL'`

, then log*L*_{M}is the maximized restricted log likelihood of the pseudo data from the final pseudo likelihood iteration.

*param* is the total number of parameters estimated
in the model. For most GLME models, *param* is equal
to *nc* + *p* +
1, where *nc* is the total number
of parameters in the random-effects covariance, excluding the residual
variance, and *p* is the number of fixed-effects
coefficients. However, if the dispersion parameter is fixed at 1.0
for binomial or Poisson distributions, then *param* is
equal to (*nc* + *p*).

The *Bayesian information criterion* (BIC)
is *BIC* = –2*log*L*_{M} +
ln(*n _{eff}*)(

log*L*_{M} depends
on the method used to fit the model.

If you use

`'Laplace'`

or`'ApproximateLaplace'`

, then log*L*_{M}is the maximized log likelihood.If you use

`'MPL'`

, then log*L*_{M}is the maximized log likelihood of the pseudo data from the final pseudo likelihood iteration.If you use

`'REMPL'`

, then log*L*_{M}is the maximized restricted log likelihood of the pseudo data from the final pseudo likelihood iteration.

*n _{eff}* is
the effective number of observations.

If you use

`'MPL'`

,`'Laplace'`

, or`'ApproximateLaplace'`

, then*n*=_{eff}*n*, where*n*is the number of observations.If you use

`'REMPL'`

, then*n*=_{eff}*n*–*p*.

*param* is the total number of parameters estimated
in the model. For most GLME models, *param* is equal
to *nc* + *p* +
1, where *nc* is the total number
of parameters in the random-effects covariance, excluding the residual
variance, and *p* is the number of fixed-effects
coefficients. However, if the dispersion parameter is fixed at 1.0
for binomial or Poisson distributions, then *param* is
equal to (*nc* + *p*).

A lower value of deviance indicates a better fit. As the value
of deviance decreases, both AIC and BIC tend to decrease. Both AIC
and BIC also include penalty terms based on the number of parameters
estimated, *p*. So, when the number of parameters
increase, the values of AIC and BIC tend to increase as well. When
comparing different models, the model with the lowest AIC or BIC value
is considered as the best fitting model.

For models fitted using `'MPL'`

and `'REMPL'`

,
AIC and BIC are based on the log likelihood (or restricted log likelihood)
of pseudo data from the final pseudo likelihood iteration. Therefore,
a direct comparison of AIC and BIC values between models fitted using `'MPL'`

and `'REMPL'`

is
not appropriate.

`covarianceParameters`

| `fitglme`

| `GeneralizedLinearMixedModel`

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

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.

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: .

Select web siteYou can also select a web site from the following list:

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

- América Latina (Español)
- 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)