Моделируйте и оценивайте подобранную модель SimBiology
[ynew,parameterEstimates]
= predict(resultsObj)
[ynew,parameterEstimates]
= predict(resultsObj,data,dosing)
[ynew,parameterEstimates]
= predict(___,'ParameterType',value)
[
возвращает результаты симуляции ynew
,parameterEstimates
]
= predict(resultsObj
)ynew
от оценки подобранного SimBiology® модель. Предполагаемые значения параметров parameterEstimates
используется для вычисления ynew
являются из исходной подгонки sbiofitmixed
.
[
возвращает результаты симуляции ynew
,parameterEstimates
]
= predict(resultsObj
,data
,dosing
)ynew
от оценки подобранной модели SimBiology при помощи заданной data
и dosing
информацию.
[
Возвраты результатов симуляции от оценки подобранной модели SimBiology с помощью индивидуума или населения оценок параметров. Два варианта для ynew
,parameterEstimates
]
= predict(___,'ParameterType',value
)value
являются 'individual'
(по умолчанию) или 'population'
.
Совет
Используйте этот метод, чтобы получить ответы модели в определенный момент времени или предсказать ответы модели точек используя различные ковариационные данные и информацию о дозах.
Оцените нелинейные параметры смешанных эффектов с помощью клинических фармакокинетических данных, собранных у 59 детей. Оцените подобранную модель с учетом новых данных или информации о дозах.
Загрузка данных
Этот пример использует данные, собранные для 59 недоношенных детей, получавших фенобарбитал в течение первых 16 дней после рождения [1]. ds
- таблица, содержащая данные профиля концентрации-времени и ковариатную информацию для каждого младенца (или группы).
load pheno.mat ds
Преобразование в groupedData
Преобразуйте данные в формат groupedData для оценки параметра.
data = groupedData(ds);
Отображение первых нескольких строк data
.
data(1:5,:)
ans = 5×6 groupedData ID TIME DOSE WEIGHT APGAR CONC __ ____ ____ ______ _____ ____ 1 0 25 1.4 7 NaN 1 2 NaN 1.4 7 17.3 1 12.5 3.5 1.4 7 NaN 1 24.5 3.5 1.4 7 NaN 1 37 3.5 1.4 7 NaN
Визуализация данных
Отображение данных на шпалерном графике.
t = sbiotrellis(data, 'ID', 'TIME', 'CONC', 'marker', 'o',... 'markerfacecolor', [.7 .7 .7], 'markeredgecolor', 'r', ... 'linestyle', 'none'); t.plottitle = 'Concentration versus Time';
Создайте модель PK с одним отсеком
Создайте простую однокамерную модель PK с введением болюсной дозы и линейным устранением клиренса, чтобы соответствовать данным.
pkmd = PKModelDesign; addCompartment(pkmd,'Central','DosingType','Bolus',... 'EliminationType','linear-clearance',... 'HasResponseVariable',true,'HasLag',false); onecomp = pkmd.construct;
Сопоставьте виды модели с данными отклика.
responseMap = 'Drug_Central = CONC';
Задайте предполагаемые параметры
Параметрами для оценки в этой модели являются объем центрального отсека (Central
) и коэффициент клиренса (Cl_Central
). sbiofitmixed
вычисляет фиксированные и случайные эффекты для каждого параметра. Базовый алгоритм вычисляет нормально распределенные случайные эффекты, которые могут нарушить ограничения для биологических параметров, которые всегда положительны, таких как объем и клиренс. Поэтому задайте преобразование для предполагаемых параметров, чтобы преобразованные параметры следовали нормальному распределению. Получившаяся модель является
и
где , , и являются фиксированными эффектами, случайными эффектами и оцененными значениями параметров, соответственно, рассчитанными для каждого младенца (группы) . Некоторые произвольные первоначальные оценки для V (объем центрального отсека) и C1 (скорость клиренса) используются здесь в отсутствие лучших эмпирических данных.
estimatedParams = estimatedInfo({'log(Central)','log(Cl_Central)'},'InitialValue',[1 1]);
Определите дозирование
Все дети получали препарат, представленный Drug_Central
виды, где график дозирования варьируется среди детей. Количество препарата указано в переменной данных DOSE. Можно автоматически сгенерировать объекты дозы из данных и использовать их во время подбора кривой. В этом примере Drug_Central
- целевой вид, который получает дозу.
sampleDose = sbiodose('sample','TargetName','Drug_Central'); doses = createDoses(data,'DOSE','',sampleDose);
Подбор модели
Использование sbiofitmixed
для соответствия модели с одним отсеком данным.
nlmeResults = sbiofitmixed(onecomp,data,responseMap,estimatedParams,doses,'nlmefit');
Визуализация результатов
Визуализируйте подгоненные результаты с помощью индивидуальных оценок параметров.
fig1 = plot(nlmeResults,'ParameterType','individual'); % Resize the figure. fig1.hFig.Position(:) = [100 100 1200 800];
Используйте новые данные дозирования для моделирования подобранной модели
Предположим, что вы хотите предсказать, как дети 1 и 2 реагировали бы при различных количествах дозирования. Их ответы можно предсказать следующим образом.
Создайте новые объекты дозы с новыми суммарными дозами.
dose1 = doses(1); dose1.Amount = dose1.Amount*2; dose2 = doses(2); dose2.Amount = dose2.Amount*1.5;
Используйте predict
функция для оценки подобранной модели с использованием новых данных дозирования. Если вы хотите предсказания отклика в определенные моменты времени, предоставьте новый выходной временной вектор. Используйте опцию 'ParameterType', чтобы задать индивидуальные или популяционные параметры для использования. По умолчанию predict
использует параметры населения, когда вы задаете время выхода.
timeVec = [0:25:400]; newResults = predict(nlmeResults,timeVec,[dose1;dose2],'ParameterType','population');
Визуализируйте предсказанные ответы, перекрывая экспериментальные данные для детей 1 и 2.
subplot(2,1,1) plot(data.TIME(data.ID == 1),data.CONC(data.ID == 1),'bo') hold on plot(newResults(1).Time,newResults(1).Data,'b') hold off ylabel('Concentration') legend('Observation(CONC)','Prediction') subplot(2,1,2) plot(data.TIME(data.ID == 2),data.CONC(data.ID == 2),'rx') hold on plot(newResults(2).Time,newResults(2).Data,'r') hold off legend('Observation(CONC)','Prediction') ylabel('Concentration') xlabel('Time')
Создайте ковариатную модель для ковариатных зависимостей
Предположим, что существует корреляция между объемом и весом, и, возможно, объемом и счетом APGAR. Рассмотрим эффект веса путем моделирования двух из этих ковариативных зависимостей: объем центрального (Central
) и коэффициент клиренса (Cl_Central
) варьируются в зависимости от веса. Модель становится
и
Используйте CovariateModel
объект для определения ковариатных зависимостей. Для получения дополнительной информации смотрите Задать ковариатную модель.
covModel = CovariateModel; covModel.Expression = ({'Central = exp(theta1 + theta2*WEIGHT + eta1)',... 'Cl_Central = exp(theta3 + theta4*WEIGHT + eta2)'}); % Use |constructDefaultInitialEstimate| to create an |initialEstimates| % struct. initialEstimates = covModel.constructDefaultFixedEffectValues;
Используйте FixedEffectNames
свойство для отображения тетов (фиксированных эффектов), определенных в модели.
covModel.FixedEffectNames
ans = 4×1 cell
{'theta1'}
{'theta3'}
{'theta2'}
{'theta4'}
Используйте FixedEffectDescription
свойство для отображения описаний соответствующих фиксированных эффектов (thetas), используемых в ковариатном выражении. Для примера, theta2
является фиксированным эффектом для ковариаты веса, который коррелирует с объемом (Central
), обозначаемое как 'Central/WEIGHT'.
disp('Fixed Effects Description:');
Fixed Effects Description:
disp(covModel.FixedEffectDescription);
{'Central' } {'Cl_Central' } {'Central/WEIGHT' } {'Cl_Central/WEIGHT'}
Установите начальные предположения для значений параметров с фиксированным эффектом для Central
и Cl_Central
использование значений, оцененных из подбора кривой базовой модели.
initialEstimates.theta1 = nlmeResults.FixedEffects.Estimate(1); initialEstimates.theta3 = nlmeResults.FixedEffects.Estimate(2); covModel.FixedEffectValues = initialEstimates;
Подбор модели
nlmeResults_cov = sbiofitmixed(onecomp,data,responseMap,covModel,doses,'nlmefit');
Отображение настроенных параметров и ковариаций
disp('Estimated Fixed Effects:');
Estimated Fixed Effects:
disp(nlmeResults_cov.FixedEffects);
Name Description Estimate StandardError __________ _____________________ ________ _____________ {'theta1'} {'Central' } -0.45664 0.078933 {'theta3'} {'Cl_Central' } -5.9519 0.1177 {'theta2'} {'Central/WEIGHT' } 0.52948 0.047342 {'theta4'} {'Cl_Central/WEIGHT'} 0.61954 0.071386
disp('Estimated Covariance Matrix:');
Estimated Covariance Matrix:
disp(nlmeResults_cov.RandomEffectCovarianceMatrix);
eta1 eta2 ________ ________ eta1 0.046503 0 eta2 0 0.041609
Визуализация результатов
Визуализируйте подгоненные результаты с помощью индивидуальных оценок параметров.
fig2 = plot(nlmeResults_cov,'ParameterType','individual'); % Resize the figure. fig2.hFig.Position(:) = [100 100 1200 800];
Используйте новые ковариатные данные для оценки подобранной модели
Предположим, что вы хотите исследовать ответы детей 1 и 2 с помощью различных ковариационных данных, а именно WEIGHT
. Вы можете сделать это, задав новую WEIGHT
данные. The ID
переменная данных соответствует отдельным младенцам.
newData = data(data.ID == 1 | data.ID == 2,:); newData.WEIGHT(newData.ID == 1) = 1.3; newData.WEIGHT(newData.ID == 2) = 1.4;
Моделируйте ответы детей 1 и 2 с помощью новых ковариационных данных.
[newResults_cov, newEstimates] = predict(nlmeResults_cov,newData,[dose1;dose2]);
newEstimates
содержит обновленные оценки параметров для каждого индивидуума (младенцев 1 и 2) после переоценки модели с использованием новых ковариационных данных.
newEstimates
newEstimates=4×3 table
Group Name Estimate
_____ ______________ _________
1 {'Central' } 2.5596
1 {'Cl_Central'} 0.0065965
2 {'Central' } 1.7123
2 {'Cl_Central'} 0.0064806
Сравните с оценочными значениями из исходной подгонки с помощью старых ковариационных данных.
nlmeResults_cov.IndividualParameterEstimates( ... nlmeResults_cov.IndividualParameterEstimates.Group == '1' | ... nlmeResults_cov.IndividualParameterEstimates.Group == '2',:)
ans=4×3 table
Group Name Estimate
_____ ______________ _________
1 {'Central' } 2.6988
1 {'Cl_Central'} 0.0070181
2 {'Central' } 1.8054
2 {'Cl_Central'} 0.0068948
Визуализируйте новые результаты симуляции вместе с экспериментальными данными для младенца 1 и 2.
subplot(2,1,1) plot(data.TIME(data.ID == 1),data.CONC(data.ID == 1),'bo') hold on plot(newResults_cov(1).Time,newResults_cov(1).Data,'b') hold off ylabel('Concentration') legend('Observation(CONC)','Prediction','Location','NorthEastOutside') subplot(2,1,2) plot(data.TIME(data.ID == 2),data.CONC(data.ID == 2),'rx') hold on plot(newResults_cov(2).Time,newResults_cov(2).Data,'r') hold off legend('Observation(CONC)','Prediction','Location','NorthEastOutside') ylabel('Concentration') xlabel('Time')
Ссылки
[1] Грасела, Т. Х. Младший, и С. М. Донн. «Неонатальное население фармакокинетика фенобарбитала, полученная из рутинных клинических данных». Dev Pharmacol Ther 1985:8 (6). 374-83.
resultsObj
- Результаты оценкиNLMEResults
объектРезультаты оценки, заданные как скаляр NLMEResults object
, который содержит нелинейные результаты оценки смешанных эффектов, возвращенные sbiofitmixed
.
data
- Сгруппированные данные или время выходаgroupedData
вектор | объект | массив ячеек из векторовСгруппированные данные или время выхода, заданное как groupedData
object
, вектор или массив ячеек из векторов выхода раз.
Если data
является groupedData
для объекта должны быть заданы как метки группы, так и время вывода. Метки группы могут ссылаться на новые группы или существующие группы из исходной подгонки. Если модель смешанных эффектов из исходной подгонки (возвращается sbiofitmixed
) использует ковариаты, groupedData
объект должен также содержать ковариационные данные с теми же метками для ковариат (CovariateLabels
свойство), заданное в исходной ковариатной модели.
По умолчанию отдельные оценки параметров используются для симуляции групп из исходной подгонки, в то время как параметры населения используются для новых групп, если таковые имеются. Смотрите value
описание аргумента для получения дополнительной информации.
Общее количество результатов симуляции в выход ynew
зависит от количества групп или выходных временных векторов в data
и количество строк в dosing
матрица. Для получения дополнительной информации см. таблицу в ynew
описание аргумента.
dosing
- Информация о дозах[]
| 2-D матрицу объектов дозы SimBiologyИнформация о дозах, заданная как пустой массив []
или 2-D матрица объектов дозы SimBiology (ScheduleDose object
или RepeatDose object
). Если dosing
является матрицей объектов дозы, матрица должна содержать дозы по умолчанию или соответствовать исходным данным дозирования, используемым с sbiofitmixed
. То есть дозируйте объекты в dosing
должны иметь те же значения свойств дозы (такие как TargetName
) или должны быть параметризованы так же, как и исходные данные дозирования. Например, предположим, что исходная матрица дозирования имеет два столбца доз, где первый столбец нацелен на вид x и второй столбец на вид y. Затем dosing
должны иметь дозы в первом столбце, нацеленные на виды x и дозы во втором столбце, нацеленные на виды y.
Если он пуст, никакие дозы не применяются во время симуляции, даже если модель имеет активные дозы.
Если не пустой, матрица должна иметь одну строку или по одной строке на группу во входных данных. Если она имеет одну строку, те же дозы применяются ко всем группам во время симуляции. Если она имеет несколько строк, каждая строка применяется к отдельной группе в том же порядке, в котором группы появляются во входных данных. Если одни группы (или временные векторы) требуют больше доз, чем другие, то заполните матрицу дозами по умолчанию (манекен).
Допускается использование нескольких столбцов, чтобы можно было применить несколько объектов дозы к каждой группе или временному вектору. Все дозы в столбце должны быть дозами по умолчанию или должны ссылаться на одни и те же компоненты в модели (для образца дозы должны иметь одинаковые TargetName
) и должны иметь согласованные параметризованные свойства, как в исходных данных дозирования, используемых с sbiofitmixed
. Для примера, если Amount
свойство дозы, используемой в оригинале sbiofitmixed
вызов параметризован в параметр с параметрами model-scoped 'A'
, все дозы для соответствующей группы (столбца) в dosing
должны иметь Amount
свойство параметризовано в 'A'
.
Доза по умолчанию имеет значения по умолчанию для всех свойств, кроме Name
свойство. Создайте дозу по умолчанию следующим образом.
d1 = sbiodose('d1');
В дополнение к ручному построению объектов дозы с помощью sbiodose
, если входные данные являются groupedData
объект и имеет информацию о дозах, вы можете использовать createDoses
способ конструирования доз из него.
Количество строк в dosing
матрица и количество групп или выходных временных векторов в data
определить общее количество результатов моделирования в выход ynew
. Для получения дополнительной информации см. таблицу в ynew
описание аргумента.
Примечание
Если UnitConversion
включен для базовой модели SimBiology, которая использовалась для подбора кривой, dosing
необходимо указать допустимую величину и временные модули.
value
- Тип параметра'individual'
(по умолчанию) | 'population'
Тип параметра, заданный как 'individual'
(по умолчанию) или 'population'
. Если value
является 'population'
, а predict
метод возвращает результаты симуляции с помощью оценок параметров населения, то есть значений параметров, которые оцениваются только с использованием фиксированных эффектов ( Оцененные значения параметров, используемые в симуляции, идентичны значениям в resultsObj.PopulationParameterEstimates
свойство, если вы не задаете новое groupedData
data объекта
с новыми ковариатными данными. В этом случае метод переоценивает ковариатную модель и оценки параметра на основе новой groupedData
и ковариатные данные.
Если value
является 'individual'
, метод возвращает результаты симуляции с помощью соответствующих значений параметров группы в resultsObj.IndividualParameterEstimates
свойство. Эти значения включают как оценки фиксированных, так и случайных эффектов, то есть значения параметров, оцененные с использованием как фиксированных эффектов ( Если data
содержит новые группы, для этих групп используются только фиксированные эффекты (оценки параметров населения объекта результатов).
По умолчанию, predict
использует отдельные оценки параметров объекта результатов при data
является groupedData
объект. Если data
- вектор времени выхода или массив ячеек из векторов, predict
вместо этого использует оценки параметров населения объекта результатов.
ynew
- Результаты симуляцииSimData
объектыРезультаты симуляции, возвращенные как вектор SimData
объекты. Информация о состояниях представлена в ynew
включены ли состояния в responseMap
входной параметр sbiofitmixed
и любые другие состояния, перечисленные в StatesToLog
свойство опций среды выполнения (RuntimeOptions
) модели SimBiology.
Общее количество результатов симуляции в ynew
зависит от количества групп или выходных временных векторов в data
и количество строк в dosing
матрица.
Количество групп или выходных временных векторов в data | Количество строк в dosing матрица | Результаты симуляции |
---|---|---|
|
| Общее количество Дозы во время симуляции не применяются. |
|
| Общее количество Данная строка доз применяется во время симуляции. |
| N | Общее количество Каждая строка |
N |
| Общее количество Дозы во время симуляции не применяются. |
N |
| Общее количество К каждой симуляции применяется одна и та же строка доз. |
N | N | Общее количество Каждая строка |
M | N | Функция выдает ошибку при M ≠ N. |
parameterEstimates
- Предполагаемые значения параметровПредполагаемые значения параметров, используемые для предсказанных результатов симуляции, возвращаются как таблица.
Если 'ParameterType'
является 'individual'
, представленные значения параметров идентичны значениям в resultsObj.IndividualParameterEstimates
свойство. Однако, если data
содержит новые группы, тогда для этих групп используются только оценки параметров населения (фиксированные эффекты). Соответствующие отчетные значения в parameterEstimates
для этих групп идентичны значениям в resultsObj.PopulationParameterEstimates
.
Если 'ParameterType'
является 'population'
, представленные значения параметров идентичны значениям в resultsObj.PopulationParameterEstimates
свойство, если вы не задаете новую ковариационную информацию в data
. Смотрите value
описание аргумента для получения дополнительной информации.
Если data
является вектором или массивом ячеек из векторов выхода раз, сообщенные значения параметров идентичны значениям в resultsObj.PopulationParameterEstimates
. Кроме того, группы, о которых сообщалось, представляют собой перечисление выполненных симуляций и не связаны с именами групп в исходной подгонке.
CovariateModel object
| NLMEResults object
| sbiofitmixed
| sbiosampleerror
| sbiosampleparameters
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.