exponenta event banner

bootci

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

Описание

пример

ci = bootci(nboot,bootfun,d) вычисляет 95% доверительный интервал начальной загрузки для каждой статистики, вычисленной функцией bootfun. bootci функции использует nboot выборки начальной загрузки при ее вычислении и создает каждую выборку начальной загрузки путем выборки с заменой из строк d.

пример

ci = bootci(nboot,bootfun,d1,...,dN) создает каждую выборку начальной загрузки путем выборки с заменой из строк аргументов нескалярных данных в d1,...,dN. Эти нескалярные аргументы должны иметь одинаковое количество строк. bootci функция передает выборки нескалярных данных и неизмененные аргументы скалярных данных в d1,...,dN кому bootfun.

пример

ci = bootci(nboot,{bootfun,d},Name,Value) указывает параметры, использующие один или несколько аргументов значения имени. Например, можно изменить тип доверительного интервала, указав 'Type' аргумент «имя-значение».

Обратите внимание, что вы должны пройти bootfun и d аргументы в bootci как массив одной ячейки.

пример

ci = bootci(nboot,{bootfun,d1,...,dN},Name,Value) указывает параметры, использующие один или несколько аргументов значения имени. Например, можно изменить уровень значимости доверительного интервала, указав 'Alpha' аргумент «имя-значение».

Обратите внимание, что вы должны пройти bootfun и d1,...,dN аргументы в bootci как массив одной ячейки.

пример

[ci,bootstat] = bootci(___) также возвращает статистику начальной загрузки, вычисленную для каждого из nboot bootstrap реплицировать выборки, используя любую из комбинаций входных аргументов в предыдущих синтаксисах. Каждая строка bootstat содержит результаты применения bootfun к одному образцу начальной загрузки.

Примеры

свернуть все

Вычислите доверительный интервал для индекса возможностей в статистическом управлении процессом.

Создайте 30 случайных чисел из нормального распределения со средним значением 1 и стандартным отклонением 1.

rng('default') % For reproducibility
y = normrnd(1,1,30,1);

Укажите нижний и верхний пределы спецификации процесса. Определите индекс возможностей.

LSL = -3;
USL = 3;
capable = @(x)(USL-LSL)./(6*std(x));

Вычислите 95% доверительный интервал для индекса возможностей, используя 2000 выборок начальной загрузки. По умолчанию bootci использует метод коррекции смещения и ускоренного процентиля для построения доверительного интервала.

ci = bootci(2000,capable,y)
ci = 2×1

    0.5937
    0.9900

Вычислите изученный доверительный интервал для индекса возможностей.

sci = bootci(2000,{capable,y},'Type','student')
sci = 2×1

    0.5193
    0.9930

Вычислите доверительные интервалы начальной загрузки для коэффициентов модели нелинейной регрессии. Метод, используемый в этом примере, включает в себя начальную загрузку предиктора и значений ответа и предполагает, что предикторная переменная является случайной. Метод, предполагающий, что переменная предиктора фиксирована и загружает остатки, см. в разделе Доверительные интервалы начальной загрузки для коэффициентов модели линейной регрессии.

Примечание.В этом примере используется nlinfit, что полезно, когда нужны только оценки коэффициентов или остатки нелинейной регрессионной модели, и нужно повторить подгонку модели несколько раз, как в случае начальной загрузки. Если необходимо дополнительно исследовать подогнанную регрессионную модель, создайте объект нелинейной регрессионной модели с помощью fitnlm. Можно создать доверительные интервалы для коэффициентов результирующей модели с помощью coefCI объектная функция, хотя эта функция не использует функцию начальной загрузки.

Создайте данные из модели нелинейной регрессии y=b1+b2⋅exp (-b3x) +ϵ, где b1 = 1, b2 = 3 и b3 = 2 - коэффициенты; переменная x предиктора экспоненциально распределена со средним значением 2; и термин ошибки ϵ обычно распределяется со средним значением 0 и стандартным отклонением 0,1.

