exponenta event banner

sbiofitmixed

Подбор нелинейной модели смешанных эффектов (требуется программное обеспечение Statistics and Machine Learning Toolbox)

Описание

пример

fitResults = sbiofitmixed(sm,grpData,responseMap,covEstiminfo) выполняет нелинейную оценку смешанных эффектов с использованием модели SimBiology ®sm и возвращает NLMEResults объект fitResults.

grpData является groupedData object указание данных для подгонки. responseMap определяет сопоставление между компонентами модели и данными ответа в grpData. covEstiminfo является CovariateModel object или массив estimatedInfo объекты, определяющие параметры для оценки.

Если модель содержит активные дозы и варианты, они применяются во время моделирования.

пример

fitResults = sbiofitmixed(sm,grpData,responseMap,covEstiminfo,dosing) использует информацию о дозировке, заданную матрицей объектов дозы SimBiology dosing вместо использования активных доз модели sm при их наличии.

пример

fitResults = sbiofitmixed(sm,grpData,responseMap,covEstiminfo,dosing,functionName) использует функцию оценки, заданную functionName это должно быть либо 'nlmefit' или 'nlmefitsa'.

пример

fitResults = sbiofitmixed(sm,grpData,responseMap,covEstiminfo,dosing,functionName,opt) использует дополнительные параметры, указанные в opt для функции оценки functionName.

пример

fitResults = sbiofitmixed(sm,grpData,responseMap,covEstiminfo,dosing,functionName,opt,variants) применяет объекты исполнения, указанные как variants вместо использования любых активных вариантов модели.

пример

fitResults = sbiofitmixed(_,'UseParallel',tf_parallel) указывает, следует ли оценивать параметры параллельно, если доступна функция Parallel Computing Toolbox™.

пример

fitResults = sbiofitmixed(_,'ProgressPlot',tf_progress) указывает, показывать ли ход выполнения оценки параметров.

[fitResults,simDataI,simDataP] = sbiofitmixed(_) возвращает вектор объектов результатов fitResults, вектор результатов моделирования simDataI использование индивидуальных оценок параметров и вектора результатов моделирования simDataP используя оценки параметров населения.

Примечание

  • sbiofitmixed объединяет sbionlmefit и sbionlmefitsa функции оценки. Использовать sbiofitmixed для выполнения нелинейного моделирования и оценки смешанных эффектов.

  • sbiofitmixed моделирует модель с помощью SimFunction object, что автоматически ускоряет моделирование по умолчанию. Следовательно, нет необходимости запускать sbioaccelerate перед звонком sbiofitmixed.

Примеры

свернуть все

В этом примере используются данные, собранные о 59 недоношенных детях, получавших фенобарбитал в течение первых 16 дней после рождения [1]. Каждый ребенок получал начальную дозу с последующей одной или несколькими поддерживающими дозами путем внутривенного введения болюса. Всего от 1 до 6 измерений концентрации получали от каждого младенца в моменты времени, отличные от времени дозы, для общего количества 155 измерений. Вес младенцев и баллы APGAR (показатель здоровья новорожденных) также были зарегистрированы.

Загрузите данные.

load pheno.mat ds

Преобразовать набор данных в groupedData objectконтейнер для хранения табличных данных, разделенных на группы. Он может автоматически идентифицировать часто используемые имена переменных в качестве переменной группировки или независимой (временной) переменной. Просмотрите свойства данных и подтвердите, что GroupVariableName и IndependentVariableName правильно идентифицированы как 'ID' и 'TIME'соответственно.

data = groupedData(ds);
data.Properties
ans = struct with fields:
                Description: ''
                   UserData: []
             DimensionNames: {'Observations'  'Variables'}
              VariableNames: {'ID'  'TIME'  'DOSE'  'WEIGHT'  'APGAR'  'CONC'}
       VariableDescriptions: {}
              VariableUnits: {}
         VariableContinuity: []
                   RowNames: {}
           CustomProperties: [1x1 matlab.tabular.CustomProperties]
          GroupVariableName: 'ID'
    IndependentVariableName: 'TIME'

Создайте простую однокамерную модель ПК с болюсным дозированием и линейным зазором для соответствия таким данным. Используйте PKModelDesign объект для построения модели. Каждый отсек определяется именем, типом дозирования, типом зазора и тем, требуется ли для дозирования параметр задержки. После построения модели можно также получить PKModelMap объект map в котором перечислены имена видов и параметры в модели, наиболее релевантные для подгонки.

pkmd = PKModelDesign;
addCompartment(pkmd,'Central','DosingType','Bolus',...
                    'EliminationType','linear-clearance',...
                    'HasResponseVariable',true,'HasLag',false);
