LinearMixedModel.fitmatrix

Класс: LinearMixedModel

(Не Рекомендуемый) Подходящая линейная модель смешанных эффектов, использующая матрицы проекта

LinearMixedModel.fitmatrix не рекомендуется. Используйте fitlmematrix вместо этого.

Описание

пример

lme = LinearMixedModel.fitmatrix(X,y,Z,[]) создает линейную модель смешанных эффектов ответов y использование фиксированных эффектов проектирует матричный X и случайные эффекты проектируют матрицу или матрицы в Z.

[] подразумевает, что существует одна группа. Таким образом, сгруппированная переменная G ones(n,1), где n является количеством наблюдений. Используя LinearMixedModel.fitmatrix(X,Y,Z,[]) без заданного шаблона ковариации, скорее всего, приведет к неидентифицируемой модели. Этот синтаксис рекомендуется, только если вы встраиваете группирующуюся информацию в случайный проект эффектов Z и задайте шаблон ковариации для случайных эффектов с помощью 'CovariancePattern' аргумент пары "имя-значение".

пример

lme = LinearMixedModel.fitmatrix(X,y,Z,G) создает линейную модель смешанных эффектов ответов y использование фиксированных эффектов проектирует матричный X и случайные эффекты проектируют матричный Z или матрицы в Z, и сгруппированная переменная или переменные в G.

пример

lme = LinearMixedModel.fitmatrix(___,Name,Value) также создает линейную модель смешанных эффектов с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы, с помощью любого из предыдущих входных параметров.

Например, можно задать имена ответа, предиктора и сгруппированных переменных. Можно также задать шаблон ковариации, подходящий метод или алгоритм оптимизации.

Входные параметры

развернуть все

Фиксированные эффекты проектируют матрицу в виде n-by-p матрица, где n является количеством наблюдений, и p является количеством переменных предикторов фиксированных эффектов. Каждая строка X соответствует одному наблюдению и каждому столбцу X соответствует одной переменной.

Типы данных: single | double

Значения ответа в виде n-by-1 вектор, где n является количеством наблюдений.

Типы данных: single | double

Случайные эффекты проектируют в виде любого из следующих.

  • Если существует один член в модели случайных эффектов, то Z должен быть n-by-q матрица, где n является количеством наблюдений, и q является количеством переменных в термине случайных эффектов.

  • Если существуют условия случайных эффектов R, то Z должен быть массив ячеек длины R. Каждая ячейка Z содержит n-by-q (r) матрица проекта Z{r}, r = 1, 2..., R, соответствуя каждому термину случайных эффектов. Здесь, q (r) является количеством случайного термина эффектов в r th, случайные эффекты проектируют матрицу, Z{r}.

Типы данных: single | double | cell

Сгруппированная переменная или переменные в виде любого из следующих.

  • Если существует один термин случайных эффектов, то G должен быть n-by-1 вектор, соответствующий одной сгруппированной переменной с уровнями M или группами.

    G может быть категориальный вектор, логический вектор, числовой вектор, символьный массив, массив строк или массив ячеек из символьных векторов.

  • Если существует несколько условий случайных эффектов, то G должен быть массив ячеек длины R. Каждая ячейка G содержит сгруппированную переменную G{r}, r = 1, 2..., R, с M (r) уровни.

    G{r} может быть категориальный вектор, логический вектор, числовой вектор, символьный массив, массив строк или массив ячеек из символьных векторов.

Типы данных: categorical | logical | single | double | char | string | cell

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Имена столбцов в фиксированных эффектах проектируют матричный XВ виде разделенной запятой пары, состоящей из 'FixedEffectPredictors' и массив строк или массив ячеек длины p.

Например, если вы имеете постоянный термин и два предиктора, говорите TimeSpent и Gender, где Female контрольный уровень для Gender, как фиксированные эффекты, затем можно задать имена фиксированных эффектов следующим образом. Gender_Male представляет фиктивную переменную, необходимо создать для категории Male. Можно выбрать различные имена для этих переменных.

Пример: 'FixedEffectPredictors',{'Intercept','TimeSpent','Gender_Male'},

Типы данных: string | cell

Имена столбцов в случайных эффектах проектируют матричный или массив ячеек ZВ виде разделенной запятой пары, состоящей из 'RandomEffectPredictors' и любое из следующего:

  • Массив строк или массив ячеек длины q, когда Z n-by-q матрица проекта. В этом случае значением по умолчанию является {'z1','z2',...,'zQ'}.

  • Массив ячеек длины R, когда Z массив ячеек длины R с каждым элементом Z{r} из длины q (r), r = 1, 2..., R. В этом случае значением по умолчанию является {'z11','z12',...,'z1Q(1)'},...,{'zr1','zr2',...,'zrQ(r)'}.

