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

Создайте модель
Создайте модель 2D отсека.
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';
Задайте параметры
Задайте параметры, чтобы оценить. Установите границы параметра для каждого параметра. В дополнение к этим явным границам преобразования параметра (такие как журнал, логит или пробит) налагают неявные границы.
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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'Alpha',0.01,'Type','profileLikelihood' задает, чтобы вычислить 99%-й доверительный интервал с помощью подхода вероятности профиля.\alpha Доверительный уровеньДоверительный уровень, (1-Alpha) * 100%, заданный как пара, разделенная запятой, состоящая из 'Alpha' и положительной скалярной величины между 0 и 1. Значением по умолчанию является 0.05, означая, что 95%-й доверительный интервал вычисляется.
Пример: 'Alpha',0.01
Ввод Тип доверительного интервала'gaussian' (значение по умолчанию) | 'profileLikelihood' | 'bootstrap'Тип доверительного интервала, заданный как пара, разделенная запятой, состоящая из 'Type' и вектора символов. Допустимый выбор:
'gaussian' – Используйте Гауссово приближение распределения оценок параметра.
'profileLikelihood' – Вычислите интервалы вероятности профиля. Этот тип не поддержан для оценок параметра из иерархических моделей, то есть, предполагаемые результаты подбора кривой различным категориям (таким как Возраст или Пол). Другими словами, если вы устанавливаете свойство CategoryVariableName EstimatedInfo object в вашей исходной подгонке, затем результаты подгонки являются иерархическими, поэтому, вы не можете вычислить доверительные интервалы profileLikelihood на результатах. Для получения дополнительной информации смотрите Вычисление Доверительного интервала Вероятности Профиля.
'bootstrap' – Вычислите доверительные интервалы с помощью метода начальной загрузки.
Пример: 'Type','bootstrap'
Допуск Допуск к вероятности профиля и вычислениям доверительного интервала начальной загрузки1e-5 (значение по умолчанию) | положительная скалярная величинаДопуск к вероятности профиля и вычислениям доверительного интервала начальной загрузки, заданным как пара, разделенная запятой, состоящая из 'Tolerance' и положительной скалярной величины.
Метод вероятности профиля использует это значение в качестве допуска завершения. Для получения дополнительной информации смотрите Вычисление Доверительного интервала Вероятности Профиля.
Метод начальной загрузки использует это значение, чтобы определить, ограничивается ли доверительный интервал границами, заданными в исходной подгонке. Для получения дополнительной информации смотрите Вычисление Доверительного интервала Начальной загрузки.
Пример: 'Tolerance',1e-6
'MaxStepSize' — Максимальный размер шага используется для вычисления кривых вероятности профиля0.1 (значение по умолчанию) | положительная скалярная величина | [] | массив ячеекМаксимальный размер шага используется для вычисления кривых вероятности профиля, заданных как пара, разделенная запятой, состоящая из 'MaxStepSize' и положительной скалярной величины, [] или массива ячеек. По умолчанию этот аргумент установлен в 0.1. Если вы устанавливаете его на [], то максимальный размер шага установлен в 10% ширины Гауссова приближения доверительного интервала, если это существует. Можно задать максимальный размер шага (или []) для каждого предполагаемого параметра с помощью массива ячеек.
Пример: 'MaxStepSize',0.5
numSamples Количество выборок для начальной загрузкиКоличество выборок для начальной загрузки, заданный как пара, разделенная запятой, состоящая из 'NumSamples' и положительного целого числа. Этот номер задает количество подгонок, которые выполняются во время вычисления доверительного интервала, чтобы сгенерировать выборки начальной загрузки. Чем меньше номер, тем быстрее вычисление доверительных интервалов становится, за счет уменьшенной точности.
Пример: 'NumSamples',500
Отображение Уровень отображения возвращен в командную строку'off' (значение по умолчанию) | 'none' | 'final' | 'iter'Уровень отображения возвращен в командную строку, заданную как пара, разделенная запятой, состоящая из 'Display' и вектора символов. 'off' (значение по умолчанию) или 'none' не отображает вывода. 'final' отображает сообщение, когда вычисление заканчивается. 'iter' отображает вывод в каждой итерации.
Пример: 'Display','final'
'UseParallel' — Logical, чтобы вычислить доверительные интервалы параллельноtrue | falseЛогический флаг, чтобы вычислить доверительные интервалы параллельно, заданный как пара, разделенная запятой, состоящая из 'UseParallel' и true или false. По умолчанию параллельные опции в исходной подгонке используются. Если этот аргумент установлен в true, и Parallel Computing Toolbox™ доступен, параллельные опции в исходной подгонке проигнорированы, и доверительные интервалы вычисляются параллельно.
Для Гауссовых доверительных интервалов:
Если вход fitResults является вектором объектов результатов, то вычисление доверительных интервалов для каждого объекта выполняется параллельно. Гауссовы доверительные интервалы быстры, чтобы вычислить. Так, это может быть более выгодно, чтобы параллелизировать исходную подгонку (sbiofit) и не установить UseParallel на истину для sbioparameterci.
Для доверительных интервалов Вероятности Профиля:
Если количество объектов результатов в векторе входа fitResults больше, чем количество предполагаемых параметров, то вычисление доверительных интервалов для каждого объекта выполняется параллельно.
В противном случае доверительные интервалы для всех предполагаемых параметров в каждый заканчивается, объект вычисляется параллельно перед функциональными шагами к следующему объекту результатов.
Для доверительных интервалов Начальной загрузки:
Функция вперед флаг UseParallel к bootci. Нет никакого распараллеливания по входному вектору объектов результатов.
Если у вас есть глобальный поток для генерации случайных чисел с несколькими подпотоками, чтобы вычислить параллельно восстанавливаемым способом, sbioparameterci сначала проверяет, чтобы видеть, является ли количество рабочих тем же самым как количество подпотоков. Если так, sbioparameterci устанавливает UseSubstreams на true в опции statset и передает его bootci. В противном случае подпотоки проигнорированы по умолчанию.
Пример: 'UseParallel',true
ci — Результаты доверительного интервалаParameterConfidenceIntervalРезультаты доверительного интервала, возвращенные как объект ParameterConfidenceInterval. Для необъединенной подгонки ci может быть вектором объектов ParameterConfidenceInterval.
Функция использует Вальдовую тестовую статистическую величину [1], чтобы вычислить доверительные интервалы. Предположение, что существует достаточно данных, оценки параметра, Pest, являются приблизительно t-distributed Студента с ковариационной матрицей S (свойство CovarianceMatrix объекта результатов) возвращенный sbiofit.
Доверительный интервал для ith параметра оценивает, что Pest,i вычисляется можно следующим образом:
, где Tinv является t обратной кумулятивной функцией распределения Студента (tinv) с вероятностью 1-(Alpha/2), и Si,i является диагональным элементом (отклонение) ковариационной матрицы S.
В случаях, где доверительный интервал ограничивается границами параметра, заданными в исходной подгонке, границы доверительного интервала настроены согласно подходу, описанному Ву, H. и Нилом, M. [2].
Для каждой оценки параметра сначала решает функция, неограничен ли доверительный интервал оценки параметра. Если так, функция устанавливает состояние оценки соответствующей оценки параметра к not estimable.
В противном случае, если доверительный интервал для оценки параметра ограничивается параметром, связанным заданный в исходной подгонке, функция устанавливает состояние оценки на constrained. Преобразования параметра (такие как log, probit или logit) налагают неявные границы на предполагаемые параметры, например, ограничения положительности. Такие границы могут привести к переоценке уверенности, то есть, доверительный интервал может быть меньшим, чем ожидалось.
Если никакой доверительный интервал не имеет состояние not estimable или constrained оценки, то функция устанавливает состояния оценки всех оценок параметра к success. В противном случае состояния оценки остающихся оценок параметра установлены в estimable.
Задайте L, чтобы быть вероятностью, LH, оценок параметра (сохраненный в свойстве ParameterEstimates объекта результатов) возвращенный sbiofit, , где Pest является вектором оценок параметра, Pest,1, Pest,2, …, Pest,n.
Функция правдоподобия профиля PL для параметра Pi задана как:
, где n является общим количеством параметров.
На Теорему Уилкса [3], тестовая статистическая величина отношения правдоподобия,
, хи-квадрат, распределенный с 1 степенью свободы.
Поэтому найдите весь Pi так, чтобы
:.
Эквивалентно
, где
целевое значение используется в вычислении логарифмической кривой вероятности профиля, как описано затем.
Запустите в Pest,i и оцените вероятность L.
Вычислите логарифмическую вероятность профиля в Pest,i
+ k * MaxStepSize для каждой стороны (или направление) доверительного интервала, то есть, k = 1, 2, 3,… и k = -1, -2, -3,….
Остановитесь, если одному из этого критерия остановки соответствуют на каждой стороне.
Логарифмическая вероятность профиля падает ниже целевого значения. В этом случае начните делить пополам между Pbelow и Pabove, где Pbelow является значением параметров с самым большим логарифмическим значением вероятности профиля ниже целевого значения и Pabove значение параметров с наименьшим логарифмическим значением вероятности профиля, больше, чем целевое значение. Остановите деление пополам, если одно из следующего верно:
Любая соседняя логарифмическая вероятность профиля значения является меньше, чем Допуск независимо. Установите состояние для соответствующей стороны доверительного интервала к success.
Интервал деления пополам становится меньшим, чем max(Tolerance,2*eps('double')) и кривая вероятности профиля, вычисленная до сих пор, выше целевого значения. Установите состояние соответствующей стороны к not estimable.
Приближение линейного градиента кривой вероятности профиля (конечная разность двух соседних значений параметров) больше, чем - Допуск (отрицательная величина допуска). Установите состояние соответствующей стороны к not estimable.
Шаг ограничивается связанным, заданным в исходной подгонке. Оцените в связанном и установите состояние соответствующей стороны к constrained.
Если обе стороны доверительного интервала неудачны, то есть, имейте состояние not estimable, функция устанавливает состояние оценки (ci.Results. Состояние) к not estimable.
Если никакая сторона не имеет состояние not estimable, и одна сторона имеет состояние constrained, функция устанавливает состояние оценки (ci.Results. Состояние) к constrained.
Если вычисление для всех параметров с обеих сторон доверительных интервалов успешно, установите состояние оценки (ci.Results. Состояние) к success.
В противном случае функция устанавливает состояния оценки остающихся оценок параметра к estimable.
Функция bootci от Statistics and Machine Learning Toolbox™ используется, чтобы вычислить доверительные интервалы начальной загрузки. Первый вход nboot является количеством выборок (NumSamples), и второй вход bootfun является функцией, которая выполняет эти действия:
Передискретизируйте данные (независимо в каждой группе, если несколько групп доступны).
Запустите подгонку параметра с передискретизируемыми данными.
Возвратите предполагаемые параметры.
Если доверительный интервал ближе, чем Tolerance к связанному параметру, как задано в исходной подгонке, функция устанавливает состояние оценки на constrained. Если все доверительные интервалы еще дальше от границ параметра, чем Tolerance, функция устанавливает состояние на success. В противном случае это установлено в estimable.
[1] Вальд, A. "Тесты Статистических Гипотез Относительно Нескольких Параметров, когда Количество Наблюдений является Большим". Транзакции американского Математического Общества. 54 (3), 1943, стр 426-482.
[2] Ву, H. и Член конгресса Нил. "Настроенные Доверительные интервалы для Ограниченного Параметра". Генетика поведения. 42 (6), 2012, стр 886-898.
[3] Уилкс, судно "Распределение Большой выборки Отношения правдоподобия для Тестирования Сложных гипотез". Летопись Математической Статистики. 9 (1), 1938, стр 60–62.
Чтобы запуститься параллельно, установите 'UseParallel' на true.
Для получения дополнительной информации смотрите аргумент пары "имя-значение" 'UseParallel'.
ConfidenceInterval | ParameterConfidenceInterval | sbiofit | sbiopredictionci
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.