exponenta event banner

sbiofitmixed

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

Описание

пример

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;

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

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

Если имя компонента модели или 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 свойство каждого из этих объектов проигнорировано.

Дозирование информации, указанной как пустой массив или 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