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];

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 входные параметры, соответственно.

Данные, чтобы соответствовать в виде 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