randomEffects

Класс: LinearMixedModel

Оценки случайных эффектов и связанной статистики

Синтаксис

B = randomEffects(lme)
[B,Bnames] = randomEffects(lme)
[B,Bnames,stats] = randomEffects(lme)
[B,Bnames,stats] = randomEffects(lme,Name,Value)

Описание

пример

B = randomEffects(lme) возвращает оценки лучших линейных несмещенных предикторов (BLUPs) случайных эффектов в линейной модели lme смешанных эффектов.

пример

[B,Bnames] = randomEffects(lme) также возвращает имена коэффициентов в Bnames. Каждое имя соответствует коэффициенту в B.

пример

[B,Bnames,stats] = randomEffects(lme) также возвращает предполагаемый BLUPs случайных эффектов в линейной модели lme смешанных эффектов и связанной статистике.

пример

[B,Bnames,stats] = randomEffects(lme,Name,Value) также возвращает BLUPs случайных эффектов в линейной модели lme смешанных эффектов и связанной статистике с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

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

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

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

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

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

Уровень значения, заданный как пара, разделенная запятой, состоящая из 'Alpha' и скалярного значения в области значений от 0 до 1. Для значения α, доверительный уровень равняется 100* (1–α) %.

Например, для 99% доверительных интервалов, можно задать доверительный уровень можно следующим образом.

Пример: 'Alpha',0.01

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

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

'residual'Значение по умолчанию. Степени свободы приняты, чтобы быть постоянными и равными np, где n является количеством наблюдений, и p является количеством фиксированных эффектов.
'satterthwaite'Приближение Satterthwaite.
'none'Все степени свободы установлены в бесконечность.

Например, можно задать приближение Satterthwaite можно следующим образом.

Пример: 'DFMethod','satterthwaite'

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

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

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

Предположим, что lme имеет группирующие переменные R g1, g2..., gR, с уровнями m 1, m 2..., m R, соответственно. Также предположите q 1, q 2..., q R длины векторов случайных эффектов, которые сопоставлены с g1, g2..., gR, соответственно. Затем B является вектор-столбцом длины q 1*m1 + q 2*m2 +... + q R *mR.

randomEffects создает B путем конкатенации лучших линейных несмещенных предикторов векторов случайных эффектов, соответствующих каждому уровню каждой группирующей переменной как [g1level1; g1level2; ...; g1levelm1; g2level1; g2level2; ...; g2levelm2; ...; gRlevel1; gRlevel2; ...; gRlevelmR]'.

Имена коэффициентов случайных эффектов в B, возвращенном как таблица.

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

GroupГруппирующая переменная сопоставлена со случайным эффектом
LevelУровень в группирующей переменной, соответствующей случайному эффекту
NameИмя коэффициента случайного эффекта
EstimateЛучше всего линейный несмещенный предиктор (BLUP) случайного эффекта
SEPredСтандартная погрешность оценки (BLUP минус случайный эффект)
tStatt- для теста, что случайный эффект является нулем
DFПредполагаемые степени свободы для t - статистическая величина
pValuep - значение для t - статистическая величина
LowerНижний предел 95%-го доверительного интервала для случайного эффекта
UpperВерхний предел 95%-го доверительного интервала для случайного эффекта

Примеры

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

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

load carbig

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

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

Соответствуйте модели.

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

Вычислите BLUPs коэффициентов случайных эффектов и отобразите имена соответствующих случайных эффектов.

[B,Bnames] = randomEffects(lme)
B = 26×1

    3.1270
   -0.2426
   -1.6532
   -0.0086
    1.2075
   -0.2179
    4.4107
   -0.4887
   -1.3103
   -0.0208
      ⋮

