LinearMixedModel.fit

Класс: LinearMixedModel

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

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

Синтаксис

lme = LinearMixedModel.fit(tbl,formula)
lme = LinearMixedModel.fit(tbl,formula,Name,Value)

Описание

пример

lme = LinearMixedModel.fit(tbl,formula) возвращает линейную модель смешанных эффектов, заданную formula, адаптированным к переменным в таблице или массиве набора данных tbl.

пример

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

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

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

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

Входные данные, который включает переменную отклика, переменные прогноза и группирующие переменные, заданные как массив dataset или таблица. Переменные прогноза могут быть непрерывными или группирующие переменные (см. Группирующие переменные). Необходимо задать модель для переменных с помощью formula.

Типы данных: table

Формула для образцовой спецификации, заданной как вектор символов или скаляр строки формы 'y ~ fixed + (random1|grouping1) + ... + (randomR|groupingR)'. Для полного описания смотрите Формулу.

Пример: 'y ~ treatment +(1|block)'

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

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

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

Шаблон ковариационной матрицы случайных эффектов, заданных как пара, разделенная запятой, состоящая из '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 flu

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

Чтобы соответствовать линейно смешанной модели эффектов, ваши данные должны быть в правильно отформатированном массиве набора данных. Чтобы соответствовать линейной модели смешанных эффектов уровнями гриппа как ответы, объедините эти девять столбцов, соответствующих областям в массив. Новый массив набора данных, flu2, должен иметь переменную отклика 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).