[onecomp, map] = pkmd.construct;

Опишите экспериментально измеренный отклик, сопоставив соответствующий компонент модели с переменной отклика. Другими словами, укажите, какие виды в модели соответствуют какой переменной ответа в данных. PKModelMap собственность Observed указывает, что соответствующий вид в модели Drug_Central, которая представляет концентрацию лекарственного средства в системе. Релевантной переменной данных является CONC, которую вы визуализировали ранее.

map.Observed
ans = 1x1 cell array
    {'Drug_Central'}

Отобразить Drug_Central виды к CONC переменная.

responseMap = 'Drug_Central = CONC';

Параметрами для оценки в данной модели является объем центрального отсека Central и степень очистки Cl_Central. PKModelMap собственность Estimated перечисляет эти релевантные параметры. Базовый алгоритм sbiofit предполагает, что параметры обычно распределены, но это предположение может быть неверным для биологических параметров, которые ограничены положительными, таких как объем и клиренс. Укажите преобразование журнала для расчетных параметров, чтобы преобразованные параметры следовали нормальному распределению. Использовать estimatedInfo объект для определения таких преобразований и исходных значений (необязательно).

map.Estimated
ans = 2x1 cell
    {'Central'   }
    {'Cl_Central'}

Определите такие расчетные параметры, соответствующие преобразования и начальные значения.

estimatedParams = estimatedInfo({'log(Central)','log(Cl_Central)'},'InitialValue',[1 1]);

Каждый ребенок получал различный график дозирования. Количество препарата указано в переменной данных DOSE. Чтобы задать эти дозирование во время фитинга, создайте объекты дозы на основе данных. Эти объекты используют свойство TargetName чтобы указать, какие виды в модели получают дозу. В этом примере целевой вид - Drug_Central, как указано в PKModelMap собственность Dosed.

map.Dosed
ans = 1x1 cell array
    {'Drug_Central'}

Создайте дозу образца с этим целевым именем, а затем используйте createDoses способ groupedData объект data генерировать дозы для каждого ребенка на основе данных дозирования DOSE.

sampleDose = sbiodose('sample','TargetName','Drug_Central');
doses = createDoses(data,'DOSE','',sampleDose);

Подгоните модель.

[nlmeResults,simI,simP] = sbiofitmixed(onecomp,data,responseMap,estimatedParams,doses,'nlmefit');

Визуализация подогнанных результатов с использованием индивидуальных оценок параметров.

fig1 = plot(nlmeResults,'ParameterType','individual');

% Resize the figure.
fig1.hFig.Position(:) = [100 100 1200 800];

Figure contains 64 axes. Axes 1 with title Group 1 contains 2 objects of type line. These objects represent OBS1 (CONC), PRED1 (Central.Drug_Central). Axes 2 with title Group 9 contains 2 objects of type line. Axes 3 with title Group 17 contains 2 objects of type line. Axes 4 with title Group 25 contains 2 objects of type line. Axes 5 with title Group 33 contains 2 objects of type line. Axes 6 with title Group 41 contains 2 objects of type line. Axes 7 with title Group 49 contains 2 objects of type line. Axes 8 with title Group 57 contains 2 objects of type line. Axes 9 with title Group 2 contains 2 objects of type line. Axes 10 with title Group 10 contains 2 objects of type line. Axes 11 with title Group 18 contains 2 objects of type line. Axes 12 with title Group 26 contains 2 objects of type line. Axes 13 with title Group 34 contains 2 objects of type line. Axes 14 with title Group 42 contains 2 objects of type line. Axes 15 with title Group 50 contains 2 objects of type line. Axes 16 with title Group 58 contains 2 objects of type line. Axes 17 with title Group 3 contains 2 objects of type line. Axes 18 with title Group 11 contains 2 objects of type line. Axes 19 with title Group 19 contains 2 objects of type line. Axes 20 with title Group 27 contains 2 objects of type line. Axes 21 with title Group 35 contains 2 objects of type line. Axes 22 with title Group 43 contains 2 objects of type line. Axes 23 with title Group 51 contains 2 objects of type line. Axes 24 with title Group 59 contains 2 objects of type line. Axes 25 with title Group 4 contains 2 objects of type line. Axes 26 with title Group 12 contains 2 objects of type line. Axes 27 with title Group 20 contains 2 objects of type line. Axes 28 with title Group 28 contains 2 objects of type line. Axes 29 with title Group 36 contains 2 objects of type line. Axes 30 with title Group 44 contains 2 objects of type line. Axes 31 with title Group 52 contains 2 objects of type line. Axes 32 is empty. Axes 33 with title Group 5 contains 2 objects of type line. Axes 34 with title Group 13 contains 2 objects of type line. Axes 35 with title Group 21 contains 2 objects of type line. Axes 36 with title Group 29 contains 2 objects of type line. Axes 37 with title Group 37 contains 2 objects of type line. Axes 38 with title Group 45 contains 2 objects of type line. Axes 39 with title Group 53 contains 2 objects of type line. Axes 40 is empty. Axes 41 with title Group 6 contains 2 objects of type line. Axes 42 with title Group 14 contains 2 objects of type line. Axes 43 with title Group 22 contains 2 objects of type line. Axes 44 with title Group 30 contains 2 objects of type line. Axes 45 with title Group 38 contains 2 objects of type line. Axes 46 with title Group 46 contains 2 objects of type line. Axes 47 with title Group 54 contains 2 objects of type line. Axes 48 is empty. Axes 49 with title Group 7 contains 2 objects of type line. Axes 50 with title Group 15 contains 2 objects of type line. Axes 51 with title Group 23 contains 2 objects of type line. Axes 52 with title Group 31 contains 2 objects of type line. Axes 53 with title Group 39 contains 2 objects of type line. Axes 54 with title Group 47 contains 2 objects of type line. Axes 55 with title Group 55 contains 2 objects of type line. Axes 56 is empty. Axes 57 with title Group 8 contains 2 objects of type line. Axes 58 with title Group 16 contains 2 objects of type line. Axes 59 with title Group 24 contains 2 objects of type line. Axes 60 with title Group 32 contains 2 objects of type line. Axes 61 with title Group 40 contains 2 objects of type line. Axes 62 with title Group 48 contains 2 objects of type line. Axes 63 with title Group 56 contains 2 objects of type line. Axes 64 is empty.

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

