случайный

Класс: LinearMixedModel

Сгенерируйте случайные ответы из подходящей линейной модели смешанных эффектов

Синтаксис

ysim = random(lme)
ysim = random(lme,tblnew)
ysim = random(lme,Xnew,Znew)
ysim = random(lme,Xnew,Znew,Gnew)

Описание

пример

ysim = random(lme) возвращает вектор моделируемых ответов, ysim из подходящей линейной модели lme смешанных эффектов в зафиксированном оригинале - и точки проекта случайных эффектов, раньше соответствовал lme.

random моделирует новые случайные эффекты векторные и новые ошибки наблюдения. Так, моделируемый ответ

ysim=Xβ^+Zb^+ε,

где β^ предполагаемые коэффициенты фиксированных эффектов, b^ новые случайные эффекты, и ε является новой ошибкой наблюдения.

random также составляет эффект весов наблюдения, если вы используете кого-либо при подборе кривой модели.

пример

ysim = random(lme,tblnew) возвращает вектор моделируемых ответов ysim из подходящей линейной модели lme смешанных эффектов в значениях в новой таблице или массиве набора данных tblnew. Используйте таблицу или массив набора данных для random, если вы используете таблицу или массив набора данных для подбора кривой модели lme.

ysim = random(lme,Xnew,Znew) возвращает вектор моделируемых ответов, ysim из подходящей линейной модели lme смешанных эффектов в значениях в зафиксированном новом - и случайные эффекты разрабатывает матрицы, Xnew и Znew, соответственно. Znew может также быть массивом ячеек матриц. Используйте матричный формат для random, если вы используете матрицы проекта для подбора кривой модели lme.

пример

ysim = random(lme,Xnew,Znew,Gnew) возвращает вектор моделируемых ответов, ysim из подходящей линейной модели lme смешанных эффектов в значениях в зафиксированном новом - и случайные эффекты разрабатывает матрицы, Xnew и Znew, соответственно, и группирующую переменную Gnew.

Znew и Gnew могут также быть массивами ячеек матриц и группирующих переменных, соответственно.

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

развернуть все

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

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

Новые фиксированные эффекты разрабатывают матрицу, заданную как n-by-p матрица, где n является количеством наблюдений, и p является количеством фиксированных переменных прогноза. Каждая строка X соответствует одному наблюдению, и каждый столбец X соответствует одной переменной.

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

Новый проект случайных эффектов, заданный как n-by-q матрица или массив ячеек R, разрабатывает матрицы Z{r}, где r = 1, 2..., R. Если Znew является массивом ячеек, то каждым Z{r} является n-by-q (r) матрица, где n является количеством наблюдений, и q (r) является количеством случайных переменных прогноза.

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

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

random обрабатывает все уровни каждой группирующей переменной как новые уровни. Это чертит независимый случайный вектор эффектов для каждого уровня каждой группирующей переменной.

Типы данных: single | double | categorical | logical | char | string | cell

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

развернуть все

Моделируемые значения ответа, возвращенные как n-by-1 вектор, где n является количеством наблюдений.

Примеры

развернуть все

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

