designMatrix

Класс: LinearMixedModel

Матрицы разработки фиксированных и случайных эффектов

Описание

пример

D = designMatrix(lme) или D = designMatrix(lme,'Fixed') возвращает матрицу проекта с фиксированными эффектами для линейной модели с смешанными эффектами lme.

пример

D = designMatrix(lme,'Random') возвращает матрицу разработки случайных эффектов для линейной модели смешанных эффектов lme.

пример

Dsub = designMatrix(lme,'Random',gnumbers) возвращает подмножество матрицы разработки случайных эффектов для линейной модели смешанных эффектов lmeсоответствует сгруппированным переменным, обозначенной целыми числами в gnumbers.

пример

[Dsub,gnames] = designMatrix(lme,'Random',gnumbers) также возвращает имена сгруппированных переменных, соответствующие целым числам в gnumbers.

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

расширить все

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

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

Например, можно задать сгруппированные переменные g1, g3 и g r следующим образом.

Пример: [1,3,r]

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

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

расширить все

Матрица проектирования линейной модели смешанных эффектов lme возвращено как одно из следующих:

  • Матрица дизайна с фиксированными эффектами - n -by - p матрица, состоящая из проекта lme с фиксированными эффектами, где n - количество наблюдений, а p - количество членов с фиксированными эффектами. Порядок терминов фиксированных эффектов в D соответствует порядку терминов в CoefficientNames свойство LinearMixedModel lme объекта.

  • Матрица дизайна случайных эффектов - n -by - k матрица, состоящая из матрицы дизайна случайных эффектов lme. Здесь k равно length(B), где B вектор коэффициентов случайных эффектов линейной модели смешанных эффектов lme.

    Если lme имеет R сгруппированные переменные g1, g2..., g R, с уровнями <reservedrangesplaceholder9> 1, <reservedrangesplaceholder8> 2..., <reservedrangesplaceholder7> <reservedrangesplaceholder6>, соответственно, и если <reservedrangesplaceholder5> 1, <reservedrangesplaceholder4> 2..., <reservedrangesplaceholder3> <reservedrangesplaceholder2> длины векторов случайных эффектов, которые связаны с g1, g2..., g R, соответственно, тогда B вектор - столбец длины <reservedrangesplaceholder7> 1* <reservedrangesplaceholder6> 1 + <reservedrangesplaceholder5> 2* <reservedrangesplaceholder4> 2 +... + <reservedrangesplaceholder3> <reservedrangesplaceholder2> * <reservedrangesplaceholder1> <reservedrangesplaceholder0>.

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

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

Подматрица проекта случайных эффектов матрицы соответствующие сгруппированные переменные, обозначенной целыми числами в gnumbers, возвращенный как n -by - k матрица, где k - длина вектора-столбца Bsub.

Bsub содержит конкатенированные лучшие линейные объективные предикторы (BLUP) векторов случайных эффектов, соответствующие каждому уровню сгруппированных переменных, заданным в gnumbers.

Если, например, gnumbers является [1,3,r], это соответствует сгруппированным переменным g1, g3 и g r. Затем, Bsub содержит конкатенированные BLUP векторов случайных эффектов, соответствующих каждому уровню сгруппированных переменных g1, g3 и g r, таких как

[g1level1; g1level2; ...; g1levelm1; g3level1; g3level2; ...; g3levelm3; grlevel1; grlevel2; ...; grlevelmr]'.

Таким образом, Dsub*Bsub представляет собой вклад всех случайных эффектов, соответствующих группирующим переменным g1, g3 и g r в ответ lme.

Если gnumbers пуст, тогда Dsub - полная матрица проекта случайных эффектов.

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

Имена сгруппированных переменных, соответствующих целым числам в gnumbers если тип проекта 'Random', возвращенный как k -by-1 массив ячеек. Если тип проекта 'Fixed', затем gnames является пустой матрицей [].

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

Примеры

расширить все

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

load('shift.mat');

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

Shift и Operator являются номинальными переменными.

shift.Shift = nominal(shift.Shift);
shift.Operator = nominal(shift.Operator);

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

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

Отобразите матрицу проекта с фиксированными эффектами.

designMatrix(lme)
ans = 15×3

     1     1     0
     1     0     0
     1     0     1
     1     1     0
     1     0     0
     1     0     1
     1     1     0
     1     0     0
     1     0     1
     1     1     0
      ⋮

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

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

designMatrix(lme,'random')
ans = 
   (1,1)        1
   (2,1)        1
   (3,1)        1
   (4,2)        1
   (5,2)        1
   (6,2)        1
   (7,3)        1
   (8,3)        1
   (9,3)        1
  (10,4)        1
  (11,4)        1
  (12,4)        1
  (13,5)        1
  (14,5)        1
  (15,5)        1

Первый номер, i, в (i|j|) индексы соответствуют номеру наблюдения, and'j| соответствуют уровню сгруппированной переменной, Operator, т.е. номер оператора.

Показать полное отображение матрицы проекта случайных эффектов.

full(designMatrix(lme,'random'))
ans = 15×5

     1     0     0     0     0
     1     0     0     0     0
     1     0     0     0     0
     0     1     0     0     0
     0     1     0     0     0
     0     1     0     0     0
     0     0     1     0     0
     0     0     1     0     0
     0     0     1     0     0
     0     0     0     1     0
      ⋮

Каждый столбец соответствует уровню сгруппированной переменной, Operator.

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

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)');

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

D = full(designMatrix(lme,'random'));

Первые три столбца матричных D содержат переменные индикатора fitlme создает для трех уровней (Loamy, Silty, Sandy, соответственно) первой сгруппированной переменной, Soil. Следующие 15 столбцов содержат переменные индикатора, созданные для второй сгруппированной переменной, Tomato вложенный в Soil. Это в основном элементарные продукты фиктивных переменных, представляющих уровни Soil (Loamy, Silty, и Sandy, соответственно) и уровни Tomato (Cherry, Grape, Heirloom, Plum, Vine, соответственно).

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

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)');

Вычислите расчетную матрицу случайных эффектов для второй сгруппированной переменной и отобразите первые 12 строк.

[Dsub,gname]  = designMatrix(lme,'random',2);
full(Dsub(1:12,:))
ans = 12×15

     0     0     0     0     0     0     0     0     1     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     1     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     1     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     1     0     0     0     0     0     0
     0     0     0     0     0     1     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     1     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     1     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     1     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     1     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     1     0     0     0     0     0     0     0
      ⋮

Dsub содержит фиктивные переменные, созданные для второй сгруппированной переменной, то есть томата, вложенного под почву. Это элементарные продукты фиктивных переменных, представляющих уровни Soil (Loamy, Silty, Sandy, соответственно) и уровни Tomato (Cherry, Grape, Heirloom, Plum, Vine, соответственно).

Отображение имени сгруппированной переменной.

gname
gname = 1x1 cell array
    {'Soil:Tomato'}