Подготовка данных для линейных моделей смешанных эффектов

Таблицы и массивы наборов данных

Чтобы соответствовать модели линейно-смешанных эффектов, вы должны хранить свои данные в таблице или массиве набора данных. В таблице или массиве набора данных необходимо иметь столбец для каждой переменной, включая переменную отклика. Более конкретно, таблица или массив набора данных, скажем tbl, должны содержать следующее:

  • Переменная отклика y

  • Прогнозирующие переменные Xjкоторые могут быть непрерывными или сгруппированными переменными

  • Сгруппированные переменные g1, g2..., gR,

где сгруппированные переменные в Xj и gr может быть категориальным, логическим, массивом символов, массивом строк или массивом ячеек из векторов символов, r = 1, 2,..., R.

Вы должны организовать свои данные так, чтобы каждая строка представляла наблюдение. И каждая строка должна содержать значение переменных и уровни сгруппированных переменных, соответствующих этому наблюдению. Например, если у вас есть данные эксперимента с четырьмя опциями лечения, на пяти разных типах индивидуумов, выбранных случайным образом из населения индивидуумов (блоков), таблица или массив набора данных должны выглядеть так.

БлокЛечениеОтвет
11y11
12y12
13y13
14y14
.........
51y51
52y52
53y53
54y54

Теперь рассмотрим сплит-сюжетный эксперимент, где изучается эффект четырех различных видов удобрений на выражение томатных растений. Почва, где высажены томатные растения, разделена на три блока на основе типа почвы: песчаную, илистую и суглинистую. Каждый блок разделен на пять графиков, где пять типов помидоров, (вишня, семейная реликвия, виноград, виноградная лоза и слива) случайным образом назначены на эти графики. Затем томатные растения на графиках делятся на подграфики, где каждый подграфик обрабатывается одним из четырёх удобрений. Данные этого эксперимента выглядят следующим образом:

ПочваПомидорУдобрениеВыражение
'Песчаный''Слива'1104
'Песчаный''Слива'2136
'Песчаный''Слива'3158
'Песчаный''Слива'4174
'Песчаный''Вишня'157
'Песчаный''Вишня'286
............
'Песчаный''Виноградная лоза'399
'Песчаный''Виноградная лоза'4117
'Илистый''Слива'1120
'Илистый''Слива'2115
............
'Глинистый''Виноградная лоза'3111
'Глинистый''Виноградная лоза'4105

Вы должны задать модель, которую вы хотите подгонять, используя formula входной параметр в fitlme.

В целом формула для спецификации модели является вектором символов или строковым скаляром вида 'y ~ terms'. Для линейных моделей смешанных эффектов эта формула имеет вид 'y ~ fixed + (random1|grouping1) + ... + (randomR|groupingR)', где fixed содержит термины и random1, ..., randomR с фиксированными эффектами содержат условия случайных эффектов. Для примера, для предыдущего эксперимента с удобрениями, рассмотрите следующую модель смешанных эффектов

yimjk=β0+m=24β1mI[F]im+j=25β2jI[T]ij+b0kSk+b0jk(S*T)jk+εimjk,

где 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, 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

См. также

| |

Похожие темы