sbiofitmixed

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

Описание

пример

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

grpData isa groupedData object определение данных, чтобы соответствовать. responseMap задает отображение между компонентами модели и данными об ответе в grpData. covEstiminfo isa 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 симулирует модель с помощью a 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
    {'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 в виде SimBiology model object. Активное configset object из модели содержит настройки решателя для симуляции. Любые активные дозы и варианты применяются к модели в процессе моделирования, если не задано в противном случае использование dosing и variants входные параметры, соответственно.

Данные, чтобы соответствовать в виде a 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 объекты или a 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'. Поскольку сводные данные поддержали методы и подходящие опции, см. Поддерживаемые Методы для Оценки Параметра SimBiology.

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

  • '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 (Statistics and Machine Learning Toolbox) и nlmefitsa (Statistics and Machine Learning Toolbox)), устанавливает их можно следующим образом.

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
Для просмотра документации необходимо авторизоваться на сайте