exponenta event banner

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 и gr следующим образом.

Пример: [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,..., gR, с уровнями m1, m2,..., mR соответственно, и если q1, q2,..., qR - длины векторов случайных эффектов, которые связаны с g1, g2,..., gR соответственно, то B - вектор столбца длиной q1 * m1 + q2 * m2 +... + qR * mR.

    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 и gr. Затем, Bsub содержит конкатенированные BLUP векторов случайных эффектов, соответствующих каждому уровню группируемых переменных g1, g3 и gr, таких как

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

Таким образом, Dsub*Bsub представляет вклад всех случайных эффектов, соответствующих группирующим переменным g1, g3 и gr, в ответ 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
      ⋮

Столбец 1s представляет постоянный член в модели. 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 |) индексы соответствуют номеру наблюдения, а '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'}