Выполните мультипараметрический глобальный анализ чувствительности (требует 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
Получите активный configset и установите целевое заполнение (TO
) как ответ.
cs = getconfigset(m1);
cs.RuntimeOptions.StatesToLog = 'TO';
Симулируйте модель и постройте TO
профиль.
sbioplot(sbiosimulate(m1,cs));
Задайте воздействие (область под кривой профиля TO) порог для целевого заполнения.
classifier = 'trapz(time,TO) <= 0.1';
Выполните MPGSA, чтобы найти чувствительные параметры относительно TO. Варьируйтесь значения параметров между предопределенными границами, чтобы сгенерировать 10 000 выборок параметра.
% 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
, ни один из параметров не показывает значительную разницу в eCDFs для принятых и отклоненных выборок. km
постройте показывает крупному Кольмогорову-Смирнову (K-S) расстояние между eCDFs принятых и отклоненных выборок. Расстояние 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 между двумя eCDFs, 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
).
Можно также построить гистограммы принятых и отклоненных выборок. historgrams позволяют вам видеть тренды в принятых и отклоненных выборках. В этом примере, гистограмме 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
— Выражения ответов моделиВыражения ответов модели в виде вектора символов, строки, представляют в виде строки вектор или массив ячеек из символьных векторов. Задайте выражения, ссылающиеся на симулированные количества модели, observables, время или функции MATLAB, которые находятся на пути.
Каждый классификатор должен оценить к логическому вектору из той же длины как количество выборок параметра. Сущности, такие как количества модели или observables, на который ссылаются в выражении классификатора, оценены как матрица со столбцами, содержащими курсы времени симулированных значений количества. Каждый столбец представляет одну выборку. Для получения дополнительной информации смотрите Мультипараметрический Глобальный Анализ чувствительности (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'
— Количество выборок, чертивших, чтобы выполнить мультипараметрический глобальный анализ чувствительности
(значение по умолчанию) | положительное целое числоКоличество выборок, чертивших, чтобы выполнить мультипараметрический глобальный анализ чувствительности в виде разделенной запятой пары, состоящей из 'NumberSamples'
и положительное целое число.
Типы данных: double
'SamplingMethod'
— Метод, чтобы сгенерировать выборки параметра'Sobol'
(значение по умолчанию) | вектор символов | строкаМетод, чтобы сгенерировать выборки параметра в виде разделенной запятой пары, состоящей из 'SamplingMethod'
и вектор символов или строка. Допустимые опции:
'Sobol'
— Используйте низкое несоответствие последовательность Sobol, чтобы сгенерировать выборки.
'Halton'
— Используйте низкое несоответствие последовательность Холтона, чтобы сгенерировать выборки.
'lhs'
— Используйте латинские выборки гиперкуба низкого несоответствия.
'random'
— Используйте равномерно распределенные случайные выборки.
Типы данных: char |
string
'Doses'
— Дозы, чтобы использовать во время симуляцийScheduleDose
возразите | RepeatDose
возразите | вектор из объектов дозыДозы, чтобы использовать во время симуляций модели в виде разделенной запятой пары, состоящей из 'Doses'
и ScheduleDose
или RepeatDose
возразите или вектор из объектов дозы.
'Variants'
— Варианты, чтобы применяться перед симуляциямиВарианты, чтобы применяться перед симуляциями модели в виде разделенной запятой пары, состоящей из 'Variants'
и различный объект или вектор из различных объектов.
Когда существует несколько вариантов и если существуют дублирующиеся технические требования для значения свойства, последнее вхождение для значения свойства в массиве вариантов используется в процессе моделирования.
'StopTime'
— Время остановки симуляцииВремя остановки симуляции в виде разделенной запятой пары, состоящей из 'StopTime'
и неотрицательный скаляр. Если вы не задаете никакой StopTime
ни OutputTimes
, функция использует время остановки от активной конфигурации модели модели. Вы не можете задать оба StopTime
и OutputTimes
.
Типы данных: double
'UseParallel'
— Отметьте, чтобы запустить симуляции модели параллельноfalse
(значение по умолчанию) | true
Отметьте, чтобы запустить симуляции модели параллельно в виде разделенной запятой пары, состоящей из 'UseParallel'
и true
или false
.
Типы данных: логический
'Accelerate'
— Отметьте, чтобы включить ускорение моделиtrue
(значение по умолчанию) | false
Отметьте, чтобы включить ускорение модели в виде разделенной запятой пары, состоящей из 'Accelerate'
и true
или false
.
Типы данных: логический
'OutputTimes'
— Simulation времена выходаSimulation времена выхода в виде разделенной запятой пары, состоящей из 'OutputTimes'
и числовой вектор. Функция вычисляет ответы модели в этих выходных моментах времени. Вы не можете задать оба StopTime
и OutputTimes
. По умолчанию функция использует выходные времена первой симуляции модели.
Пример: [0 1 2 3.5 4 5 5.5]
Типы данных: double
'SignificanceLevel'
— Уровень значения для теста Кольмогорова-Смирнова
(значение по умолчанию) | числовой скаляр между 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, описанный Тиманном и. al. (см. текст информации о поддержке S2) [1].
sbiompgsa
выполняет следующие шаги.
Сгенерируйте выборки параметра N с помощью метода выборки. sbiompgsa
хранилища эти выборки как таблица в свойстве, mpgsaResults.ParameterSamples
, из возвращенного объекта. Количество строк равно количеству выборок, и количество столбцов равно количеству входных параметров.
Совет
Можно задать N и метод выборки с помощью 'NumberSamples'
и 'SamplingMethod'
аргументы пары "имя-значение", соответственно, когда вы вызываете sbiompgsa
.
Вычислите ответ модели путем симуляции модели для каждого набора параметров, который является одной реализацией значений параметра модели. В этом случае набор параметров равен строке в ParameterSamples
таблица.
Оцените классификатор. Классификатор является выражением, которое оценивает к логическому вектору. Например, если ваш ответ модели является AUC плазменной концентрации препарата, можно задать классификатор с порогом токсичности 0,8, где AUC концентрации препарата выше того порога рассматривается токсичным.
Наборы параметров затем разделены на две различных группы, такой как принятые (нетоксичный) и отклонили (токсичные) группы.
Для каждого входного параметра вычислите эмпирические кумулятивные функции распределения (ecdf
(Statistics and Machine Learning Toolbox)) принятых и отклоненных демонстрационных значений.
Сравните два eCDFs принятых и отклоненных групп, использующих Двухвыборочный критерий Колмогорова-Смирнова (Statistics and Machine Learning Toolbox), чтобы вычислить расстояние Кольмогорова-Смирнова. Уровнем значения по умолчанию теста Кольмогорова-Смирнова является 0.05
. Если два eCDFs подобны, расстояние мало, означая, что ответ модели не чувствителен относительно входного параметра. Если два eCDFs отличаются, расстояние является большим, означая, что ответ модели чувствителен к параметру.
Примечание
Тест Кольмогорова-Смирнова принимает, что выборки следуют за непрерывным распределением. Убедитесь, что графики eCDF непрерывны, когда вы увеличиваете число выборок. Если eCDFs не непрерывны, но подобны шагу в пределе бесконечных выборок, то результаты не могут отразить истинную чувствительность.
[1] Тиманн, Кристиан А., Joep Vanlier, Мээйк Х. Устервир, Альберт К. Гроен, Питер А. Дж. Хилберс и Натал А. В. ван Рил. “Анализ Траектории параметра, чтобы Идентифицировать Эффекты Обработки Фармакологических Вмешательств”. Отредактированный Скоттом Маркелом. 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.