exponenta event banner

sbiompgsa

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

Описание

пример

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 для поиска чувствительных параметров относительно транспортного заказа. Изменение значений параметров между предварительно определенными границами для создания 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.

Постройте график эмпирических кумулятивных функций распределения (eCDF) принятых и отклоненных образцов. За исключением kmни один из параметров не показывает существенной разницы в eCDF для принятых и отклоненных образцов. km на графике показано большое расстояние Колмогорова - Смирнова (К-С) между eCDF принятых и отбракованных образцов. Расстояние K-S - это максимальное абсолютное расстояние между двумя кривыми eCDF.

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 (Статистика и инструментарий машинного обучения) для получения подробной информации. Если расстояние 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' и 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. Дополнительные сведения см. в разделе Тест Колмогорова-Смирнова с двумя образцами (инструментарий статистики и машинного обучения).

Пример: 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 (Статистика и инструментарий машинного обучения)) принятых и отклоненных значений.

  6. Сравните два eCDF принятых и отклоненных групп, используя Тест Колмогорова-Смирнова (Статистика и инструментарий машинного обучения) для вычисления расстояния Колмогорова-Смирнова. Уровень значимости по умолчанию теста Колмогорова-Смирнова - 0.05. Если два eCDF похожи, расстояние невелико, что означает, что отклик модели не чувствителен к входному параметру. Если два eCDF различны, расстояние велико, что означает, что реакция модели чувствительна к параметру.

    Примечание

    Тест Колмогорова-Смирнова предполагает, что образцы следуют непрерывному распределению. Убедитесь, что графики eCDF непрерывны по мере увеличения количества образцов. Если eCDF являются не непрерывными, а ступенчатыми в пределе бесконечных образцов, то результаты могут не отражать истинную чувствительность.

Ссылки

[1] Тиеманн, Кристиан А., Йоеп Ванлье, Маайке Х. Остервер, Альберт К. Гроен, Петер А. Дж. Хилберс и Натал А. В. ван Риль. «Анализ траектории параметров для определения эффектов лечения фармакологических вмешательств». Под редакцией Скотта Маркела. Вычислительная биология PLoS 9, № 8 (1 августа 2013 г.): e1003166. https://doi.org/10.1371/journal.pcbi.1003166.

См. также

| | | (инструментарий статистики и машинного обучения) | (Набор инструментов для статистики и машинного обучения)

Представлен в R2020a