Например, предположите, что вы коррелировали случайные эффекты для прерывания и переменной под названием Acceleration. Затем можно задать имена предиктора случайных эффектов можно следующим образом.

Пример: 'RandomEffectPredictors',{'Intercept','Acceleration'}

Если у вас есть два случайных условия эффектов, один для прерывания и переменной Acceleration сгруппированный переменной g1, и второе для прерывания, сгруппированного переменной g2, затем вы задаете имена предиктора случайных эффектов можно следующим образом.

Пример: 'RandomEffectPredictors',{{'Intercept','Acceleration'},{'Intercept'}}

Типы данных: string | cell

Имя переменной отклика в виде разделенной запятой пары, состоящей из 'ResponseVarName' и вектор символов или строковый скаляр.

Например, если вашим именем переменной отклика является score, затем можно задать его можно следующим образом.

Пример: 'ResponseVarName','score'

Типы данных: char | string

Имена случайных сгруппированных переменных эффектов в виде разделенной запятой пары 'RandomEffectGroups' и любое из следующего:

  • Вектор символов или строковый скаляр — Если существует только один термин случайных эффектов, то есть, если G вектор, затем значение 'RandomEffectGroups' имя для сгруппированной переменной G. Значением по умолчанию является 'g'.

  • Массив строк или массив ячеек из символьных векторов — Если существует несколько условий случайных эффектов, то есть, если G массив ячеек длины R, затем значение 'RandomEffectGroups' массив строк или массив ячеек длины R, где каждым элементом является имя для сгруппированной переменной G{r}. Значением по умолчанию является {'g1','g2',...,'gR'}.

Например, если у вас есть два условия случайных эффектов, z1 и z2, сгруппированный сгруппированными переменными sex и subject, затем можно задать имена сгруппированных переменных можно следующим образом.

Пример: 'RandomEffectGroups',{'sex','subject'}

Типы данных: char | string | cell

Шаблон ковариационной матрицы случайных эффектов в виде разделенной запятой пары, состоящей из 'CovariancePattern' и вектор символов, строковый скаляр, квадратная симметричная логическая матрица, массив строк, или массив ячеек из символьных векторов или логические матрицы.

Если существуют условия случайных эффектов R, то значение 'CovariancePattern' должен быть массив строк или массив ячеек длины R, где каждый элемент r массива задает шаблон ковариационной матрицы вектора случайных эффектов, сопоставленного с r th термин случайных эффектов. Опции для каждого элемента следуют.

'FullCholesky'Значение по умолчанию. Полная ковариационная матрица с помощью параметризации Холесского. fitlme оценки все элементы ковариационной матрицы.
'Full'Полная ковариационная матрица, с помощью параметризации логарифмического Холесского. fitlme оценки все элементы ковариационной матрицы.
'Diagonal'

Диагональная ковариационная матрица. Таким образом, недиагональные элементы ковариационной матрицы ограничиваются быть 0.

(σb12000σb22000σb32)

'Isotropic'

Диагональная ковариационная матрица с равными отклонениями. Таким образом, недиагональные элементы ковариационной матрицы ограничиваются быть 0, и диагональные элементы ограничиваются быть равными. Например, если существует три условия случайных эффектов с изотропной структурой ковариации, эта ковариационная матрица похожа

(σb2000σb2000σb2)

где σ2b является общим отклонением условий случайных эффектов.

'CompSymm'

Составная структура симметрии. Таким образом, общее отклонение по диагоналям и равной корреляции между всеми случайными эффектами. Например, если существует три условия случайных эффектов с ковариационной матрицей, имеющей составную структуру симметрии, эта ковариационная матрица похожа

(σb12σb1,b2σb1,b2σb1,b2σb12σb1,b2σb1,b2σb1,b2σb12)

где σ2b1 является общим отклонением условий случайных эффектов, и σb1, b2 является общей ковариацией между любыми двумя терминами случайных эффектов.

PATКвадратная симметричная логическая матрица. Если 'CovariancePattern' задан матричным PAT, и если PAT(a,b) = false, затем (a,b) элемент соответствующей ковариационной матрицы ограничивается быть 0.

Пример: 'CovariancePattern','Diagonal'

Пример: 'CovariancePattern',{'Full','Diagonal'}

Типы данных: char | string | logical | cell

Метод для оценки параметров линейной модели смешанных эффектов в виде разделенной запятой пары, состоящей из 'FitMethod' и любое из следующих.

'ML'Значение по умолчанию. Оценка наибольшего правдоподобия
'REML'Ограниченная оценка наибольшего правдоподобия

Пример: 'FitMethod','REML'

