Documentation

# fixedEffects

Class: LinearMixedModel

Estimates of fixed effects and related statistics

## Syntax

``beta = fixedEffects(lme)``
``````[beta,betanames] = fixedEffects(lme)``````
``````[beta,betanames,stats] = fixedEffects(lme)``````
``````[beta,betanames,stats] = fixedEffects(lme,Name,Value)``````

## Description

````beta = fixedEffects(lme)` returns the estimated fixed-effects coefficients, `beta`, of the linear mixed-effects model `lme`.```

example

``````[beta,betanames] = fixedEffects(lme)``` also returns the names of estimated fixed-effects coefficients in `betanames`. Each name corresponds to a fixed-effects coefficient in `beta`.```

example

``````[beta,betanames,stats] = fixedEffects(lme)``` also returns the estimated fixed-effects coefficients of the linear mixed-effects model `lme` and related statistics in `stats`.```

example

``````[beta,betanames,stats] = fixedEffects(lme,Name,Value)``` also returns the estimated fixed-effects coefficients of the linear mixed-effects model `lme` and related statistics with additional options specified by one or more `Name,Value` pair arguments.```

## Input Arguments

expand all

Linear mixed-effects model, specified as a `LinearMixedModel` object constructed using `fitlme` or `fitlmematrix`.

### Name-Value Pair Arguments

Specify optional comma-separated pairs of `Name,Value` arguments. `Name` is the argument name and `Value` is the corresponding value. `Name` must appear inside quotes. You can specify several name and value pair arguments in any order as `Name1,Value1,...,NameN,ValueN`.

Significance level, specified as the comma-separated pair consisting of `'Alpha'` and a scalar value in the range 0 to 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`

Method for computing approximate degrees of freedom for the t-statistic that tests the fixed-effects coefficients against 0, 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'`

## Output Arguments

expand all

Fixed-effects coefficients estimates of the fitted linear mixed-effects model `lme`, returned as a vector.

Names of fixed-effects coefficients in `beta`, returned as a table.

Fixed-effects estimates and related statistics, returned as a dataset array that has one row for each of the fixed effects and one column for each of the following statistics.

 `Name` Name of the fixed effect coefficient `Estimate` Estimated coefficient value `SE` Standard error of the estimate `tStat` t-statistic for a test that the coefficient is zero `DF` Estimated degrees of freedom for the t-statistic `pValue` p-value for the t-statistic `Lower` Lower limit of a 95% confidence interval for the fixed-effect coefficient `Upper` Upper limit of a 95% confidence interval for the fixed-effect coefficient

## Examples

expand all

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

The data set `weight` contains data from a longitudinal study, where 20 subjects are randomly assigned to 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 a linear mixed-effects model where the initial weight, type of program, week, and the interaction between week and program are the fixed effects. The intercept and week vary by subject.

`lme = fitlme(tbl,'y ~ InitialWeight + Program*Week + (Week|Subject)');`

Display the fixed-effects coefficient estimates and corresponding fixed-effects names.

`[beta,betanames] = fixedEffects(lme)`
```beta = 9×1 0.6610 0.0032 0.3608 -0.0333 0.1132 0.1732 0.0388 0.0305 0.0331 ```
```betanames=9×1 table Name __________________ {'(Intercept)' } {'InitialWeight' } {'Program_B' } {'Program_C' } {'Program_D' } {'Week' } {'Program_B:Week'} {'Program_C:Week'} {'Program_D:Week'} ```

`load carbig`

Fit a linear mixed-effects model for miles per gallon (MPG), with fixed effects for acceleration and horsepower, and potentially correlated random effects for intercept and acceleration grouped by model year. First, store the data in a table.

`tbl = table(Acceleration,Horsepower,Model_Year,MPG);`

Fit the model.

`lme = fitlme(tbl, 'MPG ~ Acceleration + Horsepower + (Acceleration|Model_Year)');`

Compute the fixed-effects coefficients estimates and related statistics.

`[~,~,stats] = fixedEffects(lme)`
```stats = Fixed effect coefficients: DFMethod = 'Residual', Alpha = 0.05 Name Estimate SE tStat DF {'(Intercept)' } 50.133 2.2652 22.132 389 {'Acceleration'} -0.58327 0.13394 -4.3545 389 {'Horsepower' } -0.16954 0.0072609 -23.35 389 pValue Lower Upper 7.7727e-71 45.679 54.586 1.7075e-05 -0.84661 -0.31992 5.188e-76 -0.18382 -0.15527 ```

The small $p$-values (under `pValue`) indicate that all fixed-effects coefficients are significant.

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

`lme = fitlme(shift,'QCDev ~ Shift + (1|Operator)');`

Compute the 99% confidence intervals for fixed-effects coefficients, using the residual method to compute the degrees of freedom. This is the default method.

`[~,~,stats] = fixedEffects(lme,'alpha',0.01)`
```stats = Fixed effect coefficients: DFMethod = 'Residual', Alpha = 0.01 Name Estimate SE tStat DF pValue {'(Intercept)' } 3.1196 0.88681 3.5178 12 0.0042407 {'Shift_Morning'} -0.3868 0.48344 -0.80009 12 0.43921 {'Shift_Night' } 1.9856 0.48344 4.1072 12 0.0014535 Lower Upper 0.41081 5.8284 -1.8635 1.0899 0.5089 3.4623 ```

Compute the 99% confidence intervals for fixed-effects coefficients, using the Satterthwaite approximation to compute the degrees of freedom.

`[~,~,stats] = fixedEffects(lme,'DFMethod','satterthwaite','alpha',0.01)`
```stats = Fixed effect coefficients: DFMethod = 'Satterthwaite', Alpha = 0.01 Name Estimate SE tStat DF pValue {'(Intercept)' } 3.1196 0.88681 3.5178 6.123 0.01214 {'Shift_Morning'} -0.3868 0.48344 -0.80009 10 0.44225 {'Shift_Night' } 1.9856 0.48344 4.1072 10 0.00212 Lower Upper -0.14122 6.3804 -1.919 1.1454 0.45343 3.5178 ```

The Satterthwaite approximation usually produces smaller `DF` values than the residual method. That is why it produces larger $p$-values (`pValue`) and larger confidence intervals (see `Lower` and `Upper`).