fig2 = plot(nlmeResults,'ParameterType','population'); 

% Resize the figure.
fig2.hFig.Position(:) = [100 100 1200 800];

Figure contains 64 axes. Axes 1 with title Group 1 contains 2 objects of type line. These objects represent OBS1 (CONC), PRED1 (Central.Drug_Central). Axes 2 with title Group 9 contains 2 objects of type line. Axes 3 with title Group 17 contains 2 objects of type line. Axes 4 with title Group 25 contains 2 objects of type line. Axes 5 with title Group 33 contains 2 objects of type line. Axes 6 with title Group 41 contains 2 objects of type line. Axes 7 with title Group 49 contains 2 objects of type line. Axes 8 with title Group 57 contains 2 objects of type line. Axes 9 with title Group 2 contains 2 objects of type line. Axes 10 with title Group 10 contains 2 objects of type line. Axes 11 with title Group 18 contains 2 objects of type line. Axes 12 with title Group 26 contains 2 objects of type line. Axes 13 with title Group 34 contains 2 objects of type line. Axes 14 with title Group 42 contains 2 objects of type line. Axes 15 with title Group 50 contains 2 objects of type line. Axes 16 with title Group 58 contains 2 objects of type line. Axes 17 with title Group 3 contains 2 objects of type line. Axes 18 with title Group 11 contains 2 objects of type line. Axes 19 with title Group 19 contains 2 objects of type line. Axes 20 with title Group 27 contains 2 objects of type line. Axes 21 with title Group 35 contains 2 objects of type line. Axes 22 with title Group 43 contains 2 objects of type line. Axes 23 with title Group 51 contains 2 objects of type line. Axes 24 with title Group 59 contains 2 objects of type line. Axes 25 with title Group 4 contains 2 objects of type line. Axes 26 with title Group 12 contains 2 objects of type line. Axes 27 with title Group 20 contains 2 objects of type line. Axes 28 with title Group 28 contains 2 objects of type line. Axes 29 with title Group 36 contains 2 objects of type line. Axes 30 with title Group 44 contains 2 objects of type line. Axes 31 with title Group 52 contains 2 objects of type line. Axes 32 is empty. Axes 33 with title Group 5 contains 2 objects of type line. Axes 34 with title Group 13 contains 2 objects of type line. Axes 35 with title Group 21 contains 2 objects of type line. Axes 36 with title Group 29 contains 2 objects of type line. Axes 37 with title Group 37 contains 2 objects of type line. Axes 38 with title Group 45 contains 2 objects of type line. Axes 39 with title Group 53 contains 2 objects of type line. Axes 40 is empty. Axes 41 with title Group 6 contains 2 objects of type line. Axes 42 with title Group 14 contains 2 objects of type line. Axes 43 with title Group 22 contains 2 objects of type line. Axes 44 with title Group 30 contains 2 objects of type line. Axes 45 with title Group 38 contains 2 objects of type line. Axes 46 with title Group 46 contains 2 objects of type line. Axes 47 with title Group 54 contains 2 objects of type line. Axes 48 is empty. Axes 49 with title Group 7 contains 2 objects of type line. Axes 50 with title Group 15 contains 2 objects of type line. Axes 51 with title Group 23 contains 2 objects of type line. Axes 52 with title Group 31 contains 2 objects of type line. Axes 53 with title Group 39 contains 2 objects of type line. Axes 54 with title Group 47 contains 2 objects of type line. Axes 55 with title Group 55 contains 2 objects of type line. Axes 56 is empty. Axes 57 with title Group 8 contains 2 objects of type line. Axes 58 with title Group 16 contains 2 objects of type line. Axes 59 with title Group 24 contains 2 objects of type line. Axes 60 with title Group 32 contains 2 objects of type line. Axes 61 with title Group 40 contains 2 objects of type line. Axes 62 with title Group 48 contains 2 objects of type line. Axes 63 with title Group 56 contains 2 objects of type line. Axes 64 is empty.

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

