Класс: 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' | Приближение Satterthwaite. |
'none' | Все степени свободы установлены в бесконечность. |
Например, можно задать приближение Satterthwaite можно следующим образом.
Пример: 'DFMethod','satterthwaite'
B
— Оцененный лучше всего линейные несмещенные предикторы случайных эффектовОцененный лучше всего линейные несмещенные предикторы случайных эффектов линейной модели 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]'
.
Bnames
— Имена коэффициентов случайных эффектовИмена коэффициентов случайных эффектов в B
, возвращенный как таблица.
stats
— Оценки случайных эффектов BLUPs и связанная статистикаОценки случайных эффектов BLUPs и связанная статистика, возвращенная как массив набора данных, который ссорится для каждого из фиксированных эффектов и одного столбца для каждых из следующих статистических данных.
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)');
Вычислите 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
. Соответствие - значения 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
) для оценок случайных эффектов.
LinearMixedModel
| coefCI
| coefTest
| fitlme
| fixedEffects
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.