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

Получите активный конфигурационный набор и установите целевое заполнение (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.

Определите порог воздействия (область под кривой профиля ТО) для целевой заполненности.

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);

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ни один из параметров не показывает значительного различия в 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];

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 между двумя eCDF, 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).

Можно также построить гистограммы принятых и отклонённых выборок. Исторические граммы позволяют вам увидеть тренды в принятых и отклонённых выборках. В этом примере гистограмма 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 объекты.

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

Каждый классификатор должен вычислить логический вектор той же длины, что и количество выборок параметра. Сущности, такие как величины модели или наблюдаемые, на которые ссылаются в выражении классификатора, оцениваются как матрица со столбцами, содержащими временные курсы моделируемых значений величины. Каждый столбец представляет одну выборку. Для получения дополнительной информации смотрите Мультипараметрический глобальный анализ чувствительности (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' - Используйте низкорасходную последовательность Соболя для генерации выборок.

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

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

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

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

Для Первого и Второго Синтаксиса

свернуть все

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

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

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

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

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

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

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

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

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

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

свернуть все

Время вывода симуляции, заданное как разделенная разделенными запятой парами, состоящая из '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, описанный Tiemann et. 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. Сравнение двух 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.

См. также

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

Введенный в R2020a