Веса наблюдения в виде разделенной запятой пары, состоящей из 'Weights' и вектор длины n, где n является количеством наблюдений.

Типы данных: single | double

Индексы для строк, чтобы исключить из линейной модели смешанных эффектов в данных в виде разделенной запятой пары, состоящей из 'Exclude' и вектор целочисленных или логических значений.

Например, можно исключить 13-е и 67-е строки из подгонки можно следующим образом.

Пример: 'Exclude',[13,67]

Типы данных: single | double | logical

Кодирование, чтобы использовать в фиктивных переменных, созданных из категориальных переменных в виде разделенной запятой пары, состоящей из 'DummyVarCoding' и одно из следующих.

ЗначениеОписание
'reference'Значение по умолчанию. Коэффициент для первого набора категории к 0.
'effects'Коэффициенты суммируют к 0.
'full'Одна фиктивная переменная для каждой категории.

Пример: 'DummyVarCoding','effects'

Алгоритм оптимизации в виде разделенной запятой пары, состоящей из 'Optimizer' и любое из следующих.

'quasinewton'Значение по умолчанию. Использует доверительный находящийся в области оптимизатор квазиньютона. Измените опции алгоритма с помощью statset('LinearMixedModel'). Если вы не задаете опции, то LinearMixedModel использует опции по умолчанию statset('LinearMixedModel').
'fminunc'У вас должен быть Optimization Toolbox™, чтобы задать эту опцию. Измените опции алгоритма с помощью optimoptions('fminunc'). Если вы не задаете опции, то LinearMixedModel использует опции по умолчанию optimoptions('fminunc') с 'Algorithm' установите на 'quasi-newton'.

Пример: 'Optimizer','fminunc'

Опции для алгоритма оптимизации в виде разделенной запятой пары, состоящей из 'OptimizerOptions' и структура, возвращенная statset('LinearMixedModel') или объект, возвращенный optimoptions('fminunc').

  • Если 'Optimizer' 'fminunc', затем используйте optimoptions('fminunc') изменить опции алгоритма оптимизации. Смотрите optimoptions для опций 'fminunc' использование. Если 'Optimizer' 'fminunc' и вы не предоставляете 'OptimizerOptions', затем значение по умолчанию для LinearMixedModel опции по умолчанию, созданные optimoptions('fminunc') с 'Algorithm' установите на 'quasi-newton'.

  • Если 'Optimizer' 'quasinewton', затем используйте statset('LinearMixedModel') изменить параметры оптимизации. Если вы не изменяете параметры оптимизации, то LinearMixedModel использует опции по умолчанию, созданные statset('LinearMixedModel'):

'quasinewton' оптимизатор использует следующие поля в структуре, созданной statset('LinearMixedModel').

Относительный допуск на градиенте целевой функции в виде значения положительной скалярной величины.

Абсолютный допуск на размере шага в виде значения положительной скалярной величины.

Максимальное количество итераций позволено в виде значения положительной скалярной величины.

Level of display в виде одного из 'off', 'iter', или 'final'.

Метод, чтобы запустить итеративную оптимизацию в виде разделенной запятой пары, состоящей из 'StartMethod' и любое из следующих.

ЗначениеОписание
'default'Внутренне заданное значение по умолчанию
'random'Случайное начальное значение

Пример: 'StartMethod','random'

Индикатор, чтобы отобразить процесс оптимизации на экране в виде разделенной запятой пары, состоящей из 'Verbose' и любой false или true. Значением по умолчанию является false.

Установка для 'Verbose' заменяет поле 'Display' в 'OptimizerOptions'.

Пример: 'Verbose',true

Индикатор, чтобы проверять положительную определенность Гессиана целевой функции относительно неограниченных параметров в сходимости в виде разделенной запятой пары, состоящей из 'CheckHessian' и любой false или true. Значением по умолчанию является false.

Задайте 'CheckHessian' как true проверить оптимальность решения или определить, сверхпараметрируется ли модель в количестве параметров ковариации.

Пример: 'CheckHessian',true

Выходные аргументы

развернуть все

Линейная модель смешанных эффектов, возвращенная как LinearMixedModel объект.

Примеры

развернуть все

Загрузите выборочные данные.

load carsmall

Подбирайте линейную модель смешанных эффектов, где MPG является ответом, вес является переменным предиктором, и прерывание варьируется к модельному году. Во-первых, задайте матрицы проекта. Затем подбирайте модель с помощью заданных матриц проекта.

y = MPG;
X = [ones(size(Weight)), Weight];
Z = ones(size(y));
lme = LinearMixedModel.fitmatrix(X,y,Z,Model_Year)
lme = 
Linear mixed-effects model fit by ML

