Вычислять доверительные интервалы для прогнозов модели (требуется набор инструментов для статистики и машинного обучения)
вычисляет 95% доверительные интервалы для результатов моделирования модели из ci = sbiopredictionci(fitResults)fitResultsодин NLINResults object или OptimResults object возвращено sbiofit. ci является PredictionConfidenceInterval объект, содержащий вычисленные данные доверительного интервала.
использует дополнительные параметры, указанные одним или несколькими ci = sbiopredictionci(fitResults,Name,Value)Name,Value аргументы пары.
В этом примере используются:
Загрузить данные
Загрузите образцы данных для подгонки. Данные хранятся в виде таблицы с переменными ID, Time, CentralConc и DepartingConc. Эти синтетические данные представляют временной ход концентраций в плазме, измеренных в восемь различных моментов времени как для центрального, так и для периферического отделения после инфузионной дозы для трех индивидуумов.
load data10_32R.mat gData = groupedData(data); gData.Properties.VariableUnits = {'','hour','milligram/liter','milligram/liter'}; sbiotrellis(gData,'ID','Time',{'CentralConc','PeripheralConc'},'Marker','+',... 'LineStyle','none');

Создать модель
Создайте двухкамерную модель.
pkmd = PKModelDesign; pkc1 = addCompartment(pkmd,'Central'); pkc1.DosingType = 'Infusion'; pkc1.EliminationType = 'linear-clearance'; pkc1.HasResponseVariable = true; pkc2 = addCompartment(pkmd,'Peripheral'); model = construct(pkmd); configset = getconfigset(model); configset.CompileOptions.UnitConversion = true;
Определение дозирования
Определите дозу инфузии.
dose = sbiodose('dose','TargetName','Drug_Central'); dose.StartTime = 0; dose.Amount = 100; dose.Rate = 50; dose.AmountUnits = 'milligram'; dose.TimeUnits = 'hour'; dose.RateUnits = 'milligram/hour';
Определение параметров
Определите параметры для оценки. Задайте границы параметров для каждого параметра. В дополнение к этим явным границам преобразования параметров (например, log, logit или probit) накладывают неявные границы.
responseMap = {'Drug_Central = CentralConc','Drug_Peripheral = PeripheralConc'};
paramsToEstimate = {'log(Central)','log(Peripheral)','Q12','Cl_Central'};
estimatedParam = estimatedInfo(paramsToEstimate,...
'InitialValue',[1 1 1 1],...
'Bounds',[0.1 3;0.1 10;0 10;0.1 2]);
Подгонка модели
Выполнить незаполненную подгонку, то есть один набор оценочных параметров для каждого пациента.
unpooledFit = sbiofit(model,gData,responseMap,estimatedParam,dose,'Pooled',false);
Выполните объединенную подгонку, то есть один набор оценочных параметров для всех пациентов.
pooledFit = sbiofit(model,gData,responseMap,estimatedParam,dose,'Pooled',true);
Вычислить доверительные интервалы для расчетных параметров
Вычислите 95% доверительные интервалы для каждого расчетного параметра в незаполненной посадке.
ciParamUnpooled = sbioparameterci(unpooledFit);
Показать результаты
Отображение доверительных интервалов в формате таблицы. Дополнительные сведения о значении каждого состояния оценки см. в разделе Состояние оценки доверительного интервала параметров.
ci2table(ciParamUnpooled)
ans =
12x7 table
Group Name Estimate ConfidenceInterval Type Alpha Status
_____ ______________ ________ __________________ ________ _____ ___________
1 {'Central' } 1.422 1.1533 1.6906 Gaussian 0.05 estimable
1 {'Peripheral'} 1.5629 0.83143 2.3551 Gaussian 0.05 constrained
1 {'Q12' } 0.47159 0.20093 0.80247 Gaussian 0.05 constrained
1 {'Cl_Central'} 0.52898 0.44842 0.60955 Gaussian 0.05 estimable
2 {'Central' } 1.8322 1.7893 1.8751 Gaussian 0.05 success
2 {'Peripheral'} 5.3368 3.9133 6.7602 Gaussian 0.05 success
2 {'Q12' } 0.27641 0.2093 0.34351 Gaussian 0.05 success
2 {'Cl_Central'} 0.86034 0.80313 0.91755 Gaussian 0.05 success
3 {'Central' } 1.6657 1.5818 1.7497 Gaussian 0.05 success
3 {'Peripheral'} 5.5632 4.7557 6.3708 Gaussian 0.05 success
3 {'Q12' } 0.78361 0.65581 0.91142 Gaussian 0.05 success
3 {'Cl_Central'} 1.0233 0.96375 1.0828 Gaussian 0.05 success
Постройте график доверительных интервалов. Если состояние оценки доверительного интервала равно success, он отображается синим цветом (первый цвет по умолчанию). В противном случае он отображается красным цветом (вторым цветом по умолчанию), что указывает на необходимость дальнейшего изучения соответствующих параметров. Если доверительный интервал равен not estimableзатем функция отображает красную линию с центрированным крестом. Если есть какие-либо преобразованные параметры с оценочными значениями 0 (для логарифмического преобразования) и 1 или 0 (для пробита или логитового преобразования), то для этих оценок параметров не строятся доверительные интервалы. Для просмотра порядка цветов введите get(groot,'defaultAxesColorOrder').
Группы отображаются слева направо в том же порядке, в котором они отображаются в GroupNames свойство объекта, которое используется для маркировки оси X. Y-метки являются преобразованными именами параметров.
plot(ciParamUnpooled)