Bnames=26×3 table
       Group        Level         Name     
    ____________    _____    ______________

    'Model_Year'    '70'     '(Intercept)' 
    'Model_Year'    '70'     'Acceleration'
    'Model_Year'    '71'     '(Intercept)' 
    'Model_Year'    '71'     'Acceleration'
    'Model_Year'    '72'     '(Intercept)' 
    'Model_Year'    '72'     'Acceleration'
    'Model_Year'    '73'     '(Intercept)' 
    'Model_Year'    '73'     'Acceleration'
    'Model_Year'    '74'     '(Intercept)' 
    'Model_Year'    '74'     'Acceleration'
    'Model_Year'    '75'     '(Intercept)' 
    'Model_Year'    '75'     'Acceleration'
    'Model_Year'    '76'     '(Intercept)' 
    'Model_Year'    '76'     'Acceleration'
    'Model_Year'    '77'     '(Intercept)' 
    'Model_Year'    '77'     'Acceleration'
      ⋮

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

Вычислите параметры ковариации случайных эффектов.

[~,~,stats] = covarianceParameters(lme)
stats = 2x1 cell array
    {3x7 classreg.regr.lmeutils.titleddataset}
    {1x5 classreg.regr.lmeutils.titleddataset}

stats{1}
ans = 
    Covariance Type: FullCholesky

    Group         Name1                 Name2                 Type      
    Model_Year    '(Intercept)'         '(Intercept)'         'std'     
    Model_Year    'Acceleration'        '(Intercept)'         'corr'    
    Model_Year    'Acceleration'        'Acceleration'        'std'     


    Estimate    Lower       Upper   
      3.3475      1.2862      8.7119
    -0.87971    -0.98501    -0.29676
     0.33789      0.1825     0.62558

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

plot(B(1:2:end),B(2:2:end),'r*')

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

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

lme = fitlme(ds,'Yield ~ Fertilizer * Tomato + (1|Soil) + (1|Soil:Tomato)');

Вычислите BLUPs и связанную статистику для случайных эффектов.

[~,~,stats] = randomEffects(lme)
stats = 
    Random effect coefficients: DFMethod = 'Residual', Alpha = 0.05

    Group                Level                   Name                 Estimate
    'Soil'               'Loamy'                 '(Intercept)'         1.0061 
    'Soil'               'Sandy'                 '(Intercept)'        -1.5236 
    'Soil'               'Silty'                 '(Intercept)'        0.51744 
    'Soil:Tomato'        'Loamy Cherry'          '(Intercept)'          12.46 
    'Soil:Tomato'        'Loamy Grape'           '(Intercept)'        -2.6429 
    'Soil:Tomato'        'Loamy Heirloom'        '(Intercept)'         16.681 
    'Soil:Tomato'        'Loamy Plum'            '(Intercept)'        -5.0172 
    'Soil:Tomato'        'Loamy Vine'            '(Intercept)'        -4.6874 
    'Soil:Tomato'        'Sandy Cherry'          '(Intercept)'        -17.393 
    'Soil:Tomato'        'Sandy Grape'           '(Intercept)'        -7.3679 
    'Soil:Tomato'        'Sandy Heirloom'        '(Intercept)'         -8.621 
    'Soil:Tomato'        'Sandy Plum'            '(Intercept)'          7.669 
    'Soil:Tomato'        'Sandy Vine'            '(Intercept)'        0.28246 
    'Soil:Tomato'        'Silty Cherry'          '(Intercept)'         4.9326 
    'Soil:Tomato'        'Silty Grape'           '(Intercept)'         10.011 
    'Soil:Tomato'        'Silty Heirloom'        '(Intercept)'        -8.0599 
    'Soil:Tomato'        'Silty Plum'            '(Intercept)'        -2.6519 
    'Soil:Tomato'        'Silty Vine'            '(Intercept)'          4.405 


    SEPred    tStat       DF    pValue      Lower      Upper  
    2.3374     0.43044    40     0.66918     -3.718     5.7303
    2.3374    -0.65181    40     0.51825    -6.2477     3.2006
    2.3374     0.22137    40     0.82593    -4.2067     5.2416
    7.1765      1.7362    40    0.090224    -2.0443     26.964
    7.1765    -0.36827    40     0.71461    -17.147     11.861
    7.1765      2.3244    40    0.025269     2.1766     31.185
    7.1765    -0.69911    40     0.48853    -19.522     9.4872
    7.1765    -0.65316    40     0.51739    -19.192     9.8169
    7.1765     -2.4235    40    0.019987    -31.897    -2.8882
    7.1765     -1.0267    40     0.31075    -21.872     7.1364
    7.1765     -1.2013    40     0.23671    -23.125     5.8833
    7.1765      1.0686    40     0.29165    -6.8353     22.173
    7.1765    0.039359    40      0.9688    -14.222     14.787
    7.1765     0.68732    40     0.49585    -9.5718     19.437
    7.1765      1.3949    40     0.17073    -4.4935     24.515
    7.1765     -1.1231    40      0.2681    -22.564     6.4444
    7.1765    -0.36952    40     0.71369    -17.156     11.852
    7.1765      0.6138    40     0.54282    -10.099     18.909