lme = LinearMixedModel.fit(flu2,'FluRate ~ 1 + WtdILI + (1|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:
    FluRate ~ 1 + WtdILI + (1 | 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
    'WtdILI'              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 (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.

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

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

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

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

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

Контрасты 'effects' означают, что содействующая сумма к 0, и LinearMixedModel.fit создает матрицу, названную, фиксированные эффекты разрабатывают матрицу, чтобы описать эффект Сдвига. Эта матрица имеет два столбца, Shift_Evening и Shift_Morning, где

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

lme = LinearMixedModel.fit(shift,'QCDev ~ Shift + (1|Operator)',...
'FitMethod','REML','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:
    QCDev ~ 1 + Shift + (1 | 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
    'Shift_Evening'        -0.53293    0.31206    -1.7078    12      0.11339
    'Shift_Morning'        -0.91973    0.31206    -2.9473    12     0.012206


    Lower      Upper   
     1.6021       5.703
    -1.2129     0.14699
    -1.5997    -0.23981

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

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

yˆУтро,Оператор3=βˆ0+βˆ2Shift_Morning+bˆ03=3.6525-0.91973-2.1715=0.56127.

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

F(shift.Shift=='Morning' & shift.Operator=='3')
ans = 0.5613

Оператор имеет тенденцию делать меньшее значение ошибки в утреннем сдвиге.

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

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

Массив набора данных включает данные из эксперимента графика разделения, где почва разделена на три блока на основе типа грунта: песчаный, илистый, и глинистый. Каждый блок разделен на пять графиков, где пять типов томатных объектов, (вишня, семейная реликвия, виноград, виноградная лоза и слива) случайным образом присвоены этим графикам. Затем томатные объекты в графиках разделены на подграфики, где каждый подграфик обработан одним из этих четырех удобрений. Это - моделируемые данные.

Храните данные в массиве набора данных под названием ds, практически, и задайте Tomato, Soil и Fertilizer как категориальные переменные.

ds = fertilizer;
ds.Tomato = nominal(ds.Tomato);
ds.Soil = nominal(ds.Soil);
ds.Fertilizer = nominal(ds.Fertilizer);

Соответствуйте линейной модели смешанных эффектов, где Fertilizer и Tomato являются переменными фиксированных эффектов, и средний урожай отличается блоком (тип грунта) и графики в блоках (томатные типы в типах грунта) независимо.

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

yimjk=β0+m=24β1mI[F]im+j=25β2jI[T]ij+j=25m=24β3mjI[F]imI[T]ij+b0kSk+b0jk(S*T)jk+ϵimjk,

где i=1,2,...,60, индекс m соответствует типам удобрения, j соответствует томатным типам, и k=1,2,3 соответствует блокам (почва). Sk представляет kth тип грунта, и (S*T)jk представляет jth томатный тип, вложенный в kth типе грунта. I[F]im фиктивный переменный уровень представления m из удобрения. Точно так же I[T]ij фиктивная переменная, представляющая уровень j из томатного типа.

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

b0kN(0,σS2)

b0jkN(0,σS*T2)

ϵimjkN(0,σ2)

lme = LinearMixedModel.fit(ds,'Yield ~ Fertilizer * Tomato + (1|Soil) + (1|Soil:Tomato)')
lme = 
Linear mixed-effects model fit by ML

Model information:
    Number of observations              60
    Fixed effects coefficients          20
    Random effects coefficients         18
    Covariance parameters                3

Formula:
    Yield ~ 1 + Tomato*Fertilizer + (1 | Soil) + (1 | Soil:Tomato)

Model fit statistics:
    AIC       BIC       LogLikelihood    Deviance
    522.57    570.74    -238.29          476.57  

Fixed effects coefficients (95% CIs):
    Name                                  Estimate    SE        tStat       DF
    '(Intercept)'                              77     8.5836      8.9706    40
    'Tomato_Grape'                            -16     11.966     -1.3371    40
    'Tomato_Heirloom'                     -6.6667     11.966    -0.55714    40
    'Tomato_Plum'                          32.333     11.966      2.7022    40
    'Tomato_Vine'                             -13     11.966     -1.0864    40
    'Fertilizer_2'                         34.667      8.572      4.0442    40
    'Fertilizer_3'                         33.667      8.572      3.9275    40
    'Fertilizer_4'                         47.667      8.572      5.5607    40
    'Tomato_Grape:Fertilizer_2'           -2.6667     12.123    -0.21997    40
    'Tomato_Heirloom:Fertilizer_2'             -8     12.123    -0.65992    40
    'Tomato_Plum:Fertilizer_2'                -15     12.123     -1.2374    40
    'Tomato_Vine:Fertilizer_2'                -16     12.123     -1.3198    40
    'Tomato_Grape:Fertilizer_3'            16.667     12.123      1.3748    40
    'Tomato_Heirloom:Fertilizer_3'         3.3333     12.123     0.27497    40
    'Tomato_Plum:Fertilizer_3'             3.6667     12.123     0.30246    40
    'Tomato_Vine:Fertilizer_3'                  3     12.123     0.24747    40
    'Tomato_Grape:Fertilizer_4'            13.333     12.123      1.0999    40
    'Tomato_Heirloom:Fertilizer_4'            -19     12.123     -1.5673    40
    'Tomato_Plum:Fertilizer_4'            -2.6667     12.123    -0.21997    40
    'Tomato_Vine:Fertilizer_4'             8.6667     12.123     0.71492    40


    pValue        Lower      Upper 
    4.0206e-11     59.652    94.348
       0.18873    -40.184    8.1837
       0.58053     -30.85    17.517
      0.010059     8.1496    56.517
       0.28379    -37.184    11.184
    0.00023272     17.342    51.991
    0.00033057     16.342    50.991
    1.9567e-06     30.342    64.991
       0.82701    -27.167    21.834
       0.51309    -32.501    16.501
       0.22317    -39.501    9.5007
       0.19439    -40.501    8.5007
       0.17683    -7.8341    41.167
       0.78476    -21.167    27.834
       0.76387    -20.834    28.167
       0.80581    -21.501    27.501
       0.27796    -11.167    37.834
       0.12492    -43.501    5.5007
       0.82701    -27.167    21.834
       0.47881    -15.834    33.167

Random effects covariance parameters (95% CIs):
Group: Soil (3 Levels)
    Name1                Name2                Type         Estimate    Lower   
    '(Intercept)'        '(Intercept)'        'std'        2.5028      0.027711


    Upper 
    226.05

Group: Soil:Tomato (15 Levels)
    Name1                Name2                Type         Estimate    Lower 
    '(Intercept)'        '(Intercept)'        'std'        10.225      6.1497


    Upper 
    17.001

Group: Error
    Name             Estimate    Lower     Upper 
    'Res Std'        10.499      8.5389    12.908

p- значения, соответствующие последним 12 строкам в содействующем отображении фиксированных эффектов (0.82701 к 0,47881), указывают, что коэффициенты взаимодействия между помидором и типами удобрения не являются значительными. Чтобы протестировать на полное взаимодействие между помидором и удобрением, используйте метод anova после переоборудования модели с помощью контрастов 'effects'.

Доверительный интервал для стандартных отклонений условий случайных эффектов (σS2), где прерывание сгруппировано почвой, является очень большим. Этот термин не кажется значительным.

Переоборудуйте модель после удаления периода взаимодействия, который Tomato:Fertilizer и случайные эффекты называют (1 | Soil).

lme = LinearMixedModel.fit(ds,'Yield ~ Fertilizer + Tomato + (1|Soil:Tomato)')
lme = 
Linear mixed-effects model fit by ML

Model information:
    Number of observations              60
    Fixed effects coefficients           8
    Random effects coefficients         15
    Covariance parameters                2

Formula:
    Yield ~ 1 + Tomato + Fertilizer + (1 | Soil:Tomato)

Model fit statistics:
    AIC       BIC    LogLikelihood    Deviance
    511.06    532    -245.53          491.06  

Fixed effects coefficients (95% CIs):
    Name                     Estimate    SE        tStat       DF    pValue    
    '(Intercept)'             77.733     7.3293      10.606    52    1.3108e-14
    'Tomato_Grape'           -9.1667     9.6045    -0.95441    52       0.34429
    'Tomato_Heirloom'        -12.583     9.6045     -1.3102    52        0.1959
    'Tomato_Plum'             28.833     9.6045      3.0021    52     0.0041138
    'Tomato_Vine'            -14.083     9.6045     -1.4663    52       0.14858
    'Fertilizer_2'            26.333     4.5004      5.8514    52    3.3024e-07
    'Fertilizer_3'                39     4.5004      8.6659    52    1.1459e-11
    'Fertilizer_4'            47.733     4.5004      10.607    52     1.308e-14


    Lower      Upper 
     63.026    92.441
    -28.439    10.106
    -31.856    6.6895
     9.5605    48.106
    -33.356    5.1895
     17.303    35.364
     29.969    48.031
     38.703    56.764

Random effects covariance parameters (95% CIs):
Group: Soil:Tomato (15 Levels)
    Name1                Name2                Type         Estimate    Lower 
    '(Intercept)'        '(Intercept)'        'std'        10.02       6.0812


    Upper 
    16.509

Group: Error
    Name             Estimate    Lower     Upper 
    'Res Std'        12.325      10.024    15.153

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

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

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

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

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

tbl = table(InitialWeight,Program,Subject,Week,y);
tbl.Subject = nominal(tbl.Subject);
tbl.Program = nominal(tbl.Program);

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

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

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

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

lme = LinearMixedModel.fit(tbl,'y ~ InitialWeight + Program*Week + (Week|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:
    y ~ 1 + InitialWeight + Program*Week + (1 + Week | Subject)

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 
    '(Intercept)'             0.66105      0.25892      2.5531    111
    'InitialWeight'         0.0031879    0.0013814      2.3078    111
    'Program_B'               0.36079      0.13139       2.746    111
    'Program_C'             -0.033263      0.13117    -0.25358    111
    'Program_D'               0.11317      0.13132     0.86175    111
    'Week'                     0.1732     0.067454      2.5677    111
    'Program_B:Week'         0.038771     0.095394     0.40644    111
    'Program_C:Week'         0.030543     0.095394     0.32018    111
    'Program_D:Week'         0.033114     0.095394     0.34713    111


    pValue       Lower         Upper    
     0.012034       0.14798       1.1741
     0.022863    0.00045067    0.0059252
    0.0070394       0.10044      0.62113
      0.80029      -0.29319      0.22666
      0.39068      -0.14706       0.3734
     0.011567      0.039536      0.30686
      0.68521      -0.15026       0.2278
      0.74944      -0.15849      0.21957
      0.72915      -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.022863 и 0.011567 указывают на значительные эффекты подчиненных начальных весов и время в сумме потерянного веса. Потеря веса предметов, кто находится в Программе B, существенно отличается относительно потери веса предметов, кто находится в Программе A. Нижние и верхние пределы параметров ковариации для случайных эффектов не включают 0, таким образом они являются значительными. Можно также протестировать значение случайных эффектов с помощью метода compare.

Больше о

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

Советы

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

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

Можно также создать линейную модель смешанных эффектов использование fitlme. Если ваши данные находятся в матричном формате, то используйте fitlmematrix.

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

| | | |