Model information:
    Number of observations              94
    Fixed effects coefficients           2
    Random effects coefficients          3
    Covariance parameters                2

Formula:
    y ~ x1 + x2 + (z11 | g1)

Model fit statistics:
    AIC       BIC       LogLikelihood    Deviance
    486.09    496.26    -239.04          478.09  

Fixed effects coefficients (95% CIs):
    Name          Estimate      SE           tStat      DF    pValue    
    {'x1'}            43.575       2.3038     18.915    92    1.8371e-33
    {'x2'}        -0.0067097    0.0004242    -15.817    92    5.5373e-28


    Lower         Upper     
            39        48.151
    -0.0075522    -0.0058672

Random effects covariance parameters (95% CIs):
Group: g1 (3 Levels)
    Name1          Name2          Type           Estimate    Lower     Upper 
    {'z11'}        {'z11'}        {'std'}        3.301       1.4448    7.5421

Group: Error
    Name               Estimate    Lower     Upper 
    {'Res Std'}        2.8997      2.5075    3.3532

Теперь подбирайте ту же модель путем встраивания группировки в Z матрица.

Z = double([Model_Year==70, Model_Year==76, Model_Year==82]);
lme = LinearMixedModel.fitmatrix(X,y,Z,[],...
'Covariancepattern','Isotropic')
lme = 
Linear mixed-effects model fit by ML

Model information:
    Number of observations              94
    Fixed effects coefficients           2
    Random effects coefficients          3
    Covariance parameters                2

Formula:
    y ~ x1 + x2 + (z11 + z12 + z13 | g1)

Model fit statistics:
    AIC       BIC       LogLikelihood    Deviance
    486.09    496.26    -239.04          478.09  

Fixed effects coefficients (95% CIs):
    Name          Estimate      SE           tStat      DF    pValue    
    {'x1'}            43.575       2.3038     18.915    92    1.8371e-33
    {'x2'}        -0.0067097    0.0004242    -15.817    92    5.5373e-28


    Lower         Upper     
            39        48.151
    -0.0075522    -0.0058672

Random effects covariance parameters (95% CIs):
Group: g1 (1 Levels)
    Name1          Name2          Type           Estimate    Lower     Upper 
    {'z11'}        {'z11'}        {'std'}        3.301       1.4448    7.5421

Group: Error
    Name               Estimate    Lower     Upper 
    {'Res Std'}        2.8997      2.5075    3.3532

Загрузите выборочные данные.

load('weight.mat');

weight содержит данные из продольного исследования, где 20 предметов случайным образом присвоены, 4 программы подготовки (A, B, C, D) и их потеря веса зарегистрированы более чем шести2D недельные периоды времени. Это - симулированные данные.

Задайте Subject и Program как категориальные переменные. Создайте матрицы проекта для линейной модели смешанных эффектов, с начальным весом, типом программы, неделя и взаимодействие между неделей и типом программы как фиксированные эффекты. Прерывание и коэффициент недели варьируются предметом.

Эта модель соответствует

yim=β0+β1IWi+β2Weeki+β3I[PB]i+β4I[PC]i+β5I[PD]i+β6(Weeki*I[PB]i)+β7(Weeki*I[PC]i)+β8(Weeki*I[PD]i)+b0m+b1mWeekim+εim,

где i = 1, 2..., 120, и m = 1, 2, ..., 20. βj коэффициенты фиксированных эффектов, j = 0, 1..., 8, и b0m и b1m случайные эффекты. IW обозначает начальный вес и I[] фиктивная переменная, представляющая тип программы. Например, I[PB]i фиктивный переменный тип B программы представления. Случайные эффекты и ошибка наблюдения имеют следующие предшествующие распределения:

b0mN(0,σ02)

b1mN(0,σ12)

εimN(0,σ2).

Subject = nominal(Subject);
Program = nominal(Program);
D = dummyvar(Program); % Create dummy variables for Program
X = [ones(120,1), InitialWeight, D(:,2:4), Week,...
		 D(:,2).*Week, D(:,3).*Week, D(:,4).*Week];
Z = [ones(120,1), Week];
G = Subject;

Поскольку модель имеет прерывание, вам только нужны фиктивные переменные для программ B, C и D. Это также известно как 'reference' метод кодирования фиктивных переменных.

Подбирайте модель с помощью LinearMixedModel.fitmatrix с заданными матрицами проекта и сгруппированными переменными.

