Чтобы соответствовать модели линейно-смешанных эффектов, вы должны хранить свои данные в таблице или массиве набора данных. В таблице или массиве набора данных необходимо иметь столбец для каждой переменной, включая переменную отклика. Более конкретно, таблица или массив набора данных, скажем 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
с фиксированными эффектами содержат условия случайных эффектов. Для примера, для предыдущего эксперимента с удобрениями, рассмотрите следующую модель смешанных эффектов
где i = 1, 2,..., 60, индексная m соответствует типам удобрений, j соответствует типам томатов, а k = 1, 2, 3 соответствует блокам (почве). S k представляет 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 fixed-effects. fitlme
создает это из выражения fixed
в formula
.
Z
- массив ячеек R -by-1 с Z{r}
будучи n матрицей проекта -by q (r) случайных эффектов, созданной из r-го выражения в random
в formula
, r = 1, 2..., R.
G
- массив ячеек R -by-1 с G{r}
будучи n сгруппированной переменной -by-1, g
r, в 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