Объект, содержащий сначала - и общий порядок индексы Sobol
Создайте SimBiology.gsa.Sobol
объектное использование sbiosobol
.
ParameterSamples
— Выбранные значения параметровЭто свойство доступно только для чтения.
Выбранные значения параметров в виде таблицы. Демонстрационные значения параметра используются для аппроксимации индексов Sobol. Для получения дополнительной информации см. Метод Сальтелли, чтобы Вычислить индексы Sobol.
Типы данных: table
Observables
— Имена ответов модели или observablesЭто свойство доступно только для чтения.
Имена ответов модели или observables в виде массива ячеек из символьных векторов.
Типы данных: char
Time
— Моменты времениЭто свойство доступно только для чтения.
Моменты времени, в которых индексы Sobol вычисляются в виде столбца числовой вектор. Свойством является []
если все observables являются скалярами.
Типы данных: double
SobolIndices
— Вычисленные sobol индексыЭто свойство доступно только для чтения.
Вычисленные sobol индексы в виде массива структур. Размером массива является [params,observables]
, где params является количеством входных параметров, и observables является количеством observables.
Каждая структура содержит следующие поля.
Parameter
— Имя входного параметра в виде вектора символов
Observable
— Имя заметного в виде вектора символов
FirstOrder
— Sobol первого порядка индексируют в виде числового вектора
TotalOrder
— Общий порядок Sobol индексирует в виде числового вектора.
Если все observables являются скаляром, то FirstOrder
и TotalOrder
поля заданы как скаляры. Если некоторые observables являются скалярами, и некоторые - векторы, FirstOrder
и TotalOrder
числовые векторы из длины Time
. Скаляр observables расширен до скаляра, где каждый момент времени имеет то же значение.
Типы данных: struct
Variance
— Значения отклонения для курсов времени observablesЭто свойство доступно только для чтения.
Значения отклонения для курсов времени observables в виде таблицы. Каждый столбец таблицы содержит значения отклонения для курсов времени каждого заметного.
Если все observables являются скалярами, то Variance
таблица ссорится. Если некоторые observables являются скалярами, и некоторые - векторы, то отклонения для скаляра observables расширены до скаляра, где каждая строка имеет то же значение.
VariableNames
свойство таблицы (Variance.Properties.VariableNames
) массив ячеек из символьных векторов, содержащий имена observables, предоставленного как входные параметры sbiosobol
. Имена являются усеченными в случае необходимости. VariableDescriptions
свойство содержит неусеченные заметные имена.
Типы данных: table
SimulationInfo
— Информация о симуляции используемые в вычислениях индексы SobolЭто свойство доступно только для чтения.
Информация о симуляции, такая как данные моделирования и выборки параметра, используемые в вычислениях индексы Sobol в виде структуры. Структура содержит следующие поля.
SimFunction
— SimFunction
объект используется для ответов имитационной модели или observables.
SimData
— SimData
массив размера [NumberSamples,2 + params]
, где NumberSamples является количеством выборок, и params является количеством входных параметров.
Первый столбец содержит результаты симуляции модели ParameterSamples
.
Второй столбец содержит результаты симуляции от SupportSamples
.
Остальная часть столбцов содержит результаты симуляции от комбинаций значений параметров от ParameterSamples
и SupportSamples
. Для получения информации о получении результатов симуляции модели и выборок для заданного столбца (индекс) от этого SimData
массив, смотрите getSimulationResults
. Для получения дополнительной информации о том, как индексы Sobol вычисляются, см. Метод Сальтелли, чтобы Вычислить индексы Sobol.
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
— Таблица демонстрационных значений параметра, используемых для аппроксимации индексов Sobol. Для получения дополнительной информации см. Метод Сальтелли, чтобы Вычислить индексы Sobol.
Типы данных: struct
resample | Передискретизируйте индексы Sobol к новому временному вектору |
addobservable | Вычислите индексы Sobol для нового заметного выражения |
removeobservable | Удалите индексы Sobol observables |
getSimulationResults | Получите результаты симуляции модели и демонстрационные значения используемые в вычислениях индексы Sobol |
addsamples | Добавьте дополнительные выборки в индексы Sobol |
plotData | Постройте сводные данные квантиля симуляций модели от глобального анализа чувствительности (требует Statistics and Machine Learning Toolbox), |
plot | График сначала - и общий порядок индексы Sobol и отклонения |
bar | Создайте столбиковую диаграмму первых - и общий порядок индексы Sobol |
Загрузите модель роста опухоли.
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].
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);
Постройте курс времени первого - и общий порядок индексы 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);
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
массив.
Объект результатов может содержать существенное количество данных моделирования (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] Сальтелли, Андреа, Паола Аннони, Ivano Azzini, Франческа Камполонго, Марко Ратто и Стефано Тарантола. “Основанный на отклонении Анализ чувствительности Выхода Модели. Проект и Средство оценки для Общего индекса Чувствительности”. Computer Physics Communications 181, № 2 (февраль 2010): 259–70. https://doi.org/10.1016/j.cpc.2009.09.018.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.