Чтобы подогнать модель с линейными смешанными эффектами, необходимо сохранить данные в таблице или массиве наборов данных. В таблице или массиве наборов данных необходимо иметь столбец для каждой переменной, включая переменную ответа. Более конкретно, скажем, таблица или массив наборов данных tbl, должен содержать следующее:
Переменная ответа y
Прогнозирующие переменные Xjкоторые могут быть непрерывными или группируемыми переменными
Группирование переменных g1, g2, ..., gR,
где переменные группирования в Xj и gr может быть категориальным, логическим, символьным массивом, строковым массивом или массивом ячеек символьных векторов, r = 1, 2,..., R.
Необходимо упорядочить данные таким образом, чтобы каждая строка представляла собой наблюдение. Каждая строка должна содержать значение переменных и уровни группирования переменных, соответствующие этому наблюдению. Например, если у вас есть данные из эксперимента с четырьмя вариантами лечения, на пяти различных типах людей, выбранных случайным образом из популяции людей (блоков), таблица или массив наборов данных должны выглядеть так.
| Блок | Лечение | Ответ |
|---|---|---|
| 1 | 1 | y11 |
| 1 | 2 | y12 |
| 1 | 3 | y13 |
| 1 | 4 | y14 |
| ... | ... | ... |
| 5 | 1 | y51 |
| 5 | 2 | y52 |
| 5 | 3 | y53 |
| 5 | 4 | y54 |
Теперь рассмотрим сплит-сюжетный эксперимент, где изучается влияние четырех различных видов удобрений на урожайность томатных растений. Почва, где высаживаются растения томатов, разделена на три блока по типу почвы: песчаный, илистый и суглинистый. Каждый блок разделён на пять участков, где к этим участкам случайным образом отнесены пять типов томатных растений, (вишня, реликвия, виноград, лоза и слива). Затем растения томатов на участках делятся на субплоты, где каждый субплот обрабатывается одним из четырёх удобрений. Данные этого эксперимента выглядят следующим образом:
| Почва | Помидор | Удобрение | Урожай |
|---|---|---|---|
| 'Песчаный' | 'Слива' | 1 | 104 |
| 'Песчаный' | 'Слива' | 2 | 136 |
| 'Песчаный' | 'Слива' | 3 | 158 |
| 'Песчаный' | 'Слива' | 4 | 174 |
| 'Песчаный' | 'Вишня' | 1 | 57 |
| 'Песчаный' | 'Вишня' | 2 | 86 |
| ... | ... | ... | ... |
| 'Песчаный' | 'Виноградная лоза' | 3 | 99 |
| 'Песчаный' | 'Виноградная лоза' | 4 | 117 |
| 'Илистый' | 'Слива' | 1 | 120 |
| 'Илистый' | 'Слива' | 2 | 115 |
| ... | ... | ... | ... |
| 'Глинистый' | 'Виноградная лоза' | 3 | 111 |
| 'Глинистый' | 'Виноградная лоза' | 4 | 105 |
Необходимо указать модель, которую требуется вписать, с помощью formula входной аргумент для fitlme.
В общем случае формула для спецификации модели - это вектор символов или строковый скаляр вида 'y ~ terms'. Для линейных моделей со смешанными эффектами эта формула имеет вид 'y ~ fixed + (random1|grouping1) + ... + (randomR|groupingR)', где fixed содержит термины с фиксированными эффектами и random1, ..., randomR содержат термины случайных эффектов. Например, в предыдущем эксперименте с удобрениями рассмотрим следующую модель смешанных эффектов:
xpimjk,
где i = 1, 2,..., 60, индекс m соответствует типам удобрений, j соответствует типам томатов, а k = 1, 2, 3 соответствует блокам (грунту). Sk представляет k-й тип почвы, а I [F] im - фиктивная переменная, представляющая уровень m удобрения. Аналогично, I [T] ij является фиктивной переменной, представляющей уровень j типа томата.
Эту модель можно подогнать по формуле 'Yield ~ 1 + Fertilizer + Tomato + (1|Soil)+(1|Soil:Tomato)'.
Дополнительные сведения о том, как указать модель с помощью формулы, см. в разделе Взаимосвязь между формулами и матрицами конструкции.
Если невозможно описать модель с помощью формулы, можно создать матрицы конструкции для определения фиксированных и случайных эффектов и подогнать модель с помощью fitlmematrix(X,y,Z,G). Необходимо создать матрицы проектирования следующим образом.
Матрицы проектирования с фиксированными эффектами и случайными эффектами X и Z:
Введите столбец 1 для перехвата с помощью ones(n,1), где n - общее число наблюдений.
Если X1 является непрерывной переменной, затем введите X1 как и в отдельном столбце.
Если X1 является категориальной переменной с m уровнями, то должны быть m-1 фиктивные переменные для m-1 уровней X1 в X.
Например, рассмотрим эксперимент, в котором необходимо изучить влияние качества сырья от четырех различных поставщиков на производительность производственной линии. Если в качестве терминов с фиксированными эффектами используется линейная модель с смешанными эффектами, а в качестве терминов с фиксированными эффектами используются элементы с случайными эффектами, и используется кодирование ссылочных контрастов, то матрицы конструкции с фиксированными и случайными эффектами необходимо построить следующим образом.
D = dummyvar(provider); % Create dummy variables
X = [ones(n,1) D(:,2) D(:,3) D(:,4)];
Z = [ones(n,1)];Поскольку ссылочное контрастное кодирование использует в качестве ссылки первый поставщик, а модель имеет перехват, необходимо использовать фиктивные переменные только для трех последних поставщиков.
При наличии члена взаимодействия переменных предиктора X1 и X2, то вы должны ввести столбец, который вы формируете элементным произведением векторов X1 и X2.
Например, если вы хотите подогнать модель, где есть перехват, коэффициент непрерывного лечения, фактор непрерывного времени и их взаимодействие как фиксированных эффектов в продольном исследовании, а время является термином случайных эффектов, то ваши матрицы дизайна фиксированных и случайных эффектов должны выглядеть как
X = [ones(n,1),treatment,time,treatment.*time]; y = response; Z = [time];
Группирование переменных G:
Существует один столбец для каждой переменной группирования и столбец элементарного произведения переменных группирования в случае вложенности.
Например, если требуется сгруппировать графики (plot) в пределах блоков (block), то вы должны добавить столбец элементарного произведения plot около block. Более конкретно, если вы хотите подогнать модель, где есть перехват и коэффициент непрерывной обработки в качестве фиксированных эффектов в эксперименте с разделенными блоками, и перехват и обработка сгруппированы по графикам, вложенным в блоки, то матрицы проектирования должны выглядеть так.
X = [ones(n,1),treatment]; y = response; Z = [ones(n,1),treatment]; G = [block.*plot];
Предположим, что в более раннем примере качества сырья сырье поступает в массы, и массы вложены в поставщиков. Если требуется подогнать линейную модель со смешанными эффектами, где перехват группируется по массивам внутри провайдеров, матрицы проектирования должны выглядеть следующим образом.
D = dummyvar(provider); X = [ones(n,1) D(:,2) D(:,3) D(:,4)]; y = response; Z = ones(n,1); G = [provider.*bulks];
В более раннем примере продольного исследования, если вы хотите добавить случайные эффекты для перехвата и времени, сгруппированные по субъектам, которые участвовали в исследовании, то матрицы дизайна должны выглядеть как
X = [ones(n,1),treatment,time, treatment.*time]; y = response; Z = [ones(n,1),time]; G = subject;
fitlme(tbl,formula) и fitlmematrix(X,y,Z,G) эквивалентны по функциональности, так что
y - вектор отклика n-by-1.
X представляет собой матрицу проектирования с фиксированными эффектами n-by-p. fitlme создает это из выражения fixed в formula.
Z - R-by-1 массив ячеек с Z{r} являясь конструктивной матрицей n-by-q (r) случайных эффектов, построенной из rth-выражения вrandom в formula, r = 1, 2,..., R.
G - R-by-1 массив ячеек с G{r} являясь переменной группирования n-by-1, gr, в formula с уровнями или группами M (r).
Например, если tbl является таблицей или массивом наборов данных, содержащим переменную ответа y, непрерывные переменные X1 и X2и переменная группирования g, то для подгонки линейной модели смешанных эффектов, которая соответствует формульному выражению 'y ~ X1+ X2+ (X1*X2|g)' использование fitlmematrix(X,y,Z,G) входные аргументы должны соответствовать:
y = tbl.y X = [ones(n,1), tbl.X1, tbl.X2] Z = [ones(n,1), tbl.X1, tbl.X2, tbl.X1.*tbl.X2] G = tbl.g
fitlme | fitlmematrix | LinearMixedModel