random

Класс: GeneralizedLinearMixedModel

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

Описание

пример

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

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

ysim = random(___,Name,Value) возвращает симулированные отклики с помощью дополнительных опций, заданных одним или несколькими Name,Value аргументы в виде пар, с использованием любого из предыдущих синтаксисов. Для примера можно задать веса наблюдений, биномиальные размеры или смещения для модели.

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

расширить все

Обобщенная модель линейных смешанных эффектов, заданная как GeneralizedLinearMixedModel объект. Для свойств и методов этого объекта смотрите GeneralizedLinearMixedModel.

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Количество испытаний для биномиального распределения, заданное как разделенная разделенными запятой парами, состоящая из 'BinomialSize' и вектор m -by-1 положительных целочисленных значений, где m - количество строк в tblnew. The 'BinomialSize' пара "имя-значение" применяется только к биномиальному распределению. Значение задает количество биномиальных испытаний при генерации значений случайного отклика.

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

Смещение модели, заданное как вектор скалярных значений длины m, где m - количество строк в tblnew. Смещение используется в качестве дополнительного предиктора и имеет значение коэффициента, фиксированное на 1.

Веса наблюдений, заданные как разделенная разделенными запятой парами, состоящая из 'Weights' и вектор m -by-1 неотрицательных скалярных значений, где m - количество строк в tblnew. Если распределение отклика биномиальное или Пуассон, то 'Weights' должен быть вектором положительных целых чисел.

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

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

расширить все

Симулированные отклики, возвращенные как вектор m -by-1, где m - количество строк в tblnew. random создает ysim вначале генерируют вектор случайных эффектов на основе его установленного предшествующего распределения. random затем генерирует ysim от его установленного условного распределения, учитывая случайные эффекты. random учитывает эффект весов наблюдений, заданный при подборе модели используя fitglme, если таковые имеются.

Примеры

расширить все

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

load mfr

Эти моделируемые данные получены от производственной компании, которая управляет 50 заводами по всему миру, причем каждый завод выполняет пакетный процесс для создания готового продукта. Компания хочет уменьшить количество дефектов в каждой партии, поэтому разработала новый производственный процесс. Чтобы проверить эффективность нового процесса, компания выбрала 20 своих фабрик наугад для участия в эксперименте: Десять фабрик реализовали новый процесс, а другие десять продолжали запускать старый процесс. На каждом из 20 заводов компания запустила пять партий (в общей сложности 100 партий) и записала следующие данные:

  • Флаг, указывающий, использовал ли пакет новый процесс (newprocess)

  • Время вычислений для каждой партии, в часах (time)

  • Температура партии, в степенях Цельсия (temp)

  • Категориальная переменная, указывающая на поставщика (A, B, или C) химического вещества, используемого в партии (supplier)

  • Количество дефектов в партии (defects)

Данные также включают time_dev и temp_dev, которые представляют абсолютное отклонение времени и температуры, соответственно, от стандарта процесса в 3 часа при 20 степенях Цельсии.

Подбор обобщенной линейной модели смешанных эффектов с помощью newprocess, time_dev, temp_dev, и supplier как предикторы фиксированных эффектов. Включите термин случайных эффектов для точки пересечения, сгруппированного по factory, для расчета различий в качестве, которые могут существовать из-за специфичных для фабрики изменений. Переменная отклика defects имеет распределение Пуассона, и соответствующая функция ссылки для этой модели является логарифмической. Используйте метод Laplace fit, чтобы оценить коэффициенты. Задайте кодировку фиктивной переменной следующим 'effects', поэтому фиктивные переменные коэффициенты равны 0.

Количество дефектов может быть смоделировано с помощью распределения Пуассона

defectsijПуассон(μij)

Это соответствует обобщенной модели линейных смешанных эффектов

log(μij)=β0+β1newprocessij+β2time_devij+β3temp_devij+β4supplier_Cij+β5supplier_Bij+bi,

где

  • defectsij количество дефектов, наблюдаемых в партии, произведенной заводом-изготовителем i во время партии j.

  • μij - среднее количество дефектов, соответствующих заводу i (где i=1,2,...,20) во время партии j (где j=1,2,...,5).

  • newprocessij, time_devij, и temp_devij являются измерениями для каждой переменной, которые соответствуют фабрике i во время партии j. Для примера, newprocessij указывает, производится ли партия заводом-изготовителем i во время партии j использовали новый процесс.

  • supplier_Cij и supplier_Bij являются фиктивными переменными, которые используют эффекты (сумма к нулю) кодирования, чтобы указать, является ли компания C или B, соответственно, поставила химикаты для партии, произведенной заводом i во время партии j.

  • biN(0,σb2) является точка пересечения случайных эффектов для каждого завода i который учитывает специфические для завода изменения в качестве.

glme = fitglme(mfr,'defects ~ 1 + newprocess + time_dev + temp_dev + supplier + (1|factory)','Distribution','Poisson','Link','log','FitMethod','Laplace','DummyVarCoding','effects');

Использование random чтобы симулировать новый вектор отклика из подобранной модели.

rng(0,'twister');  % For reproducibility
ynew = random(glme);

Отобразите первые 10 строк вектора симулированного отклика.

ynew(1:10)
ans = 10×1

     3
     3
     1
     7
     5
     8
     7
     9
     5
     9

Симулируйте новый вектор отклика с помощью новых входных значений. Создайте новую таблицу, скопировав первые 10 строк mfr в tblnew.

tblnew = mfr(1:10,:);

Первые 10 строк mfr включают данные, собранные из испытаний 1-5 для заводов 1 и 2. Оба завода использовали старый процесс для всех своих испытаний во время эксперимента, так что newprocess = 0 для всех 10 наблюдений.

Измените значение newprocess на 1 для наблюдений в tblnew.

tblnew.newprocess = ones(height(tblnew),1);

Моделируйте новые отклики, используя новые входные значения в tblnew.

ynew2 = random(glme,tblnew)
ynew2 = 10×1

     2
     3
     5
     4
     2
     2
     2
     1
     2
     0

Подробнее о

расширить все