Вычислите доверительные интервалы для объединенной посадки.
ciParamPooled = sbioparameterci(pooledFit);
Просмотрите доверительные интервалы.
ci2table(ciParamPooled)
ans =
4x7 table
Group Name Estimate ConfidenceInterval Type Alpha Status
______ ______________ ________ __________________ ________ _____ ___________
pooled {'Central' } 1.6626 1.3287 1.9965 Gaussian 0.05 estimable
pooled {'Peripheral'} 2.687 0.89848 4.8323 Gaussian 0.05 constrained
pooled {'Q12' } 0.44956 0.11445 0.85152 Gaussian 0.05 constrained
pooled {'Cl_Central'} 0.78493 0.59222 0.97764 Gaussian 0.05 estimable
Постройте график доверительных интервалов. Имя группы помечено как «объединенное» для указания такой посадки.
plot(ciParamPooled)

Постройте график всех результатов доверительного интервала вместе. По умолчанию доверительный интервал для каждой оценки параметров отображается на отдельных осях. Вертикальные линии группируют доверительные интервалы оценок параметров, которые были вычислены в общей посадке.
ciAll = [ciParamUnpooled;ciParamPooled]; plot(ciAll)

Можно также построить график всех доверительных интервалов в одной оси, сгруппированной по оценкам параметров, используя компоновку «Сгруппировано».
plot(ciAll,'Layout','Grouped')

В этом формате можно указать на маркер центра каждого доверительного интервала, чтобы увидеть имя группы. Каждый расчетный параметр разделен вертикальной черной линией. Вертикальные пунктирные линии группируют доверительные интервалы оценок параметров, которые были вычислены в общей посадке. Границы параметров, определенные в исходной посадке, отмечены квадратными скобками. Обратите внимание на различные масштабы на оси Y из-за преобразований параметров. Например, ось y Q12 в линейном масштабе, но Central находится в масштабе журнала из-за его преобразования.
Вычислить доверительные интервалы для предсказаний модели
Рассчитайте 95% доверительные интервалы для прогнозов модели, то есть результаты моделирования с использованием оцененных параметров.
% For the pooled fit ciPredPooled = sbiopredictionci(pooledFit); % For the unpooled fit ciPredUnpooled = sbiopredictionci(unpooledFit);
График доверительных интервалов для модельных прогнозов
Доверительный интервал для каждой группы отображается в отдельном столбце, а каждый ответ - в отдельной строке. Доверительные интервалы, ограниченные границами, нанесены красным цветом. Доверительные интервалы, не ограниченные границами, нанесены синим цветом.
plot(ciPredPooled)

plot(ciPredUnpooled)

