randomEffects

Класс: LinearMixedModel

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

Описание

пример

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 имя аргумента и 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=2×1 cell
    {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.29675
     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               
    {'Soil'       }        {'Loamy'         }        {'(Intercept)'}    
    {'Soil'       }        {'Sandy'         }        {'(Intercept)'}    
    {'Soil'       }        {'Silty'         }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Loamy Cherry'  }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Loamy Grape'   }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Loamy Heirloom'}        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Loamy Plum'    }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Loamy Vine'    }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Sandy Cherry'  }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Sandy Grape'   }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Sandy Heirloom'}        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Sandy Plum'    }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Sandy Vine'    }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Silty Cherry'  }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Silty Grape'   }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Silty Heirloom'}        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Silty Plum'    }        {'(Intercept)'}    
    {'Soil:Tomato'}        {'Silty Vine'    }        {'(Intercept)'}    


    Estimate    SEPred    tStat       DF    pValue      Lower      Upper  
     1.0061     2.3374     0.43044    40     0.66918     -3.718     5.7303
    -1.5236     2.3374    -0.65181    40     0.51825    -6.2477     3.2006
    0.51744     2.3374     0.22137    40     0.82593    -4.2067     5.2416
      12.46     7.1765      1.7362    40    0.090224    -2.0443     26.964
    -2.6429     7.1765    -0.36827    40     0.71461    -17.147     11.861
     16.681     7.1765      2.3244    40    0.025269     2.1766     31.185
    -5.0172     7.1765    -0.69911    40     0.48853    -19.522     9.4872
    -4.6874     7.1765    -0.65316    40     0.51739    -19.192     9.8169
    -17.393     7.1765     -2.4235    40    0.019987    -31.897    -2.8882
    -7.3679     7.1765     -1.0267    40     0.31075    -21.872     7.1364
     -8.621     7.1765     -1.2013    40     0.23671    -23.125     5.8833
      7.669     7.1765      1.0686    40     0.29165    -6.8353     22.173
    0.28246     7.1765    0.039359    40      0.9688    -14.222     14.787
     4.9326     7.1765     0.68732    40     0.49585    -9.5718     19.437
     10.011     7.1765      1.3949    40     0.17073    -4.4935     24.515
    -8.0599     7.1765     -1.1231    40      0.2681    -22.564     6.4444
    -2.6519     7.1765    -0.36952    40     0.71369    -17.156     11.852
      4.405     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

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

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

| | | |