modelfun = @(b,x)(b(1)+b(2)*exp(-b(3)*x));

rng('default') % For reproducibility
b = [1;3;2];
x = exprnd(2,100,1);
y = modelfun(b,x) + normrnd(0,0.1,100,1);

Создайте дескриптор функции для модели нелинейной регрессии, использующей начальные значения в beta0.

beta0 = [2;2;2];
beta = @(predictor,response)nlinfit(predictor,response,modelfun,beta0)
beta = function_handle with value:
    @(predictor,response)nlinfit(predictor,response,modelfun,beta0)

Вычислите 95% доверительные интервалы начальной загрузки для коэффициентов модели нелинейной регрессии. Создание образцов начальной загрузки из сгенерированных данных x и y.

ci = bootci(1000,beta,x,y)
ci = 2×3

    0.9821    2.9552    2.0180
    1.0410    3.1623    2.2695

Первые два доверительных интервала включают в себя истинные значения коэффициентов b1 = 1 и b2 = 3 соответственно. Однако третий доверительный интервал не включает истинное значение коэффициента b3 = 2.

Теперь вычислите 99% доверительные интервалы начальной загрузки для коэффициентов модели.

newci = bootci(1000,{beta,x,y},'Alpha',0.01)
newci = 2×3

    0.9730    2.9112    1.9562
    1.0469    3.1876    2.3133

Все три доверительных интервала включают истинные значения коэффициентов.

Вычислите доверительные интервалы начальной загрузки для коэффициентов модели линейной регрессии. Метод, используемый в этом примере, включает начальную загрузку остатков и предполагает, что переменная предиктора является фиксированной. Метод, предполагающий, что предикторная переменная является случайной и загружает предиктор и значения ответа, см. в разделе Доверительные интервалы начальной загрузки для коэффициентов модели нелинейной регрессии.

Примечание.В этом примере используется regress, что полезно, когда нужны только оценки коэффициентов или остатки регрессионной модели, и нужно повторить подгонку модели несколько раз, как в случае начальной загрузки. Если необходимо дополнительно исследовать подогнанную регрессионную модель, создайте объект модели линейной регрессии с помощью fitlm. Можно создать доверительные интервалы для коэффициентов результирующей модели с помощью coefCI объектная функция, хотя эта функция не использует функцию начальной загрузки.

Загрузите образцы данных.

load hald

Выполните линейную регрессию и вычислите остатки.

x = [ones(size(heat)),ingredients];
y = heat;
b = regress(y,x);
yfit = x*b;
resid = y - yfit;

Вычислите 95% доверительные интервалы начальной загрузки для коэффициентов модели линейной регрессии. Создайте образцы начальной загрузки из остатков. Используйте нормальные аппроксимированные интервалы с загрузочным смещением и стандартной ошибкой, указав 'Type','normal'. В этом случае нельзя использовать тип доверительного интервала по умолчанию.

ci = bootci(1000,{@(bootr)regress(yfit+bootr,x),resid}, ...
    'Type','normal')
ci = 2×5

  -47.7130    0.3916   -0.6298   -1.0697   -1.2604
  172.4899    2.7202    1.6495    1.2778    0.9704

Постройте график расчетных коэффициентов b, исключая член перехвата и отображая полосы ошибок, показывающие доверительные интервалы коэффициентов.

slopes = b(2:end)';
lowerBarLengths = slopes-ci(1,2:end);
upperBarLengths = ci(2,2:end)-slopes;
errorbar(1:4,slopes,lowerBarLengths,upperBarLengths)
xlim([0 5])
title('Coefficient Confidence Intervals')

Figure contains an axes. The axes with title Coefficient Confidence Intervals contains an object of type errorbar.

Только первый неинтерцептный коэффициент существенно отличается от 0.

Вычислите среднее и стандартное отклонения 100 выборок начальной загрузки. Найдите 95% доверительный интервал для каждой статистики.