свернуть все

Модель SimBiology, указанная как SimBiology model object. Активное configset object модели содержит настройки решателя для моделирования. Любые активные дозы и варианты применяются к модели во время моделирования, если не указано иное с использованием dosing и variants входные аргументы соответственно.

Данные для подгонки, указанные как groupedData object.

Имя переменной времени должно быть определено в IndependentVariableName имущество grpData. Например, если имя переменной времени 'TIME', затем укажите его следующим образом.

grpData.Properties.IndependentVariableName = 'TIME';

grpData должны иметь по крайней мере две группы, а имя переменной группировки должно быть определено в GroupVariableName имущество grpData. Например, если имя переменной группировки 'GROUP', затем укажите его следующим образом.

grpData.Properties.GroupVariableName = 'GROUP';
Группа обычно относится к набору измерений, которые представляют один временной курс, часто соответствующий конкретному индивидуальному или экспериментальному состоянию.

Примечание

sbiofitmixed использует categorical функция для идентификации групп. Если какие-либо значения групп преобразуются в одно и то же значение categoricalзатем эти наблюдения рассматриваются как принадлежащие к одной и той же группе. Например, если некоторые наблюдения не имеют групповой информации (то есть пустой символьный вектор), то categorical преобразует пустые векторы символов в <undefined>и эти наблюдения рассматриваются как одна группа.

Отображение информации о компонентах модели в grpData, задается как символьный вектор, строка, строковый вектор или массив ячеек символьных векторов.

Каждый символьный вектор или строка является уравнительным выражением, аналогично правилам назначения в SimBiology. Он содержит имя (или квалифицированное имя) количества (вида, отсека или параметра) или observable объект в модели sm, за которым следует символ '=' и имя переменной в grpData. Для ясности допускаются пробелы между именами и '='.

Например, при наличии данных концентрации 'CONC' в grpData для вида 'Drug_Central', его можно указать следующим образом.

responseMap = 'Drug_Central = CONC';

Чтобы назвать вид однозначно, используйте квалифицированное название, включающее название отсека. Чтобы назвать параметр в области действия реакции, используйте имя реакции для определения параметра.

Если имя компонента модели или grpData имя переменной не является допустимым именем переменной MATLAB ®, заключите его в квадратные скобки, например :

responseMap = '[Central 1].Drug = [Central 1 Conc]';

Если само имя переменной содержит квадратные скобки, его нельзя использовать в выражении для определения информации о сопоставлении.

Если какое-либо (определенное) имя соответствует двум компонентам одного типа, выдается ошибка. Однако можно использовать (квалифицированное) имя, которое соответствует двум компонентам разных типов, и функция сначала находит вид с заданным именем, за которым следуют отсеки и затем параметры.

Оценочные параметры, указанные как вектор estimatedInfo объекты или CovariateModel object который определяет оценочные параметры в модели sm, их первоначальные оценки (необязательные) и их связь с ковариатами, специфичными для группы, включенными в grpData (необязательно). Если это вектор estimatedInfo объекты, то ковариаты не используются, а все параметры оцениваются с групповыми случайными эффектами.

При необходимости можно также указать преобразования параметров. Поддерживаемые преобразования: log, logit, и probit. Для получения более подробной информации см. EstimatedInfo object и CovariateModel object.

Если covEstiminfo является вектором estimatedInfo объекты, CategoryVariableName свойство каждого из этих объектов игнорируется.