Первые три строки содержат оценки случайных эффектов и статистику для этих трех уровней, Loamy, Sandy и Silty группирующей переменной Soil. Соответствие p- значения 0.66918, 0.51825, и 0.82593 указывают, что эти случайные эффекты не существенно отличаются от 0. Следующие 15 строк включают BLUPS оценок случайных эффектов для прерывания, сгруппированного переменной Tomato, вложенной в Почве, т.е. взаимодействии Tomato и Soil.

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

load shift

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

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

Вычислите 99% доверительных интервалов для случайных эффектов с помощью опции невязок, чтобы вычислить степени свободы. Это - метод по умолчанию.

[~,~,stats] = randomEffects(lme,'Alpha',0.01)
stats = 
    Random effect coefficients: DFMethod = 'Residual', Alpha = 0.01

    Group             Level      Name                 Estimate    SEPred 
    'Operator'        '1'        '(Intercept)'        0.57753     0.90378
    'Operator'        '2'        '(Intercept)'         1.1757     0.90378
    'Operator'        '3'        '(Intercept)'        -2.1715     0.90378
    'Operator'        '4'        '(Intercept)'         2.3655     0.90378
    'Operator'        '5'        '(Intercept)'        -1.9472     0.90378


    tStat      DF    pValue      Lower       Upper  
    0.63902    12     0.53482     -2.1831     3.3382
     1.3009    12     0.21772     -1.5849     3.9364
    -2.4027    12    0.033352     -4.9322    0.58909
     2.6174    12    0.022494    -0.39511     5.1261
    -2.1546    12    0.052216     -4.7079    0.81337

Вычислите 99% доверительных интервалов для случайных эффектов с помощью приближения Satterthwaite, чтобы вычислить степени свободы.

[~,~,stats] = randomEffects(lme,'DFMethod','satterthwaite','Alpha',0.01)
stats = 
    Random effect coefficients: DFMethod = 'Satterthwaite', Alpha = 0.01

    Group             Level      Name                 Estimate    SEPred 
    'Operator'        '1'        '(Intercept)'        0.57753     0.90378
    'Operator'        '2'        '(Intercept)'         1.1757     0.90378
    'Operator'        '3'        '(Intercept)'        -2.1715     0.90378
    'Operator'        '4'        '(Intercept)'         2.3655     0.90378
    'Operator'        '5'        '(Intercept)'        -1.9472     0.90378


    tStat      DF        pValue      Lower       Upper 
    0.63902    6.4253      0.5449      -2.684     3.839
     1.3009    6.4253     0.23799     -2.0858    4.4372
    -2.4027    6.4253    0.050386      -5.433      1.09
     2.6174    6.4253    0.037302    -0.89598     5.627
    -2.1546    6.4253    0.071626     -5.2087    1.3142

Метод Satterhwaite обычно производит меньшие значения для степеней свободы (DF), который приводит к большим p-значениям (pValue) и большим доверительным интервалам (Lower и Upper) для оценок случайных эффектов.

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

| | | |