Сравните результаты симуляции с обучающими данными, создав подграфик курса времени для каждой группы
plot(
отображает фигуру, показывающую сравнение между результатами симуляции к обучающим данным, с подграфиком курса времени для каждой группы.resultsObj
)
plot(
дополнительные опции использования заданы одними или несколькими аргументами name-value. resultsObj
,Name,Value
)
Загрузите набор выборочных данных.
load data10_32R.mat gData = groupedData(data); gData.Properties.VariableUnits = ["","hour","milligram/liter","milligram/liter"];
Создайте модель PK 2D отсека.
pkmd = PKModelDesign; pkc1 = addCompartment(pkmd,"Central"); pkc1.DosingType = "Infusion"; pkc1.EliminationType = "linear-clearance"; pkc1.HasResponseVariable = true; pkc2 = addCompartment(pkmd,"Peripheral"); model = construct(pkmd); configset = getconfigset(model); configset.CompileOptions.UnitConversion = true; responseMap = ["Drug_Central = CentralConc","Drug_Peripheral = PeripheralConc"];
Обеспечьте параметры модели, чтобы оценить.
paramsToEstimate = ["log(Central)","log(Peripheral)","Q12","Cl_Central"]; estimatedParam = estimatedInfo(paramsToEstimate,'InitialValue',[1 1 1 1]);
Примите, что каждый индивидуум получает капельное внутривенное введение во время = 0 с общим объемом вливания 100 мг на уровне 50 мг/час.
dose = sbiodose("dose","TargetName","Drug_Central"); dose.StartTime = 0; dose.Amount = 100; dose.Rate = 50; dose.AmountUnits = "milligram"; dose.TimeUnits = "hour"; dose.RateUnits = "milligram/hour";
Оцените параметры модели. По умолчанию функция оценивает набор параметра для каждого индивидуума (необъединенная подгонка).
fitResults = sbiofit(model,gData,responseMap,estimatedParam,dose);
Постройте график результатов.
plot(fitResults);
Постройте все группы в одном графике.
plot(fitResults,"PlotStyle","one axes");
Измените некоторые свойства осей.
s = struct; s.Properties.XGrid = "on"; s.Properties.YGrid = "on"; plot(fitResults,"PlotStyle","one axes","AxesStyle",s);
Сравните предсказания модели с фактическими данными.
plotActualVersusPredicted(fitResults)
Используйте boxplot
показать изменение предполагаемых параметров модели.
boxplot(fitResults)
Постройте распределение остаточных значений. Этот график нормального распределения показывает отклонение от нормальности и скошенности на правом хвосте распределения остаточных значений. (Постоянная) ошибка по умолчанию сила модели не быть правильным предположением для адаптируемых данных.
plotResidualDistribution(fitResults)
Постройте остаточные значения для каждого ответа с помощью предсказаний модели на оси X.
plotResiduals(fitResults,"Predictions")
Получите сводные данные результатов подгонки. stats.Name
содержит имя для каждой таблицы от stats.Table
, который содержит список таблиц с предполагаемыми значениями параметров и подходящей качественной статистикой.
stats = summary(fitResults); stats.Name
ans = 'Unpooled Parameter Estimates'
ans = 'Statistics'
ans = 'Unpooled Beta'
ans = 'Residuals'
ans = 'Covariance Matrix'
ans = 'Error Model'
stats.Table
ans=3×9 table
Group Central Estimate Central StandardError Peripheral Estimate Peripheral StandardError Q12 Estimate Q12 StandardError Cl_Central Estimate Cl_Central StandardError
_____ ________________ _____________________ ___________________ ________________________ ____________ _________________ ___________________ ________________________
{'1'} 1.422 0.12334 1.5619 0.36355 0.47163 0.15196 0.5291 0.036978
{'2'} 1.8322 0.019672 5.3364 0.65327 0.2764 0.030799 0.86035 0.026257
{'3'} 1.6657 0.038529 5.5632 0.37063 0.78361 0.058657 1.0233 0.027311
ans=3×7 table
Group AIC BIC LogLikelihood DFE MSE SSE
_____ _______ _______ _____________ ___ ________ _______
{'1'} 60.961 64.051 -26.48 12 2.138 25.656
{'2'} -7.8379 -4.7475 7.9189 12 0.029012 0.34814
{'3'} -1.4336 1.6567 4.7168 12 0.043292 0.5195
ans=3×9 table
Group Central Estimate Central StandardError Peripheral Estimate Peripheral StandardError Q12 Estimate Q12 StandardError Cl_Central Estimate Cl_Central StandardError
_____ ________________ _____________________ ___________________ ________________________ ____________ _________________ ___________________ ________________________
{'1'} 0.35208 0.086736 0.44589 0.23277 0.47163 0.15196 0.5291 0.036978
{'2'} 0.60551 0.010737 1.6746 0.12242 0.2764 0.030799 0.86035 0.026257
{'3'} 0.51027 0.02313 1.7162 0.066621 0.78361 0.058657 1.0233 0.027311
ans=24×4 table
ID Time CentralConc PeripheralConc
__ ____ ___________ ______________
1 0 0 0
1 1 0.10646 -0.74394
1 4 1.3745 1.2726
1 8 -0.68825 -4.2435
1 12 0.67383 0.21806
1 18 0.88823 1.0269
1 24 0.48941 0.66755
1 36 0.13632 0.22948
2 0 0 0
2 1 -0.026731 -0.058311
2 4 -0.033299 -0.20544
2 8 -0.20466 0.20696
2 12 -0.12223 0.045409
2 18 0.041224 0.33883
2 24 -0.059498 0.0036257
2 36 -0.051645 0.27616
⋮
ans=12×6 table
Group Parameters log(Central) log(Peripheral) Q12 Cl_Central
_____ ___________________ ____________ _______________ ___________ ___________
{'1'} {'log(Central)' } 0.015213 -0.022539 -0.0086672 0.001159
{'1'} {'log(Peripheral)'} -0.022539 0.13217 0.045746 -0.0073135
{'1'} {'Q12' } -0.0086672 0.045746 0.023092 -0.0021484
{'1'} {'Cl_Central' } 0.001159 -0.0073135 -0.0021484 0.0013674
{'2'} {'log(Central)' } 0.00038701 -0.002161 -0.00010177 9.7448e-05
{'2'} {'log(Peripheral)'} -0.002161 0.42676 0.019101 -0.015755
{'2'} {'Q12' } -0.00010177 0.019101 0.00094857 -0.00073328
{'2'} {'Cl_Central' } 9.7448e-05 -0.015755 -0.00073328 0.00068942
{'3'} {'log(Central)' } 0.0014845 -0.0054648 -0.0013216 0.00016639
{'3'} {'log(Peripheral)'} -0.0054648 0.13737 0.016903 -0.0072722
{'3'} {'Q12' } -0.0013216 0.016903 0.0034406 -0.00082538
{'3'} {'Cl_Central' } 0.00016639 -0.0072722 -0.00082538 0.00074587
ans=3×5 table
Group Response ErrorModel a b
_____ __________ ____________ _______ ___
{'1'} {0x0 char} {'constant'} 1.2663 NaN
{'2'} {0x0 char} {'constant'} 0.14751 NaN
{'3'} {0x0 char} {'constant'} 0.18019 NaN
resultsObj
— Результаты оценкиOptimResults
возразите | NLINResults
возразите | вектор из объектов результатовОценка заканчивается в виде OptimResults object
или NLINResults object
, или вектор из объектов результатов, который содержит оценку, следует из выполнения sbiofit
.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
plot(fitResults,'PlotStyle','one axes')
задает, чтобы отобразить данные на графике от каждого, сталкивается с осями вместо того, чтобы строить каждый запуск индивидуально как подграфик.ParameterType
— Тип параметра оценивает, чтобы построить'individual'
(значение по умолчанию)Тип параметра оценивает, чтобы построить в виде 'individual'
. Для LeastSquaresResults
объекты, 'individual'
единственная опция указывает, чтобы использовать отдельные оценки параметра, чтобы построить результаты симуляции.
Типы данных: char |
string
PlotStyle
— Стиль графика'trellis'
(значение по умолчанию) | 'one axes'
Стиль графика в виде 'trellis'
или 'one axes'
. По умолчанию графики функций данные от каждого сталкиваются с его собственным подграфиком. Чтобы отобразить все данные на графике в один график, используйте 'one axes'
.
Типы данных: char |
string
AxesStyle
Свойства осей графикаСвойства осей в виде структуры. Структура (s
) имеет имена следующего поля и значения, представляющие свойства осей.
Имя поля | Значение |
---|---|
s.Labels.Title | Вектор символов или строковый скаляр. |
s.Labels.XLabel | Вектор символов или строковый скаляр. |
s.Labels.YLabel | Вектор символов или строковый скаляр. |
s.Properties.XGrid | 'off' (значение по умолчанию) или 'on' |
s.Properties.XScale | 'linear' (значение по умолчанию) или 'log' |
s.Properties.XDir | 'normal' (значение по умолчанию) или 'reverse' |
s.Properties.XLim | Двухэлементный вектор из формы [min max] |
s.Properties.YGrid | 'off' (значение по умолчанию) или 'on' |
s.Properties.YScale | 'linear' (значение по умолчанию) или 'log' |
s.Properties.YDir | 'normal' (значение по умолчанию) или 'reverse' |
s.Properties.YLim | Двухэлементный вектор из формы [min max] |
Типы данных: structure
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.