lme = LinearMixedModel.fitmatrix(X,y,Z,G,'FixedEffectPredictors',...
{'Intercept','InitWeight','PrgB','PrgC','PrgD','Week','Week_PrgB','Week_PrgC','Week_PrgD'},...
'RandomEffectPredictors',{{'Intercept','Week'}},'RandomEffectGroups',{'Subject'})
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:
    Linear Mixed Formula with 10 predictors.

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     pValue   
    {'Intercept' }          0.66105      0.25892      2.5531    111     0.012034
    {'InitWeight'}        0.0031879    0.0013814      2.3078    111     0.022863
    {'PrgB'      }          0.36079      0.13139       2.746    111    0.0070394
    {'PrgC'      }        -0.033263      0.13117    -0.25358    111      0.80029
    {'PrgD'      }          0.11317      0.13132     0.86175    111      0.39068
    {'Week'      }           0.1732     0.067454      2.5677    111     0.011567
    {'Week_PrgB' }         0.038771     0.095394     0.40644    111      0.68521
    {'Week_PrgC' }         0.030543     0.095394     0.32018    111      0.74944
    {'Week_PrgD' }         0.033114     0.095394     0.34713    111      0.72915


    Lower         Upper    
       0.14798       1.1741
    0.00045067    0.0059252
       0.10044      0.62113
      -0.29319      0.22666
      -0.14706       0.3734
      0.039536      0.30686
      -0.15026       0.2278
      -0.15849      0.21957
      -0.15592      0.22214

Random effects covariance parameters (95% CIs):
Group: Subject (20 Levels)
    Name1                Name2                Type            Estimate
    {'Intercept'}        {'Intercept'}        {'std' }        0.18407 
    {'Week'     }        {'Intercept'}        {'corr'}        0.66841 
    {'Week'     }        {'Week'     }        {'std' }        0.15033 


    Lower      Upper  
    0.12281    0.27587
    0.21077    0.88573
    0.11004    0.20537

Group: Error
    Name               Estimate    Lower       Upper  
    {'Res Std'}        0.10261     0.087882    0.11981

p- значения 0.0228 и 0.0115 указывают, что значительные эффекты начальных весов предметов и время включают сумму потерянного веса. Потеря веса предметов, которые находятся в программе B, существенно отличается относительно потери веса предметов, которые находятся в программе A. Нижние и верхние пределы параметров ковариации для случайных эффектов не включают нуль, таким образом они кажутся значительными. Можно также протестировать значение случайных эффектов с помощью compare метод.

Загрузите выборочные данные.

load flu

flu массив набора данных имеет Date переменная и 10 переменных для предполагаемых уровней гриппа (в 9 различных областях, оцененных от поисковых запросов Google®, плюс общенациональная оценка от CDC).

Чтобы подбирать линейно смешанную модель эффектов, где уровни гриппа являются ответами, комбинируют эти девять столбцов, соответствующих областям в массив, который имеет одну переменную отклика, FluRate, и номинальная переменная, Region, общенациональная оценка WtdILI, это показывает, какая область каждая оценка от, и сгруппированная переменная Date.

flu2 = stack(flu,2:10,'NewDataVarName','FluRate',...
    'IndVarName','Region');
flu2.Date = nominal(flu2.Date);

Задайте матрицы проекта для случайного прерывания линейная модель смешанных эффектов, где прерывание варьируется Date. Соответствующая модель

yim=β0+β1WtdILIim+b0m+εim,i=1,2,...,468,m=1,2,...,52,

где yim наблюдение i для уровня m из сгруппированной переменной Date, b0m случайный эффект для уровня m из сгруппированной переменной Date, и εim ошибка наблюдения для наблюдения i. Случайный эффект имеет предшествующее распределение,

b0mN(0,σb2),

и остаточный член имеет распределение,

εimN(0,σ2).

y = flu2.FluRate;
X = [ones(468,1) flu2.WtdILI];
Z = [ones(468,1)];
G = flu2.Date;

Подбирайте линейную модель смешанных эффектов.

lme = LinearMixedModel.fitmatrix(X,y,Z,G,'FixedEffectPredictors',{'Intercept','NationalRate'},...
'RandomEffectPredictors',{{'Intercept'}},'RandomEffectGroups',{'Date'})
lme = 
Linear mixed-effects model fit by ML

Model information:
    Number of observations             468
    Fixed effects coefficients           2
    Random effects coefficients         52
    Covariance parameters                2

Formula:
    y ~ Intercept + NationalRate + (Intercept | Date)

Model fit statistics:
    AIC       BIC       LogLikelihood    Deviance
    286.24    302.83    -139.12          278.24  

Fixed effects coefficients (95% CIs):
    Name                    Estimate    SE          tStat     DF     pValue    
    {'Intercept'   }        0.16385     0.057525    2.8484    466     0.0045885
    {'NationalRate'}         0.7236     0.032219    22.459    466    3.0502e-76


    Lower       Upper  
    0.050813    0.27689
     0.66028    0.78691

