exponenta event banner

sbiofitmixed

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

Синтаксис

fitResults = sbiofitmixed(sm,grpData,responseMap,covEstiminfo)
fitResults = sbiofitmixed(sm,grpData,responseMap,covEstiminfo,dosing)
fitResults = sbiofitmixed(sm,grpData,responseMap,covEstiminfo,dosing,functionName)
fitResults = sbiofitmixed(sm,grpData,responseMap,covEstiminfo,dosing,functionName,opt)
fitResults = sbiofitmixed(sm,grpData,responseMap,covEstiminfo,dosing,functionName,opt,variants)
fitResults = sbiofitmixed(_,'UseParallel',tf_parallel)
fitResults = sbiofitmixed(_,'ProgressPlot',tf_progress)
[fitResults,simDataI,simDataP] = sbiofitmixed(_)

Описание

пример

fitResults = sbiofitmixed(sm,grpData,responseMap,covEstiminfo) выполняет нелинейную оценку смешанных эффектов с помощью модели sm SimBiology® и возвращает объект 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'

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

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

Опишите экспериментально измеренный ответ путем отображения соответствующего компонента модели с переменной отклика. Другими словами, укажите, которому разновидность в модели соответствует который переменная отклика в данных. Observed свойства PKModelMap указывает, что соответствующей разновидностью в модели является 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 array
    {'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];

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

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

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

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

свернуть все

Модель SimBiology, заданная как model object SimBiology. Активный 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. Это содержит имя (или полностью определенное имя) количества (разновидности, отсек или параметр) в модели sm, сопровождаемой символьным '=' и именем переменной в grpData. Для ясности пробелы позволены между именами и '='.

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

responseMap = 'Drug_Central = CONC';

Чтобы однозначно назвать разновидность, используйте полностью определенное имя, которое включает имя отсека. Чтобы назвать ограниченный по объему реакцией параметр, используйте имя реакции, чтобы квалифицировать параметр. Если имя не является допустимым именем переменной MATLAB®, окружите его квадратными скобками, такими как [reaction 1].[parameter 1].

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

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

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

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

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

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

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

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

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

    d1 = sbiodose('d1');

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

Имя функции оценки, заданное как вектор символов или строка. Выбором является 'nlmefit' или 'nlmefitsa'. Поскольку сводные данные поддержали методы и подходящие опции, см. Поддерживаемые Методы для Оценки Параметра.

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

  • 'FEConstDesign'

  • 'FEGroupDesign

  • 'FEObsDesign'

  • 'FEParamsSelect'

  • 'ParamTransform'

  • 'REConstDesign'

  • 'REGroupDesign'

  • 'REObsDesign'

  • 'Vectorization'

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

Используйте функцию statset только, чтобы установить поле 'Options' структуры opt можно следующим образом.

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

Для других поддерживаемых аргументов пары "имя-значение" (см. nlmefit и nlmefitsa), установите их можно следующим образом.

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

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

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

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

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

свернуть все

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

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

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

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

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

Ссылки

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

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

Введенный в R2014a