Моделируйте и оценивайте подобранную модель 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.