SimBiology.gsa.ElementaryEffects

Объект, содержащий результаты вычисления элементарных эффектов для глобального анализа чувствительности (GSA)

    Описание

    SimBiology.gsa.ElementaryEffects объект содержит результаты GSA, возвращенные sbioelementaryeffects. Объект содержит вычисленные элементарные эффекты относительно входных параметров параметра.

    Создание

    Создайте SimBiology.gsa.ElementaryEffects объектное использование sbioelementaryeffects.

    Свойства

    развернуть все

    Отметьте, чтобы использовать абсолютные значения элементарных эффектов в виде true или false. По умолчанию функция использует абсолютные значения элементарных эффектов. Используя неабсолютные значения может составить в среднем при вычислении среднего значения. Для получения дополнительной информации смотрите Элементарные Эффекты для Глобального Анализа чувствительности.

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

    Это свойство доступно только для чтения.

    Моменты времени, в которых элементарные эффекты вычисляются в виде столбца числовой вектор. Свойством является [] если все observables являются скалярами.

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

    Это свойство доступно только для чтения.

    GSA заканчивается с элементарными эффектами в виде массива структур. Размером массива является params-by-observables, где params является количеством входных параметров (входные параметры чувствительности), и observables является количеством observables (чувствительность выходные параметры).

    Каждая структура содержит следующие поля.

    • Parameter — Имя входного параметра в виде вектора символов

    • Observable — Имя заметного в виде вектора символов

    • Mean — Среднее значение абсолютных значений элементарных эффектов в виде скалярного или числового вектора

    • StandardDeviation — Стандартное отклонение абсолютных элементарных эффектов в виде скалярного или числового вектора

    Если все observables являются скаляром, то Mean и StandardDeviation поля заданы как скаляры. Если какие-либо observables являются векторами, Mean и StandardDeviation числовые векторы из длины Time. Если некоторые observables являются скалярами, и некоторые - векторы, скаляр observables расширены до скаляра, где каждый момент времени имеет то же значение.

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

    Это свойство доступно только для чтения.

    Уровень дискретизации области параметра в виде положительного даже целое число. Этот параметр задает сетку равноотстоящих точек в области параметра, где каждая размерность дискретизируется с помощью Gridlevel+1 'points'. Следующий рисунок показывает пример сетки для параметров p1 и p2 в данных границах параметра.

    Grid of points

    Для получения дополнительной информации смотрите Элементарные Эффекты для Глобального Анализа чувствительности.

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

    Это свойство доступно только для чтения.

    Размер шага для вычисления элементарных эффектов в виде положительного целого числа между 1 и GridLevel. Размер шага измеряется в терминах узлов решетки между соседними точками. Следующий рисунок показывает примеры различных значений дельты сетки.

    Two grids of points, one with red lines showing a GridDelta of one and the other showing a GridDelta of three.

    Для получения дополнительной информации смотрите Элементарные Эффекты для Глобального Анализа чувствительности.

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

    Это свойство доступно только для чтения.

    Метод, чтобы выбрать точки выборки, чтобы вычислить элементарные эффекты в виде "chain" или "radial". "chain" укажите, что выбор использует метод Морриса [1]. "radial" укажите, что выбор использует метод Sohier [2]. Для получения дополнительной информации смотрите Элементарные Эффекты для Глобального Анализа чувствительности.

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

    Это свойство доступно только для чтения.

    Выбранные значения параметров в виде таблицы. Таблица содержит (1+numel(params))*NumberSamples строки и numel(params) столбцы.

    sbioelementaryeffects блоки использования k+1 строки, где k является количеством входных параметрических усилителей, чтобы вычислить элементарный эффект для каждого входного параметра. Общее количество этих блоков равно общему количеству выборок. Можно получить индексы блока путем выполнения kron((1:NumberSamples)',ones(numel(params)+1,1)). Для получения дополнительной информации смотрите Элементарные Эффекты для Глобального Анализа чувствительности.

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

    Это свойство доступно только для чтения.

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

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

    Это свойство доступно только для чтения.

    Информация о симуляции, такая как данные моделирования и выборки параметра, используемые в вычислениях элементарные эффекты в виде структуры. Структура содержит следующие поля.

    • SimFunctionSimFunction объект используется для ответов имитационной модели или observables.

    • SimDataSimData массив размера [NumberSamples,1], где NumberSamples является количеством отсчетов. Массив содержит результаты симуляции от ParameterSamples.

    • OutputTimes — Числовой вектор-столбец, содержащий общий временной вектор всего SimData объекты.

    • Bounds — Числовая матрица размера [params,2]. params является количеством входных параметров. Первый столбец содержит нижние границы, и второй столбец содержит верхние границы для входных параметров чувствительности.

    • DoseTables — Массив ячеек таблиц дозы используется для SimFunction оценка. DoseTables выход getTable(doseInput), где doseInput является значением, заданным для 'Doses' аргумент пары "имя-значение" в вызове sbiosobol, sbiompgsa, или sbioelementaryeffects. Если никакие дозы не применяются, это поле установлено в [].

    • ValidSample — Логический вектор из размера [NumberSamples,1] указание, перестала ли симуляция для конкретной выборки работать. Передискретизация данных моделирования (SimData) может привести к NaN значения, если данные экстраполируются. Такой SimData обозначаются как недопустимые.

    • InterpolationMethod — Имя метода интерполяции для SimData.

    • SamplingMethod — Имя метода выборки раньше чертило ParameterSamples.

    • RandomState — Структура, содержащая состояние rng прежде, чем чертить ParameterSamples.

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

    Функции объекта

    resampleПередискретизируйте индексы Sobol или элементарные эффекты к новому временному вектору
    addobservableВычислите индексы Sobol или элементарные эффекты для нового заметного выражения
    removeobservableУдалите индексы Sobol или элементарные эффекты observables
    addsamplesДобавьте дополнительные выборки, чтобы увеличить точность индексов Sobol или элементарного анализа эффектов
    plotDataПостройте сводные данные квантиля симуляций модели от глобального анализа чувствительности (требует Statistics and Machine Learning Toolbox),
    plotПостройте средние значения и стандартные отклонения элементарных эффектов
    barПостройте величины средних значений и стандартные отклонения элементарных эффектов
    plotGridПостройте сетку параметра, и точки использовались для расчета элементарных эффектов

    Примеры

    свернуть все

    Загрузите модель роста опухоли.

    sbioloadproject tumor_growth_vpop_sa.sbproj

    Заставьте вариант предполагаемыми параметрами и дозой применяться к модели.

    v = getvariant(m1);
    d = getdose(m1,'interval_dose');

    Получите активный configset и установите вес опухоли как ответ.

    cs = getconfigset(m1);
    cs.RuntimeOptions.StatesToLog = 'tumor_weight';

    Симулируйте модель и постройте профиль роста опухоли.

    sbioplot(sbiosimulate(m1,cs,v,d));

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

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

    Во-первых, задайте параметры модели интереса, которые вовлечены в фармакодинамику роста опухоли. Задайте ответ модели как вес опухоли.

    modelParamNames = {'L0','L1','w0','k1'};
    outputName = 'tumor_weight';

    Затем выполните GSA путем вычисления элементарных эффектов с помощью sbioelementaryeffects. Используйте 100 как количество отсчетов и набор ShowWaitBar к true показать прогресс симуляции.

    rng('default');
    eeResults = sbioelementaryeffects(m1,modelParamNames,outputName,Variants=v,Doses=d,NumberSamples=100,ShowWaitbar=true);

    Покажите средний ответ модели, результаты симуляции и теневую область, покрывающую 90% результатов симуляции.

    plotData(eeResults,ShowMedian=true,ShowMean=false);

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

    Можно настроить область квантиля к различному проценту путем определения Alphas для более низких и верхних квантилей всех ответов модели. Например, alpha значение 0,1 графиков теневая область между 100*alpha и 100*(1-alpha) квантили всех симулированных ответов модели.

    plotData(eeResults,Alphas=0.1,ShowMedian=true,ShowMean=false);

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

    Постройте курс времени средних значений и стандартные отклонения элементарных эффектов.

    h = plot(eeResults);
    % Resize the figure.
    h.Position(:) = [100 100 1280 800];

    Figure contains 8 axes objects. Axes object 1 with title sensitivity output [Tumor Growth Model].tumor_weight contains an object of type line. Axes object 2 with title sensitivity output [Tumor Growth Model].tumor_weight contains an object of type line. Axes object 3 contains an object of type line. Axes object 4 contains an object of type line. Axes object 5 contains an object of type line. Axes object 6 contains an object of type line. Axes object 7 contains an object of type line. Axes object 8 contains an object of type line.

    Среднее значение эффектов объясняет, оказывают ли изменения входных значений параметров какое-либо влияние на ответ веса опухоли. Стандартное отклонение эффектов объясняет, зависит ли изменение чувствительности от местоположения в области параметра.

    От среднего значения графиков эффектов, параметры L1 и w0 кажется, самые чувствительные параметры к весу опухоли, прежде чем доза будет применена в t = 7. Но, после того, как доза применяется, k1 и L0 станьте более чувствительными параметрами и способствуйте больше всего дозируемому после того, как этапу веса опухоли. Графики стандартного отклонения эффектов показывают больше отклонений для больших значений параметров на более позднем этапе (t> 35), чем для этапа прежде-чем-дозы роста опухоли.

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

    bar(eeResults);

    Figure contains an axes object. The axes object with title sensitivity output [Tumor Growth Model].tumor_weight contains 18 objects of type patch, line. These objects represent mean, standard deviation.

    Можно также построить сетки параметра, и выборки использовались для расчета элементарных эффектов.

    plotGrid(eeResults)

    Figure contains 6 axes objects. Axes object 1 contains 200 objects of type line. Axes object 2 contains 200 objects of type line. Axes object 3 contains 200 objects of type line. Axes object 4 contains 200 objects of type line. Axes object 5 contains 200 objects of type line. Axes object 6 contains 200 objects of type line.

    Можно задать больше выборок, чтобы увеличить точность элементарных эффектов, но симуляция может занять больше времени, чтобы закончиться. Используйте addsamples добавить больше выборок.

    eeResults2 = addsamples(eeResults,200);

    SimulationInfo свойство объекта результата содержит различную информацию для вычисления элементарных эффектов. Например, данные о симуляции модели (SimData) для каждой симуляции с помощью набора выборок параметра хранятся в SimData поле свойства. Это поле является массивом SimData объекты.

    eeResults2.SimulationInfo.SimData
     
       SimBiology SimData Array : 1500-by-1
     
       Index:    Name:         ModelName:         DataCount: 
       1           -           Tumor Growth Model 1          
       2           -           Tumor Growth Model 1          
       3           -           Tumor Growth Model 1          
       ...                                                   
       1500        -           Tumor Growth Model 1          
     
    

    Можно узнать, перестала ли какая-либо симуляция модели работать во время расчета путем проверки ValidSample поле SimulationInfo. В этом примере поле не показывает не пройдено запусков симуляции.

    all(eeResults2.SimulationInfo.ValidSample)
    ans = logical
       1
    
    

    Можно добавить пользовательские выражения как observables и вычислить элементарные эффекты добавленного observables. Например, можно вычислить эффекты для максимального веса опухоли путем определения пользовательского выражения можно следующим образом.

    % Suppress an information warning that is issued.
    warnSettings = warning('off', 'SimBiology:sbservices:SB_DIMANALYSISNOTDONE_MATLABFCN_UCON');
    % Add the observable expression.
    eeObs = addobservable(eeResults2,'Maximum tumor_weight','max(tumor_weight)','Units','gram');

    Постройте вычисленные результаты симуляции, показывающие 90%-ю область квантиля.

    h2 = plotData(eeObs);
    h2.Position(:) = [100 100 1500 800];

    Figure contains 2 axes objects. Axes object 1 contains 12 objects of type line, patch. These objects represent model simulation, 90.0% region, mean value. Axes object 2 contains 12 objects of type line, patch. These objects represent model simulation, 90.0% region, mean value.

    Можно также удалить заметное путем определения его имени.

    eeNoObs = removeobservable(eeObs,'Maximum tumor_weight');

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

    warning(warnSettings);

    Ссылки

    [1] Моррис, Макс Д. “Планы Выборки факториала относительно Предварительных Вычислительных Экспериментов”. Технометрики 33, № 2 (май 1991): 161–74.

    [2] Sohier, Анри, Жан-Лу Фарг и Хелене Пит-Ланир. “Улучшение Представительности Метода Морриса для Воздушного Запуска, чтобы вращаться вокруг Разделения”. Объемы Продолжений IFAC 47, № 3 (2014): 7954–59.

    Введенный в R2021b