LinearMixedModel.fitmatrix

Класс: LinearMixedModel

Соответствуйте линейной модели смешанных эффектов, использующей матрицы проекта

LinearMixedModel.fitmatrix будет удален в будущем релизе. Используйте fitlmematrix вместо этого.

Синтаксис

lme = LinearMixedModel.fitmatrix(X,y,Z,[])
lme = LinearMixedModel.fitmatrix(X,y,Z,G)
lme = LinearMixedModel.fitmatrix(___,Name,Value)

Описание

пример

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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').

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

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

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

Уровень отображения, заданного как один из '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(fullfile(matlabroot,'examples','stats','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    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

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(fullfile(matlabroot,'examples','stats','shift.mat'));

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

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

Shift_Evening={0,если Утро1,если Вечер-1,если Ночь

Shift_Morning={1,если Утро0,если Вечер-1,если Ночь

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

Утренний сдвиг: КЦДЕВim=β0+β2Shift_Morningi+b0m+ϵim, Вечерняя смена: КЦДЕВim=β0+β1Shift_Eveningi+b0m+ϵim, Ночная смена: КЦДЕВim=β0-β1Shift_Eveningi-β2Shift_Morningi+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ˆВечер,Оператор3=βˆ0+βˆ1Shift_Evening+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     pValue    
    'Intercept'             49.839       2.0518     24.291    389    5.6168e-80
    'Acceleration'        -0.58565      0.10846    -5.3995    389    1.1652e-07
    'Horsepower'          -0.16534    0.0071227    -23.213    389    1.9755e-75


    Lower       Upper   
      45.806      53.873
     -0.7989     -0.3724
    -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    Lower  
    'Acceleration'        'Acceleration'        'std'        0.18783     0.12523


    Upper  
    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     pValue    
    'Intercept'             50.133       2.2652     22.132    389    7.7727e-71
    'Acceleration'        -0.58327      0.13394    -4.3545    389    1.7075e-05
    'Horsepower'          -0.16954    0.0072609     -23.35    389     5.188e-76


    Lower       Upper   
      45.679      54.586
    -0.84661    -0.31992
    -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.29676
      0.1825     0.62558

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

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

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

load(fullfile(matlabroot,'examples','stats','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     pValue    
    'Intercept'            0.4208      0.28169      1.4938    114       0.13799
    'InitWeight'        0.0045552    0.0015338      2.9699    114     0.0036324
    'PrgB'                0.36993      0.12119      3.0525    114     0.0028242
    'PrgC'              -0.034009       0.1209    -0.28129    114       0.77899
    'PrgD'                  0.121      0.12111     0.99911    114       0.31986
    'Week'                0.19881     0.037134      5.3538    114    4.5191e-07


    Lower        Upper    
     -0.13723      0.97883
    0.0015168    0.0075935
      0.12986         0.61
     -0.27351       0.2055
     -0.11891      0.36091
      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).

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

|

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