Main Content

covarianceParameters

Class: GeneralizedLinearMixedModel

Extract covariance parameters of generalized linear mixed-effects model

Description

psi = covarianceParameters(glme) returns the estimated prior covariance parameters of random-effects predictors in the generalized linear mixed-effects model glme.

[psi,dispersion] = covarianceParameters(glme) also returns an estimate of the dispersion parameter.

[psi,dispersion,stats] = covarianceParameters(glme) also returns a cell array stats containing the covariance parameter estimates and related statistics.

example

[___] = covarianceParameters(glme,Name,Value) returns any of the above output arguments using additional options specified by one or more Name,Value pair arguments. For example, you can specify the confidence level for the confidence limits of covariance parameters.

Input Arguments

expand all

Generalized linear mixed-effects model, specified as a GeneralizedLinearMixedModel object. For properties and methods of this object, see GeneralizedLinearMixedModel.

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.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Significance level, specified as the comma-separated pair consisting of 'Alpha' and a scalar value in the range [0,1]. For a value α, the confidence level is 100 × (1 – α)%.

For example, for 99% confidence intervals, you can specify the confidence level as follows.

Example: 'Alpha',0.01

Data Types: single | double

Output Arguments

expand all

Estimated prior covariance parameters for the random-effects predictors, returned as a cell array of length R, where R is the number of grouping variables used in the model. psi{r} contains the covariance matrix of random effects associated with grouping variable gr, where r = 1, 2, ..., R, The order of grouping variables in psi is the same as the order entered when fitting the model. For more information on grouping variables, see Grouping Variables.

Dispersion parameter, returned as a scalar value.

Covariance parameter estimates and related statistics, returned as a cell array of length (R + 1), where R is the number of grouping variables used in the model. The first R cells of stats each contain a dataset array with the following columns.

Column NameDescription
GroupGrouping variable name
Name1Name of the first predictor variable
Name2Name of the second predictor variable
Type

If Name1 and Name2 are the same, then Type is std (standard deviation).

If Name1 and Name2 are different, then Type is corr (correlation).

Estimate

If Name1 and Name2 are the same, then Estimate is the standard deviation of the random effect associated with predictor Name1 or Name2.

If Name1 and Name2 are different, then Estimate is the correlation between the random effects associated with predictors Name1 and Name2.

LowerLower limit of the confidence interval for the covariance parameter
UpperUpper limit of the confidence interval for the covariance parameter

Cell R + 1 contains related statistics for the dispersion parameter.

It is recommended that the presence or absence of covariance parameters in glme be tested using the compare method, which uses a likelihood ratio test.

When fitting a GLME model using fitglme and one of the maximum likelihood fit methods ('Laplace' or 'ApproximateLaplace'), covarianceParameters derives the confidence intervals in stats based on a Laplace approximation to the log likelihood of the generalized linear mixed-effects model.

When fitting a GLME model using fitglme and one of the pseudo likelihood fit methods ('MPL' or 'REMPL'), covarianceParameters derives the confidence intervals in stats based on the fitted linear mixed-effects model from the final pseudo likelihood iteration.

Examples

expand all

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 (A, B, or C) 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

defectsijPoisson(μij)

This corresponds to the generalized linear mixed-effects model

log(μij)=β0+β1newprocessij+β2time_devij+β3temp_devij+β4supplier_Cij+β5supplier_Bij+bi,

where

  • defectsij is the number of defects observed in the batch produced by factory i during batch j.

  • μij is the mean number of defects corresponding to factory i (where i=1,2,...,20) during batch j (where j=1,2,...,5).

  • newprocessij, time_devij, and temp_devij are the measurements for each variable that correspond to factory i during batch j. For example, newprocessij indicates whether the batch produced by factory i during batch j used the new process.

  • supplier_Cij and supplier_Bij 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.

  • biN(0,σb2) 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');

Compute and display the estimate of the prior covariance parameter for the random-effects predictor.

[psi,dispersion,stats] = covarianceParameters(glme);
psi{1}
ans = 
0.0985

psi{1} is an estimate of the prior covariance matrix of the first grouping variable. In this example, there is only one grouping variable (factory), so psi{1} is an estimate of σb2.

Display the dispersion parameter.

dispersion
dispersion = 
1

Display the estimated standard deviation of the random effect associated with the predictor. The first cell of stats contains statistics for factory, while the second cell contains statistics for the dispersion parameter.

stats{1}
ans = 
    COVARIANCE TYPE: ISOTROPIC

    Group      Name1                  Name2                  Type           Estimate    Lower      Upper  
    factory    {'(Intercept)'}        {'(Intercept)'}        {'std'}        0.31381     0.19253    0.51148

The estimated standard deviation of the random effect associated with the predictor is 0.31381. The 95% confidence interval is [0.19253 , 0.51148]. Because the confidence interval does not contain 0, the random intercept is significant at the 5% significance level.