bootci

Доверительный интервал Bootstrap

Описание

пример

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

пример

ci = bootci(nboot,bootfun,d1,...,dN) создает каждую выборку bootstrap путем выборки с заменой из строк нескалярных аргументов данных в 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));

Вычислите доверие интервал для индекса возможностей с помощью 2000 выборок bootstrap. По умолчанию 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

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

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

Сгенерируйте данные из нелинейной регрессионой модели y=b1+b2exp(-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% доверительные интервалы bootstrap для коэффициентов нелинейной регрессионой модели. Создайте выборки bootstrap из сгенерированных данных 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% доверительные интервалы bootstrap для коэффициентов модели.

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

    0.9730    2.9112    1.9562
    1.0469    3.1876    2.3133

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

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

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

Загрузите выборочные данные.

load hald

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

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

Вычислите 95% доверительные интервалы начальной загрузки для коэффициентов линейной регрессионой модели. Создайте выборки bootstrap из невязок. Используйте нормальные аппроксимированные интервалы с начальным смещением и стандартной ошибкой путем определения '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 выборок bootstrap. Найдите 95% доверительный интервал для каждой статистики.

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

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

Нарисуйте 100 выборки bootstrap из вектора y. Для каждой выборки загрузочного ремешка вычислите среднее и стандартное отклонение. Найдите доверие интервал bootstrap для среднего и стандартного отклонения.

[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.

Входные параметры

свернуть все

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

Пример: 100

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

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

Пример: @mean

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

Данные для выборки из, заданные как вектор-столбец или матрица. The 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 выборок bootstrap из значений 1-6, взять среднее значение каждой выборки, а затем вычислить интервал доверия 90% для среднего выборки.

Уровень значимости, заданный как положительная скалярная величина между 0 и 1. bootci вычисляет 100*(1-Alpha) доверительный интервал bootstrap каждой статистики, заданный функцией 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'

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

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

Примечание

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

Установите это значение равным true чтобы запустить расчеты параллельно воспроизводимым способом.

Чтобы вычислить воспроизводимо, установите Streams к типу, который позволяет субпотоки: 'mlfg6331_64' или 'mrg32k3a'.

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

Примечание

Вам нужен Parallel Computing Toolbox™, чтобы запускать расчеты параллельно.

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

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

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

свернуть все

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

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

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

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

Статистика Bootstrap, возвращенная как вектор-столбец или матрица с nboot строки. The iпервая строка bootstat соответствует результатам применения bootfun на ith bootstrap выборки. Если bootfun возвращает матрицу или массив, затем bootci функция сначала преобразует этот выход в вектор-строку перед сохранением в bootstat.

Ссылки

[1] Davison, A. C., and D. V. Hinkley. Методы Bootstrap и их приложения. Cambridge University Press, 1997.

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

[3] DiCiccio, Thomas J. и Bradley Efron. «Интервалы Доверия Bootstrap». Статистическая наука 11, № 3 (1996): 189-228.

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

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

Введенный в R2006a