fitResults - Результаты оценки параметров sbiofitNLINResults объект | OptimResults объект | векторРезультаты оценки параметров sbiofit, указано как NLINResults object, OptimResults objectили вектор объектов для незаполненных посадок, которые были возвращены из того же самого sbiofit звоните.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Alpha',0.01,'Type','bootstrap' определяет вычисление 99% доверительного интервала с помощью метода начальной загрузки.'Alpha' - Уровень достоверностиУровень достоверности, (1-Alpha) * 100%, указанная как пара, разделенная запятыми, состоящая из 'Alpha' и положительный скаляр между 0 и 1. Значение по умолчанию: 0.05, что означает, что вычисляется 95% доверительный интервал.
Пример: 'Alpha',0.01
'Type' - Тип доверительного интервала'gaussian' (по умолчанию) | 'bootstrap'Тип доверительного интервала, указанный как пара, разделенная запятыми, состоящая из 'Type' и вектор символов. Допустимые варианты:
'gaussian'- использовать гауссову аппроксимацию распределения откликов линеаризованной модели вокруг оценок параметров.
'bootstrap'- вычислять доверительные интервалы с помощью метода начальной загрузки.
Пример: 'Type','bootstrap'
'NumSamples' - Количество образцов для начальной загрузкиКоличество выборок для начальной загрузки, указанное как пара, разделенная запятыми, состоящая из 'NumSamples' и положительное целое число. Это число определяет количество посадок, которые выполняются во время вычисления доверительного интервала для генерации выборок начальной загрузки. Чем меньше число, тем быстрее становится вычисление доверительных интервалов за счет снижения точности.
Пример: 'NumSamples',500
'Display' - Уровень отображения, возвращенный в командную строку'off' (по умолчанию) | 'none' | 'final'Уровень отображения, возвращенный в командную строку, указанный как разделенная запятыми пара, состоящая из 'Display' и вектор символов. 'off' (по умолчанию) или 'none' не отображает выходные данные. 'final' отображает сообщение по завершении вычисления.
Пример: 'Display','final'
'UseParallel' - Логический флаг для параллельного вычисления доверительных интерваловtrue | falseЛогический флаг для параллельного вычисления доверительных интервалов, определяемый как разделенная запятыми пара, состоящая из 'UseParallel' и true или false. По умолчанию используются параметры параллелизма в исходном вписывании. Если для этого аргумента задано значение true При наличии Toolbox™ параллельных вычислений параметры параллельной посадки игнорируются, а доверительные интервалы вычисляются параллельно.
Для гауссовых доверительных интервалов:
Если вход fitResults является вектором объектов результатов, то вычисление доверительных интервалов для каждого объекта выполняется параллельно. Гауссовы доверительные интервалы быстро вычисляются. Таким образом, может быть более выгодно распараллелить исходную посадку (sbiofit) и не установлен UseParallel true для sbiopredictionci.
Для доверительных интервалов начальной загрузки:
Функция пересылает UseParallel флаг для bootci. Параллелизация по входному вектору объектов результатов отсутствует.
Примечание
Если имеется глобальный поток для генерации случайных чисел с рядом субпотоков для параллельного вычисления воспроизводимым образом, sbiopredictionci сначала проверяет, совпадает ли количество работников с количеством субпотоков. Если да, то набор функций UseSubstreams кому true в statset и переходит к bootci (Статистика и инструментарий машинного обучения). В противном случае субпотоки игнорируются по умолчанию.
Пример: 'UseParallel',true
ci - Результаты доверительного интервалаPredictionConfidenceInterval объектРезультаты доверительного интервала, возвращенные как PredictionConfidenceInterval объект. Для незаполненной посадки, ci может быть вектором PredictionConfidenceInterval объекты.
Модель линеаризуется вокруг оценок параметров Pest, которые получены из результатов подгонки, возвращаемых sbiofit. CovarianceMatrix преобразуется с использованием линеаризованной модели. Кроме того, неявные границы параметров (log, probit, или logit преобразования параметров, заданные в исходной посадке) и явные границы параметров (если заданы в исходной посадке) также отображаются через линеаризованную модель.
Для линеаризации модели sbiopredictionci сначала проверяет, включен ли элемент анализа чувствительности при исходной посадке. Если функция включена, функция использует якобиан, вычисленный с помощью комплексного дифференцирования шагов. Если функция отключена, якобиан вычисляется с использованием конечных разностей. Конечная разностность может быть неточной и учитывать включение функции анализа чувствительности при запуске sbiofit.
Функция использует преобразованное CovarianceMatrix вычисляет доверительные интервалы Гаусса для каждого оцененного ответа модели на каждом временном шаге.
В случаях, когда доверительный интервал ограничен границами параметров, определенными в исходной посадке, границы доверительного интервала корректируются в соответствии с подходом, описанным Wu, H. и Neale, M. [1].
Для каждого ответа модели функция сначала решает, является ли доверительный интервал неограниченным. Если это так, то состояние оценки соответствующего ответа модели устанавливается равным not estimable.
В противном случае, если доверительный интервал для ответа ограничен границей параметра, определенной в исходной посадке, функция устанавливает свой статус как constrained. Преобразования параметров (например, log, probit, или logit) наложить неявные границы на оцениваемые параметры, например, ограничения позитивности. Такие границы могут привести к завышению достоверности, то есть доверительный интервал может быть меньше ожидаемого.
Если доверительный интервал имеет статус оценки not estimable или constrained, то функция устанавливает статусы оценки всех ответов модели на success. В противном случае статусы оценки оставшихся ответов модели устанавливаются как estimable.
bootci Функция (Statistics and Machine Learning Toolbox) из Toolbox™ Statistics and Machine Learning используется для вычисления доверительных интервалов начальной загрузки. Первым входным nboot является количество выборок (NumSamples), и второй входной bootfun является функцией, которая выполняет эти действия.
Повторная выборка данных (независимо внутри каждой группы, если доступно несколько групп).
Выполните подгонку параметра с повторно дискретизированными данными.
Моделирование модели с использованием расчетных параметров для получения откликов модели.
Возврат ответов модели.
Состояние оценки всегда устанавливается равным estimable поскольку функция не может определить, ограничены ли доверительные интервалы границами в оценках параметров.
[1] Ву, H. и член конгресса Нил. «Скорректированные доверительные интервалы для ограниченного параметра». Генетика поведения. 42 (6), 2012, стр. 886-898.
Параллельный запуск, установка 'UseParallel' кому true.
Дополнительные сведения см. в разделе 'UseParallel' аргумент пары имя-значение.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.