Создайте 100 случайных чисел из экспоненциального распределения со средним значением 5.

rng('default') % For reproducibility
y = exprnd(5,100,1);

Нарисуйте 100 образцов начальной загрузки из вектора y. Для каждого образца начальной загрузки вычислите среднее значение и стандартное отклонение. Найдите 95% доверительный интервал начальной загрузки для среднего и стандартного отклонения.

[ci,bootstat] = bootci(100,@(x)[mean(x) std(x)],y);

ci(:,1) содержит нижнюю и верхнюю границы среднего доверительного интервала, и c(:,2) содержит нижнюю и верхнюю границы доверительного интервала стандартного отклонения. Каждая строка bootstat содержит среднее и стандартное отклонения образца начальной загрузки.

Постройте график среднего и стандартного отклонения каждого образца начальной загрузки в качестве точки. Постройте график нижней и верхней границ среднего доверительного интервала в виде пунктирных вертикальных линий и график нижней и верхней границ доверительного интервала стандартного отклонения в виде пунктирных горизонтальных линий.

plot(bootstat(:,1),bootstat(:,2),'o')
xline(ci(1,1),':')
xline(ci(2,1),':')
yline(ci(1,2),':')
yline(ci(2,2),':')
xlabel('Mean')
ylabel('Standard Deviation')

Figure contains an axes. The axes contains 5 objects of type line, constantline.

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

свернуть все

Число выборок начальной загрузки, указанных как положительный скаляр целого числа. Чтобы создать каждый образец начальной загрузки, bootci случайным образом выбирает с заменой n вне n строки нескалярных данных в d или d1,...,dN.

Пример: 100

Типы данных: single | double

Функция, применяемая к каждому образцу, заданному как дескриптор функции. Функция может быть пользовательской или встроенной. Необходимо указать bootfun с @ символ.

Пример: @mean

Типы данных: function_handle

Данные для выборки из, указанные как вектор столбца или матрица. n строки d соответствуют наблюдениям. При использовании нескольких аргументов ввода данных d1,...,dN, можно указать некоторые аргументы как скалярные значения, но все нескалярные аргументы должны иметь одинаковое количество строк.

Если используется один векторный аргумент d, его можно указать как вектор строки. bootci затем выборки из элементов вектора.

Типы данных: single | double

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

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

