Класс: LinearMixedModel
Оценки случайных эффектов и соответствующая статистика
lme - Линейная модель смешанных эффектовLinearMixedModel объектЛинейная модель смешанных эффектов, заданная как LinearMixedModel объект, построенный с помощью fitlme или fitlmematrix.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Alpha' - Уровень значимостиУровень значимости, указанный как разделенная запятыми пара, состоящая из 'Alpha' и скалярное значение в диапазоне от 0 до 1. Для значения α доверительный уровень равен 100 * (1-α)%.
Например, для 99% доверительных интервалов можно указать доверительный уровень следующим образом.
Пример: 'Alpha',0.01
Типы данных: single | double
'DFMethod' - Метод вычисления приблизительных степеней свободы'residual' (по умолчанию) | 'satterthwaite' | 'none'Метод вычисления приблизительных степеней свободы для t-статистики, которая проверяет коэффициенты случайных эффектов против 0, указанной как пара, разделенная запятыми, состоящая из 'DFMethod' и одно из следующих.
'residual' | По умолчанию. Степени свободы предполагаются постоянными и равными n - p, где n - число наблюдений и p - число фиксированных эффектов. |
'satterthwaite' | Саттертвейтское приближение. |
'none' | Все степени свободы установлены на бесконечность. |
Например, можно задать аппроксимацию Саттертуэйта следующим образом.
Пример: 'DFMethod','satterthwaite'
B - Предполагаемые наилучшие линейные несмещенные предикторы случайных эффектовОцененные лучшие линейные несмещенные предикторы случайных эффектов линейной модели смешанных эффектов lme, возвращается в виде вектора столбца.
Предположим lme имеет R группирующих переменных g1, g2,..., gR, с уровнями m1, m2,..., mR соответственно. Также предположим, что q1, q2,..., qR - длины векторов случайных эффектов, которые связаны с g1, g2,..., gR соответственно. Затем, B - вектор столбца длиной q1 * m1 + q2 * m2 +... + qR * mR.
randomEffects создает B путем объединения лучших линейных несмещенных предикторов векторов случайных эффектов, соответствующих каждому уровню каждой переменной группировки, как [g1level1; g1level2; ...; g1levelm1; g2level1; g2level2; ...; g2levelm2; ...; gRlevel1; gRlevel2; ...; gRlevelmR]'.
Bnames - Названия коэффициентов случайных эффектовИмена коэффициентов случайных эффектов в B, возвращено в виде таблицы.
stats - Оценки случайных эффектов BLUP и соответствующие статистические данныеОценки случайных эффектов BLUP и связанной статистики, возвращаемые в виде массива наборов данных, который имеет одну строку для каждого из фиксированных эффектов и один столбец для каждой из следующих статистических данных.
Group | Группировка переменных, связанных со случайным эффектом |
Level | Уровень в пределах переменной группировки, соответствующей случайному эффекту |
Name | Имя коэффициента случайного эффекта |
Estimate | Лучший линейный несмещенный предиктор (BLUP) случайного эффекта |
SEPred | Стандартная ошибка оценки (BLUP минус случайный эффект) |
tStat | t-статистика для теста, что случайный эффект равен нулю |
DF | Расчетные степени свободы для t-статистики |
pValue | p-значение для t-статистики |
Lower | Нижняя граница 95% доверительного интервала для случайного эффекта |
Upper | Верхний предел 95% доверительного интервала для случайного эффекта |
Загрузите образцы данных.
load carbigПодберите линейную модель смешанных эффектов для миль на галлон (MPG) с фиксированными эффектами для ускорения и лошадиных сил и потенциально коррелированными случайными эффектами для перехвата и ускорения, сгруппированными по модельному году. Сначала сохраните данные в таблице.
tbl = table(Acceleration,Horsepower,Model_Year,MPG);
Подгоните модель.
lme = fitlme(tbl, 'MPG ~ Acceleration + Horsepower + (Acceleration|Model_Year)');Вычислите BLUP коэффициентов случайных эффектов и отобразите имена соответствующих случайных эффектов.
[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 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.29675
0.33789 0.1825 0.62558
Значение корреляции предполагает, что случайные эффекты кажутся отрицательно коррелированными. Постройте график случайных эффектов для перехвата по сравнению с ускорением, чтобы подтвердить это.
plot(B(1:2:end),B(2:2:end),'r*')
Загрузите образцы данных.
load('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)');Вычисление BLUP и связанной статистики для случайных эффектов.
[~,~,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 строк включают оценки случайных эффектов для перехвата, сгруппированные по переменной 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% доверительные интервалы для случайных эффектов с помощью аппроксимации Саттретвейта для вычисления степеней свободы.
[~,~,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
Метод Саттертвейта обычно производит меньшие значения степеней свободы (DF), что приводит к большим значениям p (pValue) и большие доверительные интервалы (Lower и Upper) для оценок случайных эффектов.
coefCI | coefTest | fitlme | fixedEffects | LinearMixedModel
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.