Выполните мультипараметрический анализ глобальной чувствительности (требует Statistics and Machine Learning Toolbox)
выполняет мультипараметрический анализ глобальной чувствительности (MPGSA) [1] mpgsaResults
= sbiompgsa(modelObj
,params
,classifiers
)classifiers
относительно параметров модели params
на модели SimBiology modelObj
. params
являются величинами модели (входные входы чувствительности) и classifiers
задайте выражения характеристик модели (выходные выходы модели).
использует mpgsaResults
= sbiompgsa(modelObj
,samples
,classifiers
)samples параметров
для выполнения мультипараметрического глобального анализа чувствительности classifiers
.
использует симуляцию модели данных mpgsaResults
= sbiompgsa(simdata
,samples
,classifiers
)simdata
для выполнения мультипараметрического глобального анализа чувствительности classifiers
.
использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Доступные пары "имя-значение" различаются в зависимости от того, какой синтаксис вы используете.mpgsaResults
= sbiompgsa(___,Name,Value
)
Загрузите модель диспозиции лекарственных средств, опосредованных мишенью (TMDD).
sbioloadproject tmdd_with_TO.sbproj
Получите активный конфигурационный набор и установите целевое заполнение (TO
) как ответ.
cs = getconfigset(m1);
cs.RuntimeOptions.StatesToLog = 'TO';
Симулируйте модель и постройте график TO
профиль.
sbioplot(sbiosimulate(m1,cs));
Определите порог воздействия (область под кривой профиля ТО) для целевой заполненности.
classifier = 'trapz(time,TO) <= 0.1';
Выполните MPGSA, чтобы найти чувствительные параметры относительно TO. Измените значения параметров между предопределенными границами, чтобы сгенерировать 10000 выборок параметров.
% Suppress an information warning that is issued during simulation. warnSettings = warning('off', 'SimBiology:sbservices:SB_DIMANALYSISNOTDONE_MATLABFCN_UCON'); rng(0,'twister'); % For reproducibility params = {'kel','ksyn','kdeg','km'}; bounds = [0.1, 1; 0.1, 1; 0.1, 1; 0.1, 1]; mpgsaResults = sbiompgsa(m1,params,classifier,'Bounds',bounds,'NumberSamples',10000)
mpgsaResults = MPGSA with properties: Classifiers: {'trapz(time,TO) <= 0.1'} KolmogorovSmirnovStatistics: [4x1 table] ECDFData: {4x4 cell} SignificanceLevel: 0.0500 PValues: [4x1 table] SupportHypothesis: [10000x1 table] Observables: {'TO'} ParameterSamples: [10000x4 table] SimulationInfo: [1x1 struct]
Постройте график квантилей отклика моделируемой модели.
plotData(mpgsaResults);
Постройте график эмпирических кумулятивных функций распределения (eCDFs) принятых и отклоненных выборок. Кроме km
ни один из параметров не показывает значительного различия в eCDF для принятых и отклонённых выборок. The km
график показывает большое расстояние Колмогоров-Смирнов (К-С) между eCDF принятых и отклонённых выборок. Расстояние K-S является максимальным абсолютным расстоянием между двумя кривыми eCDFs.
h = plot(mpgsaResults);
% Resize the figure.
pos = h.Position(:);
h.Position(:) = [pos(1) pos(2) pos(3)*2 pos(4)*2];
Чтобы вычислить расстояние K-S между двумя eCDF, SimBiology использует двусторонний тест, основанный на нулевой гипотезе, что два распределения принятых и отклоненных выборок равны. См. kstest2
(Statistics and Machine Learning Toolbox) для получения дополнительной информации. Если расстояние K-S большое, то два распределения различаются, что означает, что классификация выборок чувствительна к изменениям в параметре входа. С другой стороны, если расстояние K-S мало, то изменения в параметре входа не влияют на классификацию выборок. Результаты предполагают, что классификация нечувствительна к параметру входа. Чтобы оценить значимость статистики K-S, отвергающей нулевую гипотезу, можно изучить p-значения.
bar(mpgsaResults)
На столбиковую диаграмму показаны две полосы для каждого параметра: одна для расстояния K-S (статистика K-S) и другая для соответствующего p-значения. Вы отвергаете нулевую гипотезу, если p-значение меньше уровня значимости. Крест (x
) показан для любого значения p, которое почти 0. Вы можете увидеть точное значение p, соответствующее каждому параметру.
[mpgsaResults.ParameterSamples.Properties.VariableNames',mpgsaResults.PValues]
ans=4×2 table
Var1 trapz(time,TO) <= 0.1
________ _____________________
{'kel' } 0.0021877
{'ksyn'} 1
{'kdeg'} 0.99983
{'km' } 0
Значения p km
и kel
меньше уровня значимости (0,05), что подтверждает альтернативную гипотезу о том, что принятые и отклоненные выборки происходят из различных распределений. Другими словами, классификация выборок чувствительна к km
и kel
но не к другим параметрам (kdeg
и ksyn
).
Можно также построить гистограммы принятых и отклонённых выборок. Исторические граммы позволяют вам увидеть тренды в принятых и отклонённых выборках. В этом примере гистограмма km
показывает, что существуют больше принятых выборок для больших km
значений, в то время как kel
гистограмма показывает, что отклонённых выборок меньше, чем kel
увеличивается.
h2 = histogram(mpgsaResults);
% Resize the figure.
pos = h2.Position(:);
h2.Position(:) = [pos(1) pos(2) pos(3)*2 pos(4)*2];
Восстановите параметры предупреждения.
warning(warnSettings);
modelObj
- SimBiology модельSimBiology модель, заданная как SimBiology model object
.
params
- Имена параметров модели, видов или отсековИмена параметров модели, видов или отделов, заданные как вектор символов, строка, строковый вектор или массив ячеек из векторов символов.
Пример: ["k1","k2"]
Типы данных: char
| string
| cell
simdata
- Моделирование данных моделированияSimData
объектыДанные моделирования модели, заданные как вектор SimData
объекты.
classifiers
- Выражения моделей откликовВыражения ответов модели, заданные как вектор символов, строка, строковый вектор или массив ячеек векторов символов. Задайте выражения, ссылающиеся на моделируемые величины модели, наблюдаемые, время или функции MATLAB, которые находятся в пути.
Каждый классификатор должен вычислить логический вектор той же длины, что и количество выборок параметра. Сущности, такие как величины модели или наблюдаемые, на которые ссылаются в выражении классификатора, оцениваются как матрица со столбцами, содержащими временные курсы моделируемых значений величины. Каждый столбец представляет одну выборку. Для получения дополнительной информации смотрите Мультипараметрический глобальный анализ чувствительности (MPGSA).
Если вы задаете SimData
объект как первый вход, каждая величина или observable
, на который ссылается классификатор, должен разрешиться к записанному компоненту в SimData
объект.
Пример: "max(Central.Drug(time > 1,:),[],1) <= 7"
Типы данных: char
| string
| cell
samples
- Выборочные значения величин моделиВыборочные значения величин модели, заданные как таблица. Имена переменных таблицы указывают имена количеств.
Типы данных: table
mpgsaResults = sbiompgsa(m1,{'k1','k2'},classifier,'Bounds',[0.5 5;0.1 1])
задает ограничения параметров для k1 и k2.Задайте один или несколько разделенные запятой пары Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
Примечание
В зависимости от того, какой синтаксис вы используете, доступные пары "имя-значение" различаются.
'Bounds'
- Параметрические границыГраницы параметра, заданные как разделенная разделенными запятой парами, состоящая из 'Bounds'
и числовую матрицу с двумя столбцами. Первый столбец содержит нижние границы, а второй - верхние границы. Количество строк должно быть равно количеству параметров в params
.
Если параметр имеет ненулевое значение, ограничения по умолчанию составляют ± 10% от значения. Если значение параметров меньше нуля, границы по умолчанию [0 1]
.
Пример: [0.5 5]
Типы данных: double
'NumberSamples'
- Количество выборок, взятых для выполнения мультипараметрического глобального анализа чувствительности1000
(по умолчанию) | положительное целое числоКоличество выборок, извлеченных для выполнения мультипараметрического глобального анализа чувствительности, заданное как разделенная разделенными запятой парами, состоящая из 'NumberSamples'
и положительное целое число.
Типы данных: double
'SamplingMethod'
- Метод для генерации выборок параметров'Sobol'
(по умолчанию) | вектор символов | строкаМетод для генерации выборок параметров, заданный как разделенная разделенными запятой парами, состоящая из 'SamplingMethod'
и вектор символов или строка. Допустимые опции:
'Sobol'
- Используйте низкорасходную последовательность Соболя для генерации выборок.
'Halton'
- Используйте низко-несоответствующую последовательность Хэлтона, чтобы сгенерировать выборки.
'lhs'
- Используйте низкорасходные латинские выборки гиперкуба.
'random'
- Используйте равномерно распределенные случайные выборки.
Типы данных: char
| string
'Doses'
- Дозы для использования во время симуляцийScheduleDose
| объекта RepeatDose
объект | вектор объектов дозыДозы для использования во время симуляций модели, заданные как разделенная запятой пара, состоящие из 'Doses'
и a ScheduleDose
или RepeatDose
объект или вектор объектов дозы.
'Variants'
- Варианты, применяемые перед симуляциямиВарианты, применяемые до симуляций модели, заданные как разделенная запятой пара, состоящие из 'Variants'
и объект варианта или вектор варианта объектов.
Когда существует несколько вариантов и если существуют повторяющиеся спецификации для значения свойства, последнее вхождение для значения свойства в массиве вариантов используется во время симуляции.
'StopTime'
- Время остановки симуляцииВремя остановки симуляции, заданное как разделенная разделенными запятой парами, состоящая из 'StopTime'
и неотрицательный скаляр. Если вы не задаете ни одного StopTime
ни OutputTimes
функция использует время остановки из активной конфигурации модели модели. Вы не можете задать оба StopTime
и OutputTimes
.
Типы данных: double
'UseParallel'
- Флаг, чтобы запустить симуляции модели параллельноfalse
(по умолчанию) | true
Флаг для выполнения симуляций модели параллельно, заданный как разделенная разделенными запятой парами, состоящая из 'UseParallel'
и true
или false
.
Типы данных: logical
'Accelerate'
- Флаг для включения ускорения моделиtrue
(по умолчанию) | false
Флаг для включения ускорения модели, заданный как разделенная разделенными запятой парами, состоящая из 'Accelerate'
и true
или false
.
Типы данных: logical
'OutputTimes'
- Время вывода симуляцииВремя вывода симуляции, заданное как разделенная разделенными запятой парами, состоящая из 'OutputTimes'
и числовой вектор. Функция вычисляет отклики модели в этих выходных временных точках. Вы не можете задать оба StopTime
и OutputTimes
. По умолчанию функция использует время выхода первой симуляции модели.
Пример: [0 1 2 3.5 4 5 5.5]
Типы данных: double
'SignificanceLevel'
- Уровень значимости критерия Колмогорова-Смирнова0.05
(по умолчанию) | числовой скаляр между 0 и 1Уровень значимости для теста Колмогорова-Смирнова, заданный как разделенная разделенными запятой парами, состоящая из 'SignificanceLevel'
и числовой скаляр между 0 и 1. Для получения дополнительной информации смотрите Двухвыборочный критерий Колмогорова-Смирнова (Statistics and Machine Learning Toolbox).
Пример: 0.1
Типы данных: double
'InterpolationMethod'
- Метод интерполяции симуляций модели"interp1q"
(по умолчанию) | вектор символов | строкаМетод интерполяции симуляций модели к новым временам выхода, заданный как разделенная разделенными запятой парами, состоящая из 'InterpolationMethod'
и вектор символов или строка. Далее приводятся допустимые опции.
Типы данных: char
| string
mpgsaResults
- Результаты многопараметрического глобального анализа чувствительностиSimBiology.gsa.MPGSA
объектМультипараметрические результаты глобального анализа чувствительности, возвращенные как SimBiology.gsa.MPGSA
объект. Объект также содержит данные симуляции модели, используемые для выполнения MPGSA.
Мультипараметрический анализ глобальной чувствительности позволяет вам изучить относительную важность параметров относительно классификатора, заданного откликами модели. Классификатор является выражением ответов модели, которое вычисляется логическим вектором. sbiompgsa
реализует метод MPSA, описанный Tiemann et. al. (см. вспомогательный информационный текст S2) [1].
sbiompgsa
выполняет следующие шаги.
Сгенерируйте N выборки параметров с помощью метода дискретизации. sbiompgsa
сохраняет эти выборки как таблицу в свойстве, mpgsaResults.ParameterSamples
, возвращенного объекта. Количество строк равно количеству выборок, а количество столбцов равно количеству параметров входа.
Совет
Можно задать N и метод дискретизации, используя 'NumberSamples'
и 'SamplingMethod'
Аргументы пары "имя-значение", соответственно, когда вы вызываете sbiompgsa
.
Вычислите ответ модели путем симуляции модели для каждого набора параметров, что является одной реализацией значений параметров модели. В этом случае набор параметров равен строке в ParameterSamples
таблица.
Оцените классификатор. Классификатор является выражением, которое вычисляется логическим вектором. Например, если ваш модельный ответ является AUC концентрации препарата в плазме, можно задать классификатор с порогом токсичности 0,8, где AUC концентрации препарата выше этого порога считается токсичным.
Наборы параметров затем разделяются на две различные группы, такие как принятые (нетоксические) и отклоненные (токсичные) группы.
Для каждого входного параметра вычислите эмпирические совокупные функции распределения (ecdf
(Statistics and Machine Learning Toolbox)) принятых и отклоненных выборочных значений.
Сравнение двух eCDF принятых и отклоненных групп с помощью Двухвыборочного критерия Колмогорова-Смирнова (Statistics and Machine Learning Toolbox) для вычисления расстояния Колмогорова - Смирнова. Уровень значимости по умолчанию критерия Колмогорова-Смирнова 0.05
. Если два eCDF похожи, расстояние мало, что означает, что реакция модели не чувствительна относительно параметра входа. Если два eCDF отличаются, расстояние большое, что означает, что реакция модели чувствительна к параметру.
Примечание
Тест Колмогорова-Смирнова принимает, что выборки следуют непрерывному распределению. Убедитесь, что графики eCDF непрерывны, когда вы увеличиваете количество выборок. Если eCDF не непрерывны, но являются ступенчатыми в пределе бесконечных выборок, то результаты могут не отражать истинную чувствительность.
[1] Tiemann, Christian A., Joep Vanlier, Maaike H. Oosterveer, Albert K. Groen, Peter A. J. Hilbers, and Natal A. W. van Riel. «Анализ траектории параметра для выявления эффектов лечения фармакологических вмешательств». Под редакцией Скотта Маркела. PLoS Вычислительная биология 9, № 8 (1 августа 2013): e1003166. https://doi.org/10.1371/journal.pcbi.1003166.
Observable
| sbiosobol
| SimBiology.gsa.MPGSA
| ecdf
(Statistics and Machine Learning Toolbox) | kstest2
(Statistics and Machine Learning Toolbox)
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.