Random effects covariance parameters (95% CIs):
Group: Date (52 Levels)
    Name1                Name2                Type           Estimate    Lower  
    {'Intercept'}        {'Intercept'}        {'std'}        0.17146     0.13227


    Upper  
    0.22226

Group: Error
    Name               Estimate    Lower      Upper  
    {'Res Std'}        0.30201     0.28217    0.32324

Пределы достоверности стандартного отклонения термина случайных эффектов σb не включайте нуль (0.13227, 0.22226), который указывает, что термин случайных эффектов является значительным. Можно также протестировать значение случайных эффектов с помощью compare метод.

Ориентировочная стоимость наблюдения является суммой значений фиксированных эффектов и значения случайного эффекта на уровне сгруппированной переменной, соответствующем тому наблюдению. Например, предполагаемый уровень гриппа для наблюдения 28

yˆ28=βˆ0+βˆ1WtdILI28+bˆ10/30/2005=0.1639+0.7236*(1.343)+0.3318=1.46749,

где bˆ BLUP случайных эффектов для прерывания. Можно вычислить это значение следующим образом.

beta = fixedEffects(lme);
[~,~,STATS] = randomEffects(lme); % compute the random effects statistics STATS
STATS.Level = nominal(STATS.Level);
y_hat = beta(1) + beta(2)*flu2.WtdILI(28) + STATS.Estimate(STATS.Level=='10/30/2005')
y_hat = 1.4674

Можно просто отобразить подходящее значение с помощью fitted(lme) метод.

F = fitted(lme);
F(28)
ans = 1.4674

Загрузите выборочные данные.

load('shift.mat');

Набор данных показывает отклонения от целевой качественной характеристики, измеренной от продуктов, каждый из пяти операторов производит более чем три различных сдвига, утро, вечер и ночь. Это - рандомизированная блочная конструкция, где операторы являются блоками. Эксперимент спроектирован, чтобы изучить удар времени сдвига на производительности. Критерием качества работы являются отклонения качественных характеристик от целевого значения. Это - симулированные данные.

Задайте матрицы проекта для линейной модели смешанных эффектов со случайным прерыванием, сгруппированным оператором и сдвигом как фиксированные эффекты. Используйте 'effects' контрасты. 'effects' контрасты означают, что коэффициенты суммируют, чтобы обнулить. Необходимо создать закодированные переменные двух контрастов в матрице проекта фиксированных эффектов, X1 и X2, где

