Выполните глобальный анализ чувствительности путем вычисления сначала - и общий порядок индексы Sobol (требует Statistics and Machine Learning Toolbox),
выполняет глобальный анализ чувствительности [1] на модели SimBiology sobolResults
= sbiosobol(modelObj
,params
,observables
)modelObj
путем разложения отклонений observables
относительно чувствительности вводит params
.
выборки использования от sobolResults
= sbiosobol(modelObj
,scenarios
,observables
)scenarios
, SimBiology.Scenarios
объект, чтобы выполнить анализ.
дополнительные опции использования заданы одним или несколькими аргументами пары "имя-значение".sobolResults
= sbiosobol(modelObj
,params
,observables
,Name,Value
)
Загрузите модель роста опухоли.
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));
Выполните глобальный анализ чувствительности (GSA) на модели, чтобы найти параметры модели, к которым рост опухоли чувствителен.
Во-первых, получите параметры модели интереса, которые вовлечены в фармакодинамику роста опухоли. Задайте ответ модели как вес опухоли.
modelParamNames = {'L0','L1','w0','k1','k2'}; outputName = 'tumor_weight';
Затем выполните GSA путем вычисления первого - и общий порядок индексы Sobol с помощью sbiosobol
. Установите 'ShowWaitBar'
к true
показать прогресс симуляции. По умолчанию функция использует 1 000 выборок параметра, чтобы вычислить индексы Sobol [1].
rng('default'); sobolResults = sbiosobol(m1,modelParamNames,outputName,'Variants',v,'Doses',d,'ShowWaitBar',true)
sobolResults = Sobol with properties: Time: [444x1 double] SobolIndices: [5x1 struct] Variance: [444x1 table] ParameterSamples: [1000x5 table] Observables: {'[Tumor Growth Model].tumor_weight'} SimulationInfo: [1x1 struct]
Можно изменить количество отсчетов путем определения 'NumberSamples'
аргумент пары "имя-значение". Функция требует в общей сложности (number of input parameters + 2) * NumberSamples
симуляции модели.
Покажите средний ответ модели, результаты симуляции и теневую область, покрывающую 90% результатов симуляции.
plotData(sobolResults);
Можно настроить область квантиля к различному проценту путем определения 'Alphas'
для более низких и верхних квантилей всех ответов модели. Например, альфа-значение 0,1 графиков теневая область между 100 * alpha
и 100 * (1 - alpha)
квантили всех симулированных ответов модели.
plotData(sobolResults,'Alphas',0.1);
Постройте курс времени первого - и общий порядок индексы Sobol.
h = plot(sobolResults);
% Resize the figure.
h.Position(:) = [100 100 1280 800];
Индекс Sobol первого порядка входного параметра дает часть полного отклонения ответа, которое может быть приписано изменениям одного только входного параметра. Индекс общего порядка дает часть полного отклонения ответа, которое может быть приписано любым объединенным изменениям параметра, которые включают изменения входного параметра.
Из графиков индексов Sobol, параметры L1
и w0
кажется, самые чувствительные параметры к весу опухоли, прежде чем доза была применена в t = 7. Но после того, как доза применяется, k1
и k2
станьте более чувствительными параметрами и способствуйте больше всего дозируемому после того, как этапу веса опухоли. Общий график отклонения также показывает большее отклонение для этапа после-того,-как-дозы в t> 35, чем для этапа прежде-чем-дозы роста опухоли, указывая на тот k1
и k2
могут быть более важные параметры, чтобы заняться расследованиями далее. Часть необъясненного отклонения показывает некоторое отклонение приблизительно в t = 33, но общий график отклонения показывает мало отклонения в t = 33, означая, что необъясненное отклонение могло быть незначительным. Часть необъясненного отклонения вычисляется как 1 - (сумма всех индексов Sobol первого порядка), и общее отклонение вычисляется с помощью var(response)
, где response
ответ модели в каждом моменте времени.
Можно также отобразить величины чувствительности в столбиковой диаграмме. Более темные цвета означают, что те значения происходят чаще по курсу всего времени.
bar(sobolResults);
Можно задать больше выборок, чтобы увеличить точность индексов Sobol, но симуляция может занять больше времени, чтобы закончиться. Используйте addsamples
добавить больше выборок. Например, если вы задаете 1 500 выборок, функция выполняет 1500 * (2 + number of input parameters)
симуляции.
gsaMoreSamples = addsamples(gsaResults,1500)
Свойство SimulationInfo объекта результата содержит различную информацию для вычисления индексов Sobol. Например, данные о симуляции модели (SimData) для каждой симуляции с помощью набора выборок параметра хранятся в SimData
поле свойства. Это поле является массивом SimData
объекты.
sobolResults.SimulationInfo.SimData
SimBiology SimData Array : 1000-by-7 Index: Name: ModelName: DataCount: 1 - Tumor Growth Model 1 2 - Tumor Growth Model 1 3 - Tumor Growth Model 1 ... 7000 - Tumor Growth Model 1
Можно узнать, перестала ли какая-либо симуляция модели работать во время расчета путем проверки ValidSample
поле SimulationInfo
. В этом примере поле не показывает не пройдено запусков симуляции.
all(sobolResults.SimulationInfo.ValidSample)
ans = 1x7 logical array
1 1 1 1 1 1 1
SimulationInfo.ValidSample
таблица логических значений. Это имеет тот же размер как SimulationInfo.SimData
. Если ValidSample
указывает, что любые симуляции перестали работать, можно получить больше информации о тех запусках симуляции и выборках, используемых для тех запусков путем извлечения информации из соответствующего столбца SimulationInfo.SimDat
a. Предположим, что четвертый столбец содержит один или несколько не пройдено запусков симуляции. Получите данные моделирования и демонстрационные значения, используемые для той симуляции с помощью getSimulationResults
.
[samplesUsed,sd,validruns] = getSimulationResults(sobolResults,4);
Можно добавить пользовательские выражения как observables и вычислить индексы Sobol для добавленного observables. Например, можно вычислить индексы Sobol для максимального веса опухоли путем определения пользовательского выражения можно следующим образом.
% Suppress an information warning that is issued during simulation. warnSettings = warning('off', 'SimBiology:sbservices:SB_DIMANALYSISNOTDONE_MATLABFCN_UCON'); % Add the observable expression. sobolObs = addobservable(sobolResults,'Maximum tumor_weight','max(tumor_weight)','Units','gram');
Постройте вычисленные результаты симуляции, показывающие 90%-ю область квантиля.
h2 = plotData(sobolObs); h2.Position(:) = [100 100 1280 800];
Можно также удалить заметное путем определения его имени.
gsaNoObs = removeobservable(sobolObs,'Maximum tumor_weight');
Восстановите настройки предупреждения.
warning(warnSettings);
modelObj
— Модель SimBiologyМодель SimBiology в виде SimBiology model object
.
params
— Имена параметров модели, разновидностей или отсековИмена параметров модели, разновидностей или отсеков в виде вектора символов, строки, представляют в виде строки вектор или массив ячеек из символьных векторов.
Пример: ["k1","k2"]
Типы данных: char |
string
| cell
observables
— Ответы моделиОтветы модели в виде вектора символов, строки, представляют в виде строки вектор или массив ячеек из символьных векторов. Задайте имена разновидностей, параметров, отсеков или observables
.
Пример: ["tumor_growth"]
Типы данных: char |
string
| cell
scenarios
— Источник для рисования выборокSimBiology.Scenarios
объектИсточник для рисования выборок в виде a SimBiology.Scenarios
объект.
Необходимо объединить записи объекта поэлементно.
Записи должны быть независимыми случайными переменными. Если существуют многократные въезды, они должны быть некоррелироваными.
SamplingMethod
из любой записи не должен быть copula
.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
sobolResults = sbiosobol(modelObj,params,observables,'ShowWaitbar',true)
задает, чтобы показать индикатор выполнения симуляции.Bounds
— Границы параметраПараметр ограничивает в виде числовой матрицы с двумя столбцами. Первый столбец содержит нижние границы, и второй столбец содержит верхние границы. Количество строк должно быть равно количеству параметров в params
.
Если параметр имеет ненулевое значение, границы по умолчанию составляют ±10% значения. Если значение параметров является нулем, границами по умолчанию является [0 1]
.
Пример: [0.5 5]
Типы данных: double
Doses
— Дозы, чтобы использовать во время симуляцийScheduleDose
возразите | RepeatDose
возразите | вектор из объектов дозыДозы, чтобы использовать во время симуляций модели в виде ScheduleDose
или RepeatDose
возразите или вектор из объектов дозы.
Variants
— Варианты, чтобы применяться перед симуляциямиВарианты, чтобы применяться перед симуляциями модели в виде различного объекта или вектора из различных объектов.
Когда вы задаете несколько вариантов с дублирующимися техническими требованиями для значения свойства, последнее вхождение для значения свойства в массиве вариантов используется в процессе моделирования.
NumberSamples
— Количество отсчетов, чтобы вычислить индексы Sobol
(значение по умолчанию) | положительное целое числоКоличество отсчетов, чтобы вычислить индексы Sobol в виде разделенной запятой пары, состоящей из 'NumberSamples'
и положительное целое число. Функция требует (количество входа
симуляции модели, чтобы вычислить первое - и общий порядок индексы Sobol.params
+ 2) * NumberSamples
Типы данных: double
Distributions
— Вероятностные распределенияprob.UniformDistribution
(значение по умолчанию) | prob.ProbabilityDistribution
возразите | вектор из prob.ProbabilityDistribution
объектыВероятностные распределения раньше чертили выборки в виде prob.ProbabilityDistribution
объект или вектор из этих объектов. Задайте скалярный prob.ProbabilityDistribution
или вектор из длины N, где N является количеством входных параметров. Можно создать объекты распределения к выборке от различных распределений, таких как универсальные, нормальные, или логарифмически нормальные распределения, с помощью makedist
(Statistics and Machine Learning Toolbox).
Если вы задаете скалярный prob.ProbabilityDistribution
объект, и существует несколько входных параметров, sbiosobol
использует тот же объект распределения, чтобы чертить выборки для каждого параметра.
Вы не можете задать этот аргумент вместе с Границами.
Вы не можете задать этот аргумент когда SimBiology.Scenarios
объект является входом.
SamplingMethod
— Метод, чтобы сгенерировать выборки параметра'Sobol'
(значение по умолчанию) | вектор символов | строкаМетод, чтобы сгенерировать выборки параметра в виде вектора символов или строки. Допустимые опции:
'Sobol'
— Используйте низкое несоответствие последовательность Sobol, чтобы сгенерировать выборки.
'Halton'
— Используйте низкое несоответствие последовательность Холтона, чтобы сгенерировать выборки.
'lhs'
— Используйте латинские выборки гиперкуба низкого несоответствия.
'random'
— Используйте равномерно распределенные случайные выборки.
Типы данных: char |
string
SamplingOptions
— Опции для выборки методаОпции для метода выборки в виде скалярного struct. Опции отличаются в зависимости от метода выборки: sobol
, halton
, или lhs
.
Для sobol
и halton
, задайте каждое имя поля и значение структуры согласно каждому аргументу значения имени sobolset
(Statistics and Machine Learning Toolbox) или haltonset
(Statistics and Machine Learning Toolbox) функция. SimBiology использует значение по умолчанию 1
для Skip
аргумент для обоих методов. Для всех других аргументов name-value программное обеспечение использует те же значения по умолчанию sobolset
или haltonset
. Например, настройте структуру для Leap
и Skip
опции со значениями не по умолчанию можно следующим образом.
s1.Leap = 50; s1.Skip = 0;
Для lhs
, существует три сэмплера, которые поддерживают различные опции выборки.
Если вы задаете ковариационную матрицу, использование SimBiology lhsnorm
(Statistics and Machine Learning Toolbox) для выборки. SamplingOptions
аргумент не позволен.
В противном случае используйте имя поля UseLhsdesign
выбрать сэмплер.
Если значением является true
, Использование SimBiology lhsdesign
(Statistics and Machine Learning Toolbox). Можно использовать аргументы name-value lhsdesign
задавать имена полей и значения.
Если значением является false
(значение по умолчанию), SimBiology использует неконфигурируемый латинский сэмплер гиперкуба, который отличается от lhsdesign
. Этот сэмплер не требует Statistics and Machine Learning Toolbox™. SamplingOptions
не может содержать никакие другие опции, кроме UseLhsdesign
.
Например, настройте структуру, чтобы использовать lhsdesign
с Criterion
и Iterations
опции.
s2.UseLhsdesign = true;
s2.Criterion = "correlation";
s2.Iterations = 10;
Вы не можете задать этот аргумент когда SimBiology.Scenarios
объект является входом.
StopTime
— Время остановки симуляцииВремя остановки симуляции в виде неотрицательного скаляра. Если вы не задаете никакой StopTime
ни OutputTimes
, функция использует время остановки от активной конфигурации модели модели. Вы не можете задать оба StopTime
и OutputTimes
.
Типы данных: double
OutputTimes
— Simulation времена выходаSimulation времена выхода в виде разделенной запятой пары, состоящей из 'OutputTimes'
и числовой вектор. Функция вычисляет индексы Sobol в этих выходных моментах времени. Вы не можете задать оба StopTime
и OutputTimes
. По умолчанию функция использует выходные времена первой симуляции модели.
Пример: [0 1 2 3.5 4 5 5.5]
Типы данных: double
UseParallel
— Отметьте, чтобы запустить симуляции модели параллельноfalse
(значение по умолчанию) | true
Отметьте, чтобы запустить симуляции модели параллельно в виде true
или false
. Когда значением является true
и Parallel Computing Toolbox™ доступен, функциональные параллельные симуляции запусков.
Типы данных: логический
Accelerate
— Отметьте, чтобы включить ускорение моделиtrue
(значение по умолчанию) | false
Отметьте, чтобы включить ускорение модели в виде true
или false
.
Типы данных: логический
InterpolationMethod
— Метод для интерполяции симуляций модели"interp1q"
(значение по умолчанию) | вектор символов | строкаМетод для интерполяции ответов модели на единый набор выходных времен в виде вектора символов или строки. Допустимые опции следуют.
Типы данных: char |
string
ShowWaitbar
— Отметьте, чтобы показать прогресс симуляций моделиfalse
(значение по умолчанию) | true
Отметьте, чтобы показать прогресс симуляций модели путем отображения индикатора выполнения в виде разделенной запятой пары, состоящей из 'ShowWaitbar'
и true
или false
. По умолчанию никакие не ожидают, панель отображена.
Типы данных: логический
sobolResults
— Результаты, содержащие индексы SobolSimBiology.gsa.Sobol
объектРезультаты, содержащие первое - и общий порядок индексы Sobol, возвращенные как SimBiology.gsa.Sobol
объект. Объект также содержит демонстрационные значения параметра, и данные о симуляции модели использовались для расчета индексов Sobol.
Объект результатов может содержать существенное количество данных моделирования (SimData). Размер объекта превышает (1 + number of observables) * number of output time points * (2 + number of parameters) * number of samples * 8
байты. Например, если у вас есть одно заметное, 500 выходных моментов времени, 8 параметров и 100 000 выборок, размером объекта является (1 + 1) * 500 * (2 + 8) * 100000 * 8
байты = 8 Гбайт. Если необходимо сохранить такие большие объекты, используйте этот синтаксис:
save(fileName,variableName,'-v7.3');
sbiosobol
реализует метод Сальтелли [1], чтобы вычислить индексы Sobol.
Считайте ответ модели SimBiology Y описанный как математическая модель , где Xi является параметром модели и i = 1,…,k
.
Индекс Sobol первого порядка (Si) дает часть полного отклонения ответа V(Y)
это может быть приписано изменениям одного только Xi. Si определяется следующим образом.
Общий порядок индекс Sobol (STi) дает часть полного отклонения ответа V(Y)
это может быть приписано любым объединенным изменениям параметра, которые включают изменения Xi. STi определяется следующим образом.
Чтобы вычислить отдельные значения для Y, соответствующего выборкам параметров X1, X1, …, Xk, считает две независимых матрицы выборки A и B.
n является объемом выборки. Каждая строка матриц, A и B соответствуют одному демонстрационному набору параметра, который является одной реализацией значений параметра модели.
Оценки для Si и STi получены из результатов симуляции модели с помощью демонстрационных значений из матриц A, B, и , который является матрицей, где все столбцы являются от A кроме i th столбцом, который является от B для i = 1, 2, …, params
.
Формулы, чтобы аппроксимировать первое - и общий порядок индексы Sobol следующие.
f(A)
, f(B)
, и результаты симуляции модели с помощью демонстрационных значений параметра из матриц A, B, и .
Матричный A соответствует ParameterSamples
свойство Sobol заканчивается объект (resultsObj.ParameterSamples
). Матричный B соответствует SupportSamples
свойство (resultsObj.SimulationInfo.SupportSamples
).
матрицы хранятся в SimData
структура SimulationInfo
свойство (resultsObj.SimulationInfo.SimData
). Размер SimulationInfo.SimData
NumberSamples-by-params + 2
, где NumberSamples является количеством отсчетов, и param является количеством входных параметров. Количеством столбцов является 2 + params
потому что первый столбец SimulationInfo.SimData
содержит результаты симуляции модели с помощью демонстрационного матричного A. Второй столбец содержит результаты симуляции с помощью SupportSamples
, который является другим демонстрационным матричным B. Остальная часть столбцов содержит использование результатов симуляции , , …, , …, . Смотрите getSimulationResults
получать результаты симуляции модели и выборки для заданного i th индекс () от SimulationInfo.SimData
массив.
[1] Сальтелли, Андреа, Паола Аннони, Ivano Azzini, Франческа Камполонго, Марко Ратто и Стефано Тарантола. “Основанный на отклонении Анализ чувствительности Выхода Модели. Проект и Средство оценки для Общего индекса Чувствительности”. Computer Physics Communications 181, № 2 (февраль 2010): 259–70. https://doi.org/10.1016/j.cpc.2009.09.018.
SimBiology.gsa.Sobol
| sbiompgsa
| sbioelementaryeffects
| Observable
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.