Пример: bootci(100,{@mean,1:6'},'Alpha',0.1) указывает, что необходимо извлечь 100 выборок начальной загрузки из значений от 1 до 6, взять среднее значение каждой выборки и затем вычислить 90% доверительный интервал для среднего значения выборки.

Уровень значимости, заданный как положительный скаляр между 0 и 1. bootci вычисляет 100*(1-Alpha) доверительный интервал начальной загрузки каждой статистики, определенной функцией bootfun.

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

Типы данных: single | double

Тип доверительного интервала, указанный как одно из значений в этой таблице.

СтоимостьОписание
'norm' или 'normal' Нормальный аппроксимированный интервал с загрузочным смещением и стандартной ошибкой [1]
'per' или 'percentile'Метод базового процентиля
'cper' или 'corrected percentile'Метод процентиля с поправкой на смещение [2]
'bca'

Метод коррекции смещения и ускоренного процентиля [3], [4] - включает коэффициент z0, который вычисляется с использованием доли значений начальной загрузки, которые меньше исходного значения выборки. Для получения разумных результатов, когда выборка является комковатой, программа вычисляет z0 путем включения половины значений начальной загрузки, совпадающих с исходным значением выборки.

'stud' или 'student'Изученный доверительный интервал [3]

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

Число выборок начальной загрузки для изученной стандартной оценки ошибок, указанной как положительный целочисленный скаляр.

bootci вычисляет изученный доверительный интервал начальной загрузки статистики, определенной функцией bootfunи оценивает стандартную ошибку статистики начальной загрузки с помощью NBootStd выборки данных начальной загрузки.

Примечание

Чтобы использовать этот аргумент «имя-значение», Type значение должно быть 'stud' или 'student'. Укажите либо NBootStd или StdErrно не оба.

Пример: 'NBootStd',50

Типы данных: single | double

Функция, используемая для вычисления изученной стандартной оценки ошибки, заданной как дескриптор функции.

bootci вычисляет изученный доверительный интервал начальной загрузки статистики, определенной функцией bootfunи оценивает стандартную ошибку статистики начальной загрузки с помощью функции StdErr. StdErr функция должна принимать те же аргументы, что и bootfun и возвращает стандартную ошибку статистики, вычисленную bootfun.

Примечание

Чтобы использовать этот аргумент «имя-значение», Type значение должно быть 'stud' или 'student'. Укажите либо NBootStd или StdErrно не оба.

Пример: 'StdErr',@std

Типы данных: function_handle

Веса наблюдения, определяемые как неотрицательный вектор с, по меньшей мере, одним положительным элементом. Количество элементов в Weights должно быть равно количеству строк n в данных d или d1,...,dN. Чтобы получить один образец начальной загрузки, bootci случайным образом выбирает с заменой n вне n ряды данных с использованием этих весов в качестве вероятностей полиномиальной выборки.

Типы данных: single | double

Опции для вычисления итераций начальной загрузки параллельно и установки случайных чисел во время выборки начальной загрузки, заданные как структура. Создать Options структура с statset. В этой таблице перечислены поля опций и их значения.

Имя поляСтоимостьДефолт
UseParallelЗадайте для этого значения значение true для параллельного вычисления итераций начальной загрузки.false
UseSubstreams

Задайте для этого значения значение true для параллельного выполнения вычислений воспроизводимым образом.

Для воспроизводимого вычисления установите Streams к типу, допускающему субпотоки: 'mlfg6331_64' или 'mrg32k3a'.

false
StreamsУкажите это значение как RandStream объект или массив ячеек таких объектов. Использовать один объект, за исключением случаев, когда UseParallel значение равно true и UseSubstreams значение равно false. В этом случае используйте массив ячеек, размер которого совпадает с размером параллельного пула.Если не указать Streams, то bootci использует поток или потоки по умолчанию.

Примечание

Для параллельного выполнения вычислений требуется Toolbox™ параллельных вычислений.

Пример: 'Options',statset('UseParallel',true)

Типы данных: struct

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

свернуть все

Границы доверительного интервала, возвращаемые как вектор, матрица или многомерный массив с двумя строками.

  • Если bootfun возвращает скаляр, затем ci - вектор, содержащий нижнюю и верхнюю границы доверительного интервала.

  • Если bootfun возвращает вектор длиной m, затем ci является матрицей размера 2 на m, где ci(1,:) нижние границы и ci(2,:) являются верхними границами.

  • Если bootfun возвращает многомерный массив, затем ci является массивом, где ci(1,:,...) является массивом нижних границ и ci(2,:,...) - массив верхних границ.

Статистика начальной загрузки, возвращаемая в виде вектора столбца или матрицы с nboot строк. iтретий ряд bootstat соответствует результатам применения bootfun в iОбразец начальной загрузки. Если bootfun возвращает матрицу или массив, затем bootci функция сначала преобразует этот вывод в вектор строки, прежде чем сохранить его в bootstat.

Ссылки

[1] Дэвисон, А. К. и Д. В. Хинкли. Методы начальной загрузки и их применения. Издательство Кембриджского университета, 1997 год.

[2] Эфрон, Брэдли. Джекнайф, Бутстрэп и другие планы ресамплинга. Филадельфия: Общество промышленной и прикладной математики, 1982.

[3] ДиЧиччо, Томас Дж. и Брэдли Эфрон. «Доверительные интервалы начальной загрузки». Статистическая наука 11, № 3 (1996): 189-228.

[4] Эфрон, Брэдли и Роберт Дж. Тибширани. Введение в загрузочную карту. Нью-Йорк: Chapman & Hall, 1993.

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

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