Shift_Вечер={0,if Morning1,if Evening-1,if Night

Shift_Утро={началоarrayll1,\mboxеслиУтро

Модель соответствует

Morning Shift: QCDevim=β0+β2Shift_Утроi+b0m+ϵim,Evening Shift: QCDevim=β0+β1Shift_Вечерi+b0m+ϵim,Night Shift: QCDevim=β0-β1Shift_Вечерi-β2Shift_Утроi+b0m+ϵim,

где i представляет наблюдения, и m представляет операторы, i = 1, 2..., 15, и m = 1, 2..., 5. Случайные эффекты и ошибка наблюдения имеют следующие распределения:

b0mN(0,σb2)

и

εimN(0,σ2).

S = shift.Shift;
X1 = (S=='Morning') - (S=='Night');
X2 = (S=='Evening') - (S=='Night');
X = [ones(15,1), X1, X2];
y = shift.QCDev;
Z = ones(15,1);
G = shift.Operator;

Подбирайте линейную модель смешанных эффектов использование заданных матриц проекта и ограниченного метода максимального правдоподобия.

lme = LinearMixedModel.fitmatrix(X,y,Z,G,'FitMethod','REML','FixedEffectPredictors',....
{'Intercept','S_Morning','S_Evening'},'RandomEffectPredictors',{{'Intercept'}},...
'RandomEffectGroups',{'Operator'},'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:
    y ~ Intercept + S_Morning + S_Evening + (Intercept | 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
    {'S_Morning'}        -0.91973    0.31206    -2.9473    12     0.012206
    {'S_Evening'}        -0.53293    0.31206    -1.7078    12      0.11339


    Lower      Upper   
     1.6021       5.703
    -1.5997    -0.23981
    -1.2129     0.14699

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

Вычислите оценки лучше всего линейного несмещенного предиктора (BLUP) случайных эффектов.

B = randomEffects(lme)
B = 5×1

    0.5775
    1.1757
   -2.1715
    2.3655
   -1.9472

Предполагаемое отклонение от целевых качественных характеристик для третьего оператора, работающего в вечерней смене,

yˆEvening,Operator3=βˆ0+βˆ1Сдвиг_Вечер+bˆ03=3.6525-0.53293-2.1715=0.94807.

Можно также отобразить это значение следующим образом.

F = fitted(lme);
F(shift.Shift=='Evening' & shift.Operator=='3')
ans = 0.9481

Загрузите выборочные данные.

load carbig

Подбирайте линейную модель смешанных эффектов для миль на галлон (MPG), с фиксированными эффектами для ускорения, лошадиной силы и цилиндров и некоррелированого случайного эффекта для прерывания и ускорения, сгруппированного модельным годом. Эта модель соответствует

MPGim=β0+β1Acci+β2HP+b0m+b1mAccim+εim,m=1,2,3,

с условиями случайных эффектов, имеющими следующие предшествующие распределения:

b0mN(0,σ02),

b1mN(0,σ12),

где m представляет модельный год.

Во-первых, подготовьте матрицы проекта к тому, что они подбирали линейную модель смешанных эффектов.

X = [ones(406,1) Acceleration Horsepower];
Z = {ones(406,1),Acceleration};
G = {Model_Year,Model_Year};
Model_Year = nominal(Model_Year);

Теперь подбирайте модель с помощью LinearMixedModel.fitmatrix с заданными матрицами проекта и сгруппированными переменными.

lme = LinearMixedModel.fitmatrix(X,MPG,Z,G,'FixedEffectPredictors',....
{'Intercept','Acceleration','Horsepower'},'RandomEffectPredictors',...
{{'Intercept'},{'Acceleration'}},'RandomEffectGroups',{'Model_Year','Model_Year'})
lme = 
Linear mixed-effects model fit by ML

Model information:
    Number of observations             392
    Fixed effects coefficients           3
    Random effects coefficients         26
    Covariance parameters                3

Formula:
    Linear Mixed Formula with 4 predictors.

Model fit statistics:
    AIC       BIC       LogLikelihood    Deviance
    2194.5    2218.3    -1091.3          2182.5  

Fixed effects coefficients (95% CIs):
    Name                    Estimate    SE           tStat      DF 
    {'Intercept'   }          49.839       2.0518     24.291    389
    {'Acceleration'}        -0.58565      0.10846    -5.3995    389
    {'Horsepower'  }        -0.16534    0.0071227    -23.213    389


    pValue        Lower       Upper   
    5.6168e-80      45.806      53.873
    1.1652e-07     -0.7989     -0.3724
    1.9755e-75    -0.17934    -0.15133

Random effects covariance parameters (95% CIs):
Group: Model_Year (13 Levels)
    Name1                Name2                Type           Estimate     Lower
    {'Intercept'}        {'Intercept'}        {'std'}        8.928e-07    NaN  


    Upper
    NaN  

Group: Model_Year (13 Levels)
    Name1                   Name2                   Type           Estimate
    {'Acceleration'}        {'Acceleration'}        {'std'}        0.18783 


    Lower      Upper  
    0.12523    0.28172

Group: Error
    Name               Estimate    Lower     Upper 
    {'Res Std'}        3.7258      3.4698    4.0007

Стандартное отклонение случайного эффекта для прерывания не кажется значительным.

Переоборудуйте модель потенциально коррелироваными случайными эффектами для прерывания и ускорения. В этом случае условия случайных эффектов имеют следующее предшествующее распределение

bm=(b0mb1m)N(0,(σ02σ0,1σ0,1σ12)),

где m представляет модельный год.

Сначала подготовьтесь, случайные эффекты проектируют матрицу и сгруппированную переменную.

Z = [ones(406,1) Acceleration];
G = Model_Year;

lme = LinearMixedModel.fitmatrix(X,MPG,Z,G,'FixedEffectPredictors',....
{'Intercept','Acceleration','Horsepower'},'RandomEffectPredictors',...
{{'Intercept','Acceleration'}},'RandomEffectGroups',{'Model_Year'})
lme = 
Linear mixed-effects model fit by ML

Model information:
    Number of observations             392
    Fixed effects coefficients           3
    Random effects coefficients         26
    Covariance parameters                4

Formula:
    Linear Mixed Formula with 4 predictors.

Model fit statistics:
    AIC       BIC       LogLikelihood    Deviance
    2193.5    2221.3    -1089.7          2179.5  

Fixed effects coefficients (95% CIs):
    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

Random effects covariance parameters (95% CIs):
Group: Model_Year (13 Levels)
    Name1                   Name2                   Type            Estimate
    {'Intercept'   }        {'Intercept'   }        {'std' }          3.3475
    {'Acceleration'}        {'Intercept'   }        {'corr'}        -0.87971
    {'Acceleration'}        {'Acceleration'}        {'std' }         0.33789


    Lower       Upper   
      1.2862      8.7119
    -0.98501    -0.29675
      0.1825     0.62558

Group: Error
    Name               Estimate    Lower     Upper 
    {'Res Std'}        3.6874      3.4298    3.9644

Доверительные интервалы для стандартных отклонений и корреляции между случайными эффектами для прерывания и ускорения не включают нули, следовательно они кажутся значительными. Можно сравнить эти две модели с помощью compare метод.

Загрузите выборочные данные.

load('weight.mat');

weight содержит данные из продольного исследования, где 20 предметов случайным образом присвоены 4 программы подготовки, и их потеря веса зарегистрирована более чем шести2D недельные периоды времени. Это - симулированные данные.

Задайте Subject и Program как категориальные переменные.

Subject = nominal(Subject);
Program = nominal(Program);

Создайте матрицы проекта для линейной модели смешанных эффектов, с начальным весом, типом программы, и неделя является фиксированными эффектами.

D = dummyvar(Program);
X = [ones(120,1), InitialWeight, D(:,2:4), Week];
Z = [ones(120,1) Week];
G = Subject;

Эта модель соответствует

yim=β0+β1IWi+β2Weeki+β3I[PB]i+β4I[PC]i+β5I[PD]i+b0m+b1mWeek2im+b2mWeek4im+b3mWeek6im+b4mWeek8im+b5mWeek10im+b6mWeek12im+εim,

где i = 1, 2..., 120, и m = 1, 2, ..., 20.

βj коэффициенты фиксированных эффектов, j = 0, 1..., 8, и b0m и b1m случайные эффекты. IW обозначает начальный вес и I[.] фиктивная переменная, представляющая тип программы. Например, I[PB]i фиктивный переменный тип B программы представления. Случайные эффекты и ошибка наблюдения имеют следующие предшествующие распределения:

b0mN(0,σ02)

b1mN(0,σ12)

εimN(0,σ2).

Подбирайте модель с помощью LinearMixedModel.fitmatrix с заданными матрицами проекта и сгруппированными переменными. Примите, что повторные наблюдения, собранные на предмете, имеют общее отклонение по диагоналям.

lme = LinearMixedModel.fitmatrix(X,y,Z,G,'FixedEffectPredictors',...
{'Intercept','InitWeight','PrgB','PrgC','PrgD','Week'},...
'RandomEffectPredictors',{{'Intercept','Week'}},...
'RandomEffectGroups',{'Subject'},'CovariancePattern','Isotropic')
lme = 
Linear mixed-effects model fit by ML

Model information:
    Number of observations             120
    Fixed effects coefficients           6
    Random effects coefficients         40
    Covariance parameters                2

Formula:
    Linear Mixed Formula with 7 predictors.

Model fit statistics:
    AIC        BIC       LogLikelihood    Deviance
    -24.783    -2.483    20.391           -40.783 

Fixed effects coefficients (95% CIs):
    Name                  Estimate     SE           tStat       DF 
    {'Intercept' }           0.4208      0.28169      1.4938    114
    {'InitWeight'}        0.0045552    0.0015338      2.9699    114
    {'PrgB'      }          0.36993      0.12119      3.0525    114
    {'PrgC'      }        -0.034009       0.1209    -0.28129    114
    {'PrgD'      }            0.121      0.12111     0.99911    114
    {'Week'      }          0.19881     0.037134      5.3538    114


    pValue        Lower        Upper    
       0.13799     -0.13723      0.97883
     0.0036324    0.0015168    0.0075935
     0.0028242      0.12986         0.61
       0.77899     -0.27351       0.2055
       0.31986     -0.11891      0.36091
    4.5191e-07      0.12525      0.27237

Random effects covariance parameters (95% CIs):
Group: Subject (20 Levels)
    Name1                Name2                Type           Estimate    Lower  
    {'Intercept'}        {'Intercept'}        {'std'}        0.16561     0.12896


    Upper  
    0.21269

Group: Error
    Name               Estimate    Lower       Upper  
    {'Res Std'}        0.10272     0.088014    0.11987

Больше о

развернуть все

Советы

  • Если ваша модель легко не описана с помощью формулы, можно создать матрицы, чтобы задать фиксированные и случайные эффекты и подбирать модель с помощью fitlmematrix.

Альтернативы

Можно также подбирать линейную модель смешанных эффектов использование fitlme(tbl,formula), где tbl таблица или массив набора данных, содержащий ответ y, переменные предикторы X, и сгруппированные переменные и formula имеет форму 'y ~ fixed + (random1|g1) + ... + (randomR|gR)'.

Если ваша модель легко не описана с помощью формулы, можно создать матрицы, чтобы задать фиксированные и случайные эффекты и подбирать модель с помощью fitlmematrix(X,y,Z,G).

Смотрите также

|

Для просмотра документации необходимо авторизоваться на сайте