Дозирующая информация, заданная как пустой массив или 2-D матрица дозовых объектов (ScheduleDose object или RepeatDose object).

  • Если он пуст, во время моделирования дозы не применяются, даже если модель имеет активные дозы.

  • Если матрица не пуста, она должна содержать одну строку или одну строку на группу во входных данных. Если она имеет одну строку, во время моделирования ко всем группам применяются одинаковые дозы. Если она содержит несколько строк, каждая строка применяется к отдельной группе в том же порядке, что и группы во входных данных.

  • Допускается использование нескольких столбцов, что позволяет применять объекты с несколькими дозами к каждой группе. Все дозы в столбце должны ссылаться на одни и те же компоненты в модели. Например, дозы в одной колонке должны иметь одну и ту же целевую дозу (TargetName). При параметризации какого-либо свойства дозы все дозы в столбце должны иметь это свойство, параметризованное для одного и того же параметра. Если для некоторых групп требуется больше доз, чем для других, заполните матрицу стандартными (фиктивными) дозами.

  • Доза по умолчанию имеет значения по умолчанию для всех свойств, за исключением Name собственность. Создайте дозу по умолчанию следующим образом.

    d1 = sbiodose('d1');

  • В дополнение к ручному построению дозовых объектов с помощью sbiodose, если grpData имеет информацию о дозировке, вы можете использовать createDoses способ построения доз.

Имя оценочной функции, указанное как символьный вектор или строка. Варианты: 'nlmefit' или 'nlmefitsa'. Сводные поддерживаемые методы и параметры подгонки см. в разделе Поддерживаемые методы оценки параметров в SimBiology.

Опции, специфичные для функции оценки, определенные как структура. Структура содержит поля и значения по умолчанию, которые являются аргументами пары имя-значение, принятыми nlmefit (Статистика и инструментарий машинного обучения) и nlmefitsa (Статистика и инструментарий машинного обучения), за исключением следующих, которые не поддерживаются.

  • 'FEConstDesign'

  • 'FEGroupDesign

  • 'FEObsDesign'

  • 'FEParamsSelect'

  • 'ParamTransform'

  • 'REConstDesign'

  • 'REGroupDesign'

  • 'REObsDesign'

  • 'Vectorization'

'REParamsSelect' поддерживается только тогда, когда covEstiminfo является вектором estimatedInfo объекты.

Используйте statset (Statistics and Machine Learning Toolbox) используется только для установки 'Options' области opt структура следующим образом.

opt.Options = statset('Display','iter','TolX',1e-3,'TolFun',1e-3);

Другие поддерживаемые аргументы пары имя-значение (см. nlmefit (Статистика и инструментарий машинного обучения) и nlmefitsa (Statistics and Machine Learning Toolbox)), установите их следующим образом.

opt.ErrorModel = 'proportional';
opt.ApproximationType = 'LME';

Варианты, указанные как пустой массив или вектор объектов вариантов. Если пустое значение, никакие варианты не используются, даже если модель имеет активные варианты.

'UseParallel' опция, указанная как true или false. Если trueи доступна панель инструментов параллельных вычислений, функция выполняет оценку параметров параллельно.

'ProgressPlot' опция, указанная как true или false. Если trueновый рисунок открывает контурные графики, которые показывают ход оценки параметров. В частности, графики показывают значения параметров фиксированных эффектов (theta), оценки параметров дисперсии, то есть диагональных элементов ковариационной матрицы случайных эффектов (Start), и логарифмического правдоподобия. Дополнительные сведения см. в разделе График хода выполнения.

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

свернуть все

Результаты оценки, возвращенные как NLMEResults object.

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

Штаты, о которых сообщалось в simDataI являются состояниями, которые были включены в responseMap входной аргумент, а также любые другие состояния, перечисленные в StatesToLog свойства параметров среды выполнения (RuntimeOptions) модели SimBiology sm.

Результаты моделирования, возвращенные как вектор SimData объекты, представляющие результаты моделирования для каждой группы (или отдельного лица), используя только оценки с фиксированным эффектом (оценки параметров заполнения).

Штаты, о которых сообщалось в simDataP являются состояниями, которые были включены в responseMap входной аргумент, а также любые другие состояния, перечисленные в StatesToLog свойства параметров среды выполнения (RuntimeOptions) модели SimBiology sm.

Ссылки

[1] Grasela Jr, T.H., Donn, S.M. (1985) Фармакокинетика фенобарбитала неонатальной популяции, полученная из обычных клинических данных. Дев Фармакол Тер. 8(6), 374–83.

Расширенные возможности

Представлен в R2014a