sbiompgsa

Выполните мультипараметрический глобальный анализ чувствительности (требует Statistics and Machine Learning Toolbox),

Описание

пример

mpgsaResults = sbiompgsa(modelObj,params,classifiers) выполняет мультипараметрический глобальный анализ чувствительности (MPGSA) [1] из 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));

Figure contains an axes. The axes with title States versus Time contains an object of type line. This object represents TO.

Задайте воздействие (область под кривой профиля 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);

Figure contains an axes. The axes contains 12 objects of type line, patch. These objects represent model simulation, 90.0% region, mean value.

Постройте эмпирические кумулятивные функции распределения (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];

Figure contains 4 axes. Axes 1 with title trapz(time,TO) <= 0.1 contains 2 objects of type stair. These objects represent accepted samples, rejected samples. Axes 2 contains 2 objects of type stair. These objects represent accepted samples, rejected samples. Axes 3 contains 2 objects of type stair. These objects represent accepted samples, rejected samples. Axes 4 contains 2 objects of type stair. These objects represent accepted samples, rejected samples.

Чтобы вычислить расстояние K-S между двумя eCDFs, SimBiology использует двухсторонний тест на основе нулевой гипотезы, что два распределения принятых и отклоненных выборок равны. Смотрите kstest2 (Statistics and Machine Learning Toolbox) для деталей. Если расстояние K-S является большим, то эти два распределения отличаются, означая, что классификация выборок чувствительна к изменениям входного параметра. С другой стороны, если расстояние K-S мало, то изменения входного параметра не влияют на классификацию выборок. Результаты предполагают, что классификация нечувствительна к входному параметру. Чтобы оценить значение статистической величины K-S, отклоняющей нулевую гипотезу, можно исследовать p-значения.

bar(mpgsaResults)

Figure contains an axes. The axes with title trapz(time,TO) <= 0.1 contains 11 objects of type patch, line. These objects represent K-S Statistic, P-Value.

Столбиковая диаграмма показывает две панели для каждого параметра: один для расстояния 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];

Figure contains 4 axes. Axes 1 with title trapz(time,TO) <= 0.1 contains 2 objects of type histogram. These objects represent accepted samples, rejected samples. Axes 2 contains 2 objects of type histogram. These objects represent accepted samples, rejected samples. Axes 3 contains 2 objects of type histogram. These objects represent accepted samples, rejected samples. Axes 4 contains 2 objects of type histogram. These objects represent accepted samples, rejected samples.

Восстановите настройки предупреждения.

warning(warnSettings);

Входные параметры

свернуть все

Модель SimBiology в виде SimBiology model object.

Имена параметров модели, разновидностей или отсеков в виде вектора символов, строки, представляют в виде строки вектор или массив ячеек из символьных векторов.

Пример: ["k1","k2"]

Типы данных: char | string | cell

Данные о симуляции модели в виде вектора из SimData объекты.

Выражения ответов модели в виде вектора символов, строки, представляют в виде строки вектор или массив ячеек из символьных векторов. Задайте выражения, ссылающиеся на симулированные количества модели, observables, время или функции MATLAB, которые находятся на пути.

Каждый классификатор должен оценить к логическому вектору из той же длины как количество выборок параметра. Сущности, такие как количества модели или observables, на который ссылаются в выражении классификатора, оценены как матрица со столбцами, содержащими курсы времени симулированных значений количества. Каждый столбец представляет одну выборку. Для получения дополнительной информации смотрите Мультипараметрический Глобальный Анализ чувствительности (MPGSA).

Если вы задаете SimData возразите как первый вход, каждая величина или observable ссылаемый классификатором должен решить к регистрируемому компоненту в SimData объект.

Пример: "max(Central.Drug(time > 1,:),[],1) <= 7"

Типы данных: char | string | cell

Выбранные значения количеств модели в виде таблицы. Имена переменных таблицы указывают на имена количества.

Типы данных: 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' и числовая матрица с двумя столбцами. Первый столбец содержит нижние границы, и второй столбец содержит верхние границы. Количество строк должно быть равно количеству параметров в params.

Если параметр имеет ненулевое значение, границы по умолчанию составляют ±10% значения. Если значение параметров является нулем, границами по умолчанию является [0 1].

Пример: [0.5 5]

Типы данных: double

Количество выборок, чертивших, чтобы выполнить мультипараметрический глобальный анализ чувствительности в виде разделенной запятой пары, состоящей из 'NumberSamples' и положительное целое число.

Типы данных: double

Метод, чтобы сгенерировать выборки параметра в виде разделенной запятой пары, состоящей из 'SamplingMethod' и вектор символов или строка. Допустимые опции:

  • 'Sobol' — Используйте низкое несоответствие последовательность Sobol, чтобы сгенерировать выборки.

  • 'Halton' — Используйте низкое несоответствие последовательность Холтона, чтобы сгенерировать выборки.

  • 'lhs' — Используйте латинские выборки гиперкуба низкого несоответствия.

  • 'random' — Используйте равномерно распределенные случайные выборки.

