Объект, содержащий индексы Соболя первого и общего порядка
Создать SimBiology.gsa.Sobol объект с использованием sbiosobol.
ParameterSamples - Выборочные значения параметровЭто свойство доступно только для чтения.
Выборочные значения параметров, указанные как таблица. Значения выборки параметров используются для аппроксимации индексов Соболя. Дополнительные сведения см. в разделе Метод Saltelli для вычисления индексов Соболь.
Типы данных: table
Observables - Названия типовых ответов или наблюдаемых объектовЭто свойство доступно только для чтения.
Имена откликов модели или наблюдаемых объектов, указанных как массив ячеек символьных векторов.
Типы данных: char
Time - Моменты времениЭто свойство доступно только для чтения.
Временные точки, в которых вычисляются индексы Соболя, определяемые как числовой вектор столбца. Свойство имеет значение [] если все наблюдаемые являются скалярами.
Типы данных: double
SobolIndices - Расчетные индексы соболяЭто свойство доступно только для чтения.
Вычисленные индексы соболя, заданные как массив структуры. Размер массива: [params,observables], где params - количество входных параметров и наблюдаемых - количество наблюдаемых.
Каждая структура содержит следующие поля.
Parameter - имя входного параметра, заданного как символьный вектор;
Observable - имя наблюдаемого, указанного как символьный вектор;
FirstOrder - Индекс Соболя первого порядка, указанный как числовой вектор
TotalOrder - суммарный индекс Соболя порядка, заданный как числовой вектор.
Если все наблюдаемые являются скалярными, то FirstOrder и TotalOrder поля задаются как скаляры. Если некоторые наблюдаемые являются скалярами, а некоторые - векторами, FirstOrder и TotalOrder числовые векторы длины Time. Скалярные наблюдаемые расширяются скалярно, где каждый момент времени имеет одно и то же значение.
Типы данных: struct
Variance - Значения отклонений для временных курсов наблюдаемых объектовЭто свойство доступно только для чтения.
Значения дисперсии для временных курсов наблюдаемых объектов, указанные как таблица. Каждый столбец таблицы содержит значения отклонений для временных курсов каждого наблюдаемого.
Если все наблюдаемые являются скалярами, то Variance таблица содержит одну строку. Если некоторые наблюдаемые являются скалярами, а некоторые - векторами, то дисперсии для скалярных наблюдаемых расширяются скалярно, где каждая строка имеет одно и то же значение.
VariableNames свойство таблицы (Variance.Properties.VariableNames) является массивом ячеек символьных векторов, содержащих имена наблюдаемых объектов, предоставляемых в качестве входных данных для sbiosobol. При необходимости имена усекаются. VariableDescriptions содержит неусеченные наблюдаемые имена.
Типы данных: table
SimulationInfo - Сведения о моделировании, используемые для расчета индексов СобольЭто свойство доступно только для чтения.
Информация моделирования, такая как данные моделирования и выборки параметров, используемые для вычисления индексов Соболь, заданная как структура. Структура содержит следующие поля.
SimFunction — SimFunction используется для моделирования откликов модели или наблюдаемых объектов.
SimData — SimData массив размеров [NumberSamples,2 + params], где NumberSamples - количество выборок, а params - количество входных параметров.
Первый столбец содержит результаты моделирования модели из ParameterSamples.
Второй столбец содержит результаты моделирования из SupportSamples.
Остальные столбцы содержат результаты моделирования из комбинаций значений параметров из ParameterSamples и SupportSamples. Для получения информации о получении результатов моделирования модели и образцов для указанного столбца (индекса) из этого SimData массив, см. getSimulationResults. Подробнее о том, как вычисляются индексы Соболь, см. Метод Сальтелли для вычисления индексов Соболь.
OutputTimes - Числовой вектор столбца, содержащий общий вектор времени всех SimData объекты.
Bounds - Числовая матрица размера [params,2]. params - количество входных параметров. Первый столбец содержит нижние границы, а второй столбец содержит верхние границы для входов чувствительности.
DoseTables - Массив ячеек таблиц доз, используемых для SimFunction оценка. DoseTables - выходной сигнал getTable(doseInput), где doseInput - стоимость, определенная для 'Doses' аргумент пары имя-значение в вызове sbiosobol или sbiompgsa. Если дозы не применяются, в этом поле устанавливается значение [].
ValidSample - Логическая матрица размера [NumberSamples,2 + params] указывает, не завершился ли результат моделирования для конкретного образца. Повторная выборка данных моделирования (SimData) может привести к NaN значения, если данные экстраполированы. Такие SimData указаны как недействительные.
InterpolationMethod - Наименование метода интерполяции для SimData.
SamplingMethod - Название метода отбора проб, используемого для рисования ParameterSamples.
RandomState - Структура, содержащая состояние rng перед рисованием ParameterSamples.
SupportSamples - Таблица значений выборки параметров, используемых для аппроксимации показателей Соболя. Дополнительные сведения см. в разделе Метод Saltelli для вычисления индексов Соболь.
Типы данных: struct
resample | Ресампл индексов Соболь новому вектору времени |
addobservable | Вычислить индексы Соболя для нового наблюдаемого выражения |
removeobservable | Удалить индексы Соболь наблюдаемых |
getSimulationResults | Получение результатов моделирования модели и выборочных значений, используемых для расчета индексов Соболь |
addsamples | Добавить дополнительные образцы в индексы Соболь |
plotData | Построение сводки квантилей моделирования модели из глобального анализа чувствительности (требуется набор инструментов для статистического и машинного обучения) |
plot | Построить график индексов и отклонений Соболя первого и общего порядка |
bar | Создание штрихового графика индексов Соболь первого и общего порядка |
Загрузить модель роста опухоли.
sbioloadproject tumor_growth_vpop_sa.sbprojПолучите вариант с расчетными параметрами и дозой для применения к модели.
v = getvariant(m1);
d = getdose(m1,'interval_dose');Получить активный конфигурационный элемент и установить вес опухоли в качестве ответа.
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 путем вычисления индексов Соболя первого и полного порядка с помощью sbiosobol. Набор 'ShowWaitBar' кому true для отображения хода моделирования. По умолчанию функция использует 1000 выборок параметров для вычисления индексов Соболя [1].
sobolResults = sbiosobol(m1,modelParamNames,outputName,'Variants',v,'Doses',d,'ShowWaitBar',true)
sobolResults =
Sobol with properties:
Time: [444x1 double]
SobolIndices: [5x1 struct]
Variance: [444x1 table]
Observables: {'[Tumor Growth Model].tumor_weight'}
ParameterSamples: [1000x5 table]
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);
Постройте график временного хода индексов Соболя первого и общего порядка.
h = plot(sobolResults);
% Resize the figure.
h.Position(:) = [100 100 1280 800];![Figure contains 12 axes. Axes 1 with title [Tumor Growth Model].tumor_weight contains 3 objects of type line. Axes 2 with title [Tumor Growth Model].tumor_weight contains 3 objects of type line. Axes 3 contains 3 objects of type line. Axes 4 contains 3 objects of type line. Axes 5 contains 3 objects of type line. Axes 6 contains 3 objects of type line. Axes 7 contains 3 objects of type line. Axes 8 contains 3 objects of type line. Axes 9 contains 3 objects of type line. Axes 10 contains 3 objects of type line. Axes 11 contains 3 objects of type line. Axes 12 contains an object of type line.](../../examples/simbio/win64/PerformGSAByComputingFirstAndTotalSobolIndicesExample_04.png)
Индекс Соболя первого порядка входного параметра дает долю общей дисперсии отклика, которую можно отнести только к вариациям входного параметра. Индекс общего порядка дает долю общей дисперсии отклика, которая может быть приписана любым вариациям параметра соединения, которые включают вариации входного параметра.
Из индексов Соболь сюжеты, параметры L1 и w0 кажутся наиболее чувствительными параметрами к массе опухоли до введения дозы при t = 7. Но после применения дозы, k1 и k2 становятся более чувствительными параметрами и вносят наибольший вклад в стадию дозирования веса опухоли. График общей дисперсии также показывает большую дисперсию для стадии после дозы при t > 35, чем для стадии до дозы роста опухоли, что указывает на то, что k1 и k2 могут быть более важными параметрами для дальнейшего изучения. Доля необъяснимой дисперсии показывает некоторую дисперсию при около t = 33, но график общей дисперсии показывает небольшую дисперсию при t = 33, что означает, что необъяснимая дисперсия может быть незначительной. Доля необъяснимой дисперсии вычисляется как 1 - (сумма всех индексов Соболя первого порядка), а общая дисперсия вычисляется с помощью var(response), где response является ответом модели в каждый момент времени.
Можно также отобразить значения чувствительности на гистограмме.
bar(sobolResults)
![Figure contains an axes. The axes with title [Tumor Growth Model].tumor_weight contains 22 objects of type patch, line. These objects represent first order, total order.](../../examples/simbio/win64/PerformGSAByComputingFirstAndTotalSobolIndicesExample_05.png)
Можно указать больше образцов для повышения точности индексов Соболя, но для завершения моделирования может потребоваться больше времени. Использовать addsamples для добавления дополнительных образцов. Например, если указано 1500 проб, функция выполняет 1500 * (2 + number of input parameters) моделирование.
gsaMoreSamples = addsamples(gsaResults,1500)
Свойство ReservateInfo объекта результата содержит различную информацию для вычисления индексов Соболь. Например, данные моделирования модели (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Ответ. Предположим, что четвертый столбец содержит один или несколько неудачных прогонов моделирования. Получение данных моделирования и значений образцов, используемых для этого моделирования, с помощью getSimulationResults.
[samplesUsed,sd,validruns] = getSimulationResults(sobolResults,4);
Можно добавлять пользовательские выражения в качестве наблюдаемых и вычислять индексы Соболя для добавляемых наблюдаемых. Например, можно вычислить индексы Соболя для максимального веса опухоли, определив пользовательское выражение следующим образом.
% 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);
sbiosobol реализует метод Сальтелли [1] для вычисления индексов Соболя.
Рассмотрим ответ модели SimBiology Y, выраженный как математическая модель X3,..., Xk), где Xi является параметром модели иi = 1,…,k.
Индекс Соболя первого порядка (Si) дает долю общей дисперсии отклика V(Y) это можно объяснить вариациями только в Си. Si определяется следующим образом.
V (Y)
Суммарный индекс Соболя (STi) дает долю общей дисперсии отклика V(Y) которые могут быть приписаны любым вариациям совместных параметров, которые включают вариации Xi. STi определяется следующим образом.
Y'X∼i)) V (Y)
Чтобы вычислить отдельные значения для Y, соответствующие выборкам параметров X1, X1,..., Xk, рассмотрим две независимые матрицы выборки A и B.
X11X12...X1kX21X22...X2k............Xn1Xn2...Xnk)
.. Xnk')
n - размер выборки. Каждая строка матриц А и В соответствует одному набору выборок параметров, который является единой реализацией значений параметров модели.
Оценки для Si и STi получены из результатов моделирования модели с использованием значений выборки из матриц A, B и , которая является матрицей, где все столбцы являются A, за исключением i-го столбца, который является B для i = 1, 2, …, params.
Xni '... Xnk)
Формулы для аппроксимации индексов Соболя первого и общего порядка следующие.
A) j) V (Y)
j) 2V (Y)
f(A), f(B)и j - результаты моделирования модели с использованием значений выборки параметров из матриц A, B ABi.
Матрица A соответствует ParameterSamples свойство объекта результатов Соболь (resultsObj.ParameterSamples). Матрица B соответствует SupportSamples собственность (resultsObj.SimulationInfo.SupportSamples).
Матрицы ABi сохраняются в SimData структура SimulationInfo собственность (resultsObj.SimulationInfo.SimData). Размер SimulationInfo.SimData является NumberSamples-by-params + 2, где NumberSamples - количество выборок, а param - количество входных параметров. Количество столбцов: 2 + params потому что первый столбец SimulationInfo.SimData содержит результаты моделирования модели с использованием матрицы образцов A. Второй столбец содержит результаты моделирования с использованием SupportSamplesОстальные столбцы содержат результаты моделирования с использованием , ,..., ABi,...ABparams. ПосмотритеgetSimulationResults для извлечения результатов моделирования модели и выборок для указанного i-го индекса () из SimulationInfo.SimData массив.
Объект результатов может содержать значительный объем данных моделирования (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');[1] Сальтелли, Андреа, Паола Аннони, Ивано Адзини, Франческа Камполонго, Марко Ратто и Стефано Тарантола. "Анализ чувствительности выходных данных модели на основе дисперсии. Конструктор и оценщик для общего индекса чувствительности ". Компьютерная физика связи 181, № 2 (февраль 2010): 259-70. https://doi.org/10.1016/j.cpc.2009.09.018.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.