load(fullfile(matlabroot,'examples','stats','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)');

Сгенерируйте случайные значения ответа в точках первоначального проекта. Отобразите первые пять значений.

rng(123,'twister') % For reproducibility
ysim = random(lme);
ysim(1:5)
ans = 5×1

  114.8785
  134.2018
  154.2818
  169.7554
   84.6089

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

load carsmall

Соответствуйте линейной модели смешанных эффектов, с фиксированные эффекты для Weight и случайное прерывание, сгруппированное Model_Year. Во-первых, храните данные в таблице.

tbl = table(MPG,Weight,Model_Year);
lme = fitlme(tbl,'MPG ~ Weight + (1|Model_Year)');

Случайным образом сгенерируйте ответы с помощью исходных данных.

rng(123,'twister') % For reproducibility
ysim = random(lme,tbl);

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

figure()
gscatter(Weight,MPG,Model_Year)
hold on
gscatter(Weight,ysim,Model_Year,[],'o+x')
legend('70-data','76-data','82-data','70-sim','76-sim','82-sim')
hold off

Обратите внимание на то, что моделируемые случайные значения ответа в течение года 82 ниже, чем исходные данные в течение того года. Эта сила произойти из-за более низкого моделируемого случайного эффекта в течение года 82, чем предполагаемый случайный эффект в исходных данных.

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

load(fullfile(matlabroot,'examples','stats','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)');

Создайте новый массив набора данных с расчетными значениями. Новый массив набора данных должен иметь те же переменные как исходный массив набора данных, который вы используете для подбора кривой модели lme.

dsnew = dataset();
dsnew.Soil = nominal({'Sandy';'Silty';'Silty'});
dsnew.Tomato = nominal({'Cherry';'Vine';'Plum'});
dsnew.Fertilizer = nominal([2;2;4]);

Сгенерируйте случайные ответы в новых точках.

rng(123,'twister') % For reproducibility
ysim = random(lme,dsnew)
ysim = 3×1

   99.6006
  101.9911
  161.4026

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

load carbig

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

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

X = [ones(406,1) Acceleration Horsepower];
Z = [ones(406,1) Acceleration];
Model_Year = nominal(Model_Year);
G = Model_Year;

Теперь, соответствуйте модели с помощью fitlmematrix с заданными матрицами проекта и группирующими переменными.

lme = fitlmematrix(X,MPG,Z,G,'FixedEffectPredictors',....
{'Intercept','Acceleration','Horsepower'},'RandomEffectPredictors',...
{{'Intercept','Acceleration'}},'RandomEffectGroups',{'Model_Year'});

Создайте матрицы проекта, которые содержат данные, в которых можно предсказать значения ответа. Xnew должен иметь три столбца как в X. Первый столбец должен быть столбцом 1 с. И значения в последних двух столбцах должны соответствовать Acceleration и Horsepower, соответственно. Первый столбец Znew должен быть столбцом 1 с, и второй столбец должен содержать те же значения Acceleration как в Xnew. Исходная группирующая переменная в G является модельным годом. Так, Gnew должен содержать значения в течение модельного года. Обратите внимание на то, что Gnew должен содержать номинальную стоимость.

Xnew = [1,13.5,185; 1,17,205; 1,21.2,193];
Znew = [1,13.5; 1,17; 1,21.2];
Gnew = nominal([73 77 82]);

Сгенерируйте случайные ответы для данных в новых матрицах проекта.

rng(123,'twister') % For reproducibility
ysim = random(lme,Xnew,Znew,Gnew)
ysim = 3×1

   15.7416
   10.6085
    6.8796

Теперь, повторите то же самое для линейной модели смешанных эффектов с некоррелироваными условиями случайных эффектов для прерывания и ускорения. Во-первых, измените исходный случайный проект эффектов и случайные группирующие переменные эффектов. Затем соответствуйте модели.

Z = {ones(406,1),Acceleration};
G = {Model_Year,Model_Year};

lme = fitlmematrix(X,MPG,Z,G,'FixedEffectPredictors',....
{'Intercept','Acceleration','Horsepower'},'RandomEffectPredictors',...
{{'Intercept'},{'Acceleration'}},'RandomEffectGroups',{'Model_Year','Model_Year'});

Теперь, воссоздайте новый случайный проект эффектов, Znew, и проект группирующей переменной, Gnew, с помощью то, чтобы предсказать значения ответа.

Znew = {[1;1;1],[13.5;17;21.2]};
MY = nominal([73 77 82]);
Gnew = {MY,MY};

Сгенерируйте случайные ответы с помощью новых матриц проекта.

rng(123,'twister') % For reproducibility
ysim = random(lme,Xnew,Znew,Gnew)
ysim = 3×1

   16.8280
   10.4375
    4.1027

Смотрите также

| | |