Типы данных: char | string

Для первых и вторых синтаксисов

свернуть все

Дозы, чтобы использовать во время симуляций модели в виде разделенной запятой пары, состоящей из 'Doses' и ScheduleDose или RepeatDose возразите или вектор из объектов дозы.

Варианты, чтобы применяться перед симуляциями модели в виде разделенной запятой пары, состоящей из 'Variants' и различный объект или вектор из различных объектов.

Когда существует несколько вариантов и если существуют дублирующиеся технические требования для значения свойства, последнее вхождение для значения свойства в массиве вариантов используется в процессе моделирования.

Время остановки симуляции в виде разделенной запятой пары, состоящей из 'StopTime' и неотрицательный скаляр. Если вы не задаете никакой StopTime ни OutputTimes, функция использует время остановки от активной конфигурации модели модели. Вы не можете задать оба StopTime и OutputTimes.

Типы данных: double

Отметьте, чтобы запустить симуляции модели параллельно в виде разделенной запятой пары, состоящей из 'UseParallel' и true или false.

Типы данных: логический

Отметьте, чтобы включить ускорение модели в виде разделенной запятой пары, состоящей из 'Accelerate' и true или false.

Типы данных: логический

Для всех синтаксисов

свернуть все

Simulation времена выхода в виде разделенной запятой пары, состоящей из 'OutputTimes' и числовой вектор. Функция вычисляет ответы модели в этих выходных моментах времени. Вы не можете задать оба StopTime и OutputTimes. По умолчанию функция использует выходные времена первой симуляции модели.

Пример: [0 1 2 3.5 4 5 5.5]

Типы данных: double

Уровень значения для Кольмогорова-Смирнова тестирует в виде разделенной запятой пары, состоящей из 'SignificanceLevel' и числовой скаляр между 0 и 1. Для получения дополнительной информации смотрите Двухвыборочный критерий Колмогорова-Смирнова (Statistics and Machine Learning Toolbox).

Пример: 0.1

Типы данных: double

Метод для интерполяции симуляций модели к новым выходным временам в виде разделенной запятой пары, состоящей из 'InterpolationMethod' и вектор символов или строка. Допустимые опции следуют.

  • "interp1q" — Используйте interp1q функция.

  • Используйте interp1 функция путем определения одного из следующих методов:

    • "nearest"

    • "linear"

    • "spline"

    • "pchip"

    • "v5cubic"

  • "zoh" — Укажите, что нулевой порядок содержит.

Типы данных: char | string

Выходные аргументы

свернуть все

Мультипараметрические глобальные результаты анализа чувствительности, возвращенные как SimBiology.gsa.MPGSA объект. Объект также содержит данные о симуляции модели, используемые, чтобы выполнить MPGSA.

Больше о

свернуть все

Мультипараметрический глобальный анализ чувствительности (MPGSA)

Мультипараметрический глобальный анализ чувствительности позволяет вам изучить относительную важность параметров относительно классификатора, заданного ответами модели. Классификатор является выражением ответов модели, которое оценивает к логическому вектору. sbiompgsa реализует метод MPSA, описанный Тиманном и. al. (см. текст информации о поддержке S2) [1].

sbiompgsa выполняет следующие шаги.

  1. Сгенерируйте выборки параметра N с помощью метода выборки. sbiompgsa хранилища эти выборки как таблица в свойстве, mpgsaResults.ParameterSamples, из возвращенного объекта. Количество строк равно количеству выборок, и количество столбцов равно количеству входных параметров.

    Совет

    Можно задать N и метод выборки с помощью 'NumberSamples' и 'SamplingMethod' аргументы пары "имя-значение", соответственно, когда вы вызываете sbiompgsa.

  2. Вычислите ответ модели путем симуляции модели для каждого набора параметров, который является одной реализацией значений параметра модели. В этом случае набор параметров равен строке в ParameterSamples таблица.

  3. Оцените классификатор. Классификатор является выражением, которое оценивает к логическому вектору. Например, если ваш ответ модели является AUC плазменной концентрации препарата, можно задать классификатор с порогом токсичности 0,8, где AUC концентрации препарата выше того порога рассматривается токсичным.

  4. Наборы параметров затем разделены на две различных группы, такой как принятые (нетоксичный) и отклонили (токсичные) группы.

  5. Для каждого входного параметра вычислите эмпирические кумулятивные функции распределения (ecdf (Statistics and Machine Learning Toolbox)) принятых и отклоненных демонстрационных значений.

  6. Сравните два 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.

Смотрите также

| | | (Statistics and Machine Learning Toolbox) | (Statistics and Machine Learning Toolbox)

Введенный в R2020a