exponenta event banner

sbiopredictionci

Вычислять доверительные интервалы для прогнозов модели (требуется набор инструментов для статистики и машинного обучения)

Описание

пример

ci = sbiopredictionci(fitResults) вычисляет 95% доверительные интервалы для результатов моделирования модели из 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)

Входные аргументы

свернуть все

Результаты оценки параметров sbiofit, указано как NLINResults object, OptimResults objectили вектор объектов для незаполненных посадок, которые были возвращены из того же самого sbiofit звоните.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Alpha',0.01,'Type','bootstrap' определяет вычисление 99% доверительного интервала с помощью метода начальной загрузки.

Уровень достоверности, (1-Alpha) * 100%, указанная как пара, разделенная запятыми, состоящая из 'Alpha' и положительный скаляр между 0 и 1. Значение по умолчанию: 0.05, что означает, что вычисляется 95% доверительный интервал.

Пример: 'Alpha',0.01

Тип доверительного интервала, указанный как пара, разделенная запятыми, состоящая из 'Type' и вектор символов. Допустимые варианты:

Пример: 'Type','bootstrap'

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

Пример: 'NumSamples',500

Уровень отображения, возвращенный в командную строку, указанный как разделенная запятыми пара, состоящая из 'Display' и вектор символов. 'off' (по умолчанию) или 'none' не отображает выходные данные. 'final' отображает сообщение по завершении вычисления.

Пример: 'Display','final'

Логический флаг для параллельного вычисления доверительных интервалов, определяемый как разделенная запятыми пара, состоящая из 'UseParallel' и true или false. По умолчанию используются параметры параллелизма в исходном вписывании. Если для этого аргумента задано значение true При наличии Toolbox™ параллельных вычислений параметры параллельной посадки игнорируются, а доверительные интервалы вычисляются параллельно.

Для гауссовых доверительных интервалов:

  • Если вход fitResults является вектором объектов результатов, то вычисление доверительных интервалов для каждого объекта выполняется параллельно. Гауссовы доверительные интервалы быстро вычисляются. Таким образом, может быть более выгодно распараллелить исходную посадку (sbiofit) и не установлен UseParallel true для sbiopredictionci.

Для доверительных интервалов начальной загрузки:

  • Функция пересылает UseParallel флаг для bootci. Параллелизация по входному вектору объектов результатов отсутствует.

Примечание

Если имеется глобальный поток для генерации случайных чисел с рядом субпотоков для параллельного вычисления воспроизводимым образом, sbiopredictionci сначала проверяет, совпадает ли количество работников с количеством субпотоков. Если да, то набор функций UseSubstreams кому true в statset и переходит к bootci (Статистика и инструментарий машинного обучения). В противном случае субпотоки игнорируются по умолчанию.

Пример: 'UseParallel',true

Выходные аргументы

свернуть все

Результаты доверительного интервала, возвращенные как 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.

Расширенные возможности

Представлен в R2017b