Симулируйте и оцените подбиравшую модель SimBiology
[ynew,parameterEstimates]
= predict(resultsObj)
[ynew,parameterEstimates]
= predict(resultsObj,data,dosing)
[ynew,parameterEstimates]
= predict(___,Name,Value)
[
возвращает результаты симуляции ynew
,parameterEstimates
]
= predict(resultsObj
)ynew
от оценки подходящего SimBiology® модель. Предполагаемые значения параметров parameterEstimates
использованный для расчета ynew
от исходной подгонки sbiofitmixed
.
[
возвращает результаты симуляции ynew
,parameterEstimates
]
= predict(resultsObj
,data
,dosing
)ynew
от оценки подбиравшей модели SimBiology при помощи заданного data
и dosing
информация.
[
дополнительные опции использования заданы одними или несколькими аргументами name-value.ynew
,parameterEstimates
]
= predict(___,Name,Value
)
Совет
Используйте этот метод, чтобы получить ответы модели в определенных моментах времени или предсказать ответы модели с помощью различных ковариационных данных и информации о дозах.
Оцените нелинейные параметры смешанных эффектов с помощью клинических фармакокинетических данных, собранных от 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 (объем центрального отсека) и Статья (уровень раскрываемости преступлений) используются здесь в отсутствие лучших эмпирических данных.
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
свойство отобразить thetas (зафиксированные эффекты) заданный в модели.
covModel.FixedEffectNames
ans = 4×1 cell
{'theta1'}
{'theta3'}
{'theta2'}
{'theta4'}
Используйте FixedEffectDescription
свойство показать описания соответствующих фиксированных эффектов (thetas) используемый в ковариационном выражении. Например, theta2
фиксированный эффект для коварианта веса, который коррелирует с объемом (Central
), обозначенный как 'Центральный / ВЕС'.
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
данные. 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] Grasela, T. H. Младший, и С. М. Донн. "Неонатальная фармакокинетика населения фенобарбитала выведена из стандартных клинических данных". Фармакол Dev Там 1985:8 (6). 374-83.
resultsObj
— Результаты оценкиNLMEResults
объектОценка заканчивается в виде скаляра NLMEResults object
, который содержит нелинейные результаты оценки смешанных эффектов, возвращенные sbiofitmixed
.
data
— Сгруппированные данные или выходные временаgroupedData
возразите | вектор | массив ячеек векторовСгруппированные данные или выходные времена в виде a groupedData object
, вектор или массив ячеек векторов выходных времен.
Если data
isa groupedData
объект, это должно иметь и метки группы и вывести заданные времена. Метки группы могут относиться к новым группам или существующим группам от исходной подгонки. Если модель смешанных эффектов от исходной подгонки (возвращенный sbiofitmixed
) коварианты использования, groupedData
объект должен также содержать ковариационные данные с теми же метками для ковариантов (CovariateLabels
свойство) заданный в исходной ковариационной модели.
По умолчанию отдельные оценки параметра используются для симуляции групп от исходной подгонки, в то время как параметры населения используются для новых групп, если таковые имеются. Смотрите value
описание аргумента для деталей.
Общее количество результатов симуляции в выходе ynew
зависит от количества групп или выходных временных векторов в data
и количество строк в dosing
матрица. Для получения дополнительной информации см. таблицу в ynew
описание аргумента.
dosing
— Информация о дозах[]
| {}
| 2D матрица дозы возражает | вектор ячейки из объектов дозыИнформация о дозах в виде пустого []
или {}
, 2D матрица или вектор ячейки из объектов дозы SimBiology (ScheduleDose object
или RepeatDose object
).
Если dosing
пусто, никакие дозы не применяются в процессе моделирования, даже если модель имеет активные дозы.
Для матрицы объектов дозы это должно иметь одну строку или одну строку на группу во входных данных. Если это имеет одну строку, те же дозы применяются ко всем группам в процессе моделирования. Если это имеет несколько строк, каждая строка применяется к отдельной группе в том же порядке, как группы появляются во входных данных. Несколько столбцов позволены так, чтобы можно было применить несколько объектов дозы к каждой группе.
Для вектора ячейки из доз это должно иметь один элемент или один элемент на группу во входных данных. Каждым элементом должен быть []
или вектор из доз. Каждый элемент ячейки применяется к отдельной группе в том же порядке, как группы появляются во входных данных.
В дополнение к ручному построению использования объектов дозы sbiodose
, если вход groupedData
объект имеет информацию о дозах, можно использовать createDoses
метод, чтобы создать дозы.
Объекты дозы dosing
введите должно быть сопоставимо с исходными данными о дозировании, используемыми с sbiofitmixed
. Объекты должны иметь те же значения для свойств дозы (таких как TargetName
) или должен быть параметрирован таким же образом как исходные данные о дозировании. Например, предположите, что исходная матрица дозирования имеет два столбца доз, где дозы в первом столбце предназначаются для разновидностей x и тех во вторых целевых разновидностях y столбца. Затем dosing
должен иметь дозы в первом столбце, предназначающемся для разновидностей x и тех во втором столбце, предназначающемся для разновидностей y. Параметрированный пример дозы следующие. Предположим что Amount
свойство дозы используется в оригинале sbiofitmixed
вызов параметрируется к ограниченному по объему моделью параметру 'A'
. Все дозы для соответствующей группы (столбец) в dosing
матричный вход должен иметь Amount
свойство параметрируется к 'A'
.
Количество строк в dosing
элементы матрицы или число элементов в dosing
вектор ячейки и количество групп или выходных временных векторов в data
определите общее количество результатов симуляции в выходе ynew
. Для получения дополнительной информации см. таблицу в ynew
описание аргумента.
Примечание
Если UnitConversion
включен для базовой модели SimBiology, которая использовалась для подбора кривой, dosing
должен задать допустимую сумму и единицы измерения времени.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'ParameterType','population'
задает, чтобы использовать оценки параметра населения. ParameterType
— Тип параметра'individual'
(значение по умолчанию) | 'population'
Тип параметра в виде 'individual'
(значение по умолчанию) или 'population'
. Если value
'population'
, predict
метод возвращает результаты симуляции с помощью оценок параметра населения, то есть, значения параметров, которые оцениваются с помощью зафиксированных эффектов (θs) только. Предполагаемые значения параметров, используемые в симуляции, идентичны тем в resultsObj.PopulationParameterEstimates
свойство, если вы не задаете новый groupedData
объект data
с новыми ковариационными данными. В этом случае метод переоценивает ковариационную модель и оценки параметра на основе нового groupedData
и ковариационные данные.
Если value
'individual'
, метод возвращает результаты симуляции с помощью соответствующих значений параметров группы в resultsObj.IndividualParameterEstimates
свойство. Эти значения включают и зафиксированный - и оценки случайных эффектов, то есть, значения параметров, оцененные с помощью и зафиксированных эффектов (θs) и случайных эффектов (ηs). Если data
содержит новые группы, только зафиксированные эффекты (оценки параметра населения объекта результатов) используются для этих групп.
По умолчанию, predict
использует отдельные оценки параметра объекта результатов когда data
isa groupedData
объект. Если data
вектор выходных времен или массив ячеек векторов, predict
использует оценки параметра населения объекта результатов вместо этого.
Типы данных: char |
string
Variants
— Варианты, чтобы применяться[]
| {}
| 2D матрица вариантов | вектор ячейки из вариантовВарианты, чтобы применяться в виде пустого массива ([]
, {}
), 2D матрица или вектор ячейки из различных объектов.
Если вы не задаете этот аргумент, функция имеет следующее поведение в зависимости от ли второй входной параметр (data
) задан также или нет.
Если data
не задан, функция применяет специфичные для группы варианты от исходного вызова до sbiofitmixed
.
Если data
векторный массив или массив ячеек выходных времен, функция не применяет специфичные для группы варианты.
Если data
groupedData
объект, функция применяет варианты только к группам, идентификатор группы которых совпадает с идентификатором группы в исходных обучающих данных, который использовался в вызове sbiofitmixed
.
Примечание
Базовые варианты, которые были заданы вариантами позиционный входной параметр в исходном вызове sbiofitmixed
всегда применяются к модели, и они применяются перед любыми специфичными для группы вариантами.
Если нет никаких базовых вариантов, то есть, вы не задавали variants
введите при вызове sbiofitmixed
, функция все еще применяет активные варианты модели, если существует кто-либо.
Если значением аргумента является []
или {}
, функция не применяет специфичных для группы вариантов.
Если это - матрица вариантов, это должно иметь или одну строку или одну строку на группу. Каждая строка применяется к отдельной группе в том же порядке, как группы появляются в data
или dosing
. Если это имеет одну строку, те же варианты применяются ко всем группам в процессе моделирования. Если существует несколько столбцов, варианты применяются в порядке от первого столбца до последнего.
Если это - вектор ячейки из различных объектов, количество ячеек должно быть один или должно совпадать с количеством групп во входных данных. Каждым элементом должен быть []
или вектор из вариантов. Если существует отдельная ячейка, содержащая вектор из вариантов, они применяются ко всем симуляциям. Если существует несколько ячеек, варианты в i th ячейка применяются к симуляции i th группа.
Функция задает количество групп путем исследования data
, и dosing
входные параметры.
data
может иметь 1
или группы N.
Если data
и dosing
аргументы не заданы, затем данные по умолчанию и дозирование определяются можно следующим образом:
Для необъединенных подгонок они - данные и дозирующий для одной группы, сопоставленной с этим результаты подгонки.
Для всех других подгонок они - целый набор данных и дозирования связанного с вызовом sbiofitmixed
.
ynew
— Результаты симуляцииSimData
объектыРезультаты симуляции, возвращенные как вектор из SimData
объекты. О состояниях сообщают в ynew
состояния, включенные в responseMap
входной параметр sbiofitmixed
и любые другие состояния, перечисленные в StatesToLog
свойство опций во время выполнения (RuntimeOptions
) из модели SimBiology.
Общее количество результатов симуляции в ynew
зависит от количества групп или выходных временных векторов в data
и количество строк в dosing
матрица.
Количество групп или выходных временных векторов в data | Количество строк в dosing матрица | Результаты симуляции |
---|---|---|
1 | 0 | Общее количество Никакие дозы не применяются в процессе моделирования. |
1 | 1 | Общее количество Данная строка доз применяется во время симуляции. |
1 | N | Общее количество Каждая строка |
N | 0 | Общее количество Никакие дозы не применяются в процессе моделирования. |
N | 1 | Общее количество Та же строка доз применяется к каждой симуляции. |
N | N | Общее количество Каждая строка |
M | N | Функция выдает ошибку когда M ≠ N. |
parameterEstimates
— Предполагаемые значения параметровПредполагаемые значения параметров используются для предсказанных результатов симуляции, возвращенных как таблица.
Если 'ParameterType'
'individual'
, значения параметров, о которых сообщают, идентичны значениям в resultsObj.IndividualParameterEstimates
свойство. Однако, если data
содержит новые группы, затем только оценки параметра населения (зафиксированные эффекты) используются для этих групп. Соответствующие значения, о которых сообщают, в parameterEstimates
поскольку эти группы идентичны значениям в resultsObj.PopulationParameterEstimates
.
Если 'ParameterType'
'population'
, значения параметров, о которых сообщают, идентичны значениям в resultsObj.PopulationParameterEstimates
свойство, если вы не указываете новую ковариационную информацию в data
. Смотрите value
описание аргумента для деталей.
Если data
вектор или массив ячеек векторов выходных времен, значения параметров, о которых сообщают, идентичны значениям в resultsObj.PopulationParameterEstimates
. Кроме того, группы сообщили, представляют перечисление выполняемых симуляций и не связаны с названиями группы в исходной подгонке.
NLMEResults object
| sbiofitmixed
| sbiosampleparameters
| sbiosampleerror
| CovariateModel object
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.