bootstrp

Загрузите выборку

Описание

пример

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

пример

bootstat = bootstrp(nboot,bootfun,d1,...,dN) чертит nboot загрузите выборки из данных в dl,...,dN. Нескалярные аргументы данных в dl,...,dN должен иметь одинаковое число строк, n. bootstrp функция создает каждую выборку начальной загрузки путем выборки с заменой от индексов 1:n и выбор соответствующих строк нескалярного dl,...,dN. Функция передает выборку нескалярных данных и неизменных скалярных аргументов данных в dl,...,dN к bootfun.

пример

bootstat = bootstrp(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, можно добавить веса наблюдения в данные или вычислить итерации начальной загрузки параллельно.

пример

[bootstat,bootsam] = bootstrp(___) также возвращает bootsam, n- nboot матрица демонстрационных индексов начальной загрузки, где n количество строк в исходных, нескалярных данных. Каждый столбец в bootsam соответствует одной выборке начальной загрузки и содержит индексы строки значений, чертивших из нескалярных данных, чтобы создать ту выборку.

Чтобы получить демонстрационные индексы начальной загрузки, не применяя функцию к выборкам, установите bootfun опустеть ([]).

Примеры

свернуть все

Оцените плотность ядра загруженных средних значений.

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

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

Вычислите выборку 100 загруженных средних значений случайных выборок, взятых из векторного y.

m = bootstrp(100,@mean,y);

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

[fi,xi] = ksdensity(m);
plot(xi,fi)

Figure contains an axes. The axes contains an object of type line.

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

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

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

Вычислите выборку 100 загруженных средних значений и стандартные отклонения случайных выборок, взятых из векторного y.

stats = bootstrp(100,@(x)[mean(x) std(x)],y);

Постройте оценочные пары начальной загрузки.

plot(stats(:,1),stats(:,2),'o')
xlabel('Mean')
ylabel('Standard Deviation')

Figure contains an axes. The axes contains an object of type line.

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

Загрузите patients набор данных. Создайте матричный patientData содержа возраст, вес и измерения высоты. Каждая строка patientData соответствует одному пациенту.

load patients
patientData = [Age Weight Height];

Создайте 200 выборок данных о начальной загрузке из данных в patientData. Чтобы создать каждую выборку, случайным образом выберите с заменой 100 строк (то есть, size(patientData,1)) из строк в patientData. Для каждой выборки вычислите средний возраст, вес и измерения высоты. Каждая строка bootstat содержит три средних измерения для одной выборки начальной загрузки.

rng('default') % For reproducibility
bootstat = bootstrp(200,@mean,patientData);

Визуализируйте средние измерения для всех 200 выборок данных о начальной загрузке. Обратите внимание на то, что загрузитесь, выборки с большими средними весами имеют тенденцию иметь большие средние высоты.

scatter3(bootstat(:,1),bootstat(:,2),bootstat(:,3))
xlabel('Mean Age')
ylabel('Mean Weight')
zlabel('Mean Height')

view([-75 10])

Figure contains an axes. The axes contains an object of type scatter.

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

Загрузите lawdata набор данных, который содержит оценку LSAT и GPA юридической школы для 15 студентов.

load lawdata
rng('default')  % For reproducibility
size(lsat)
ans = 1×2

    15     1

size(gpa)
ans = 1×2

    15     1

Создайте 1 000 выборок данных путем передискретизации этих 15 точек данных и вычислите корреляцию между этими двумя переменными для каждой выборки данных.

[bootstat,bootsam] = bootstrp(1000,@corr,lsat,gpa);

Отобразите первые 5 загруженных коэффициентов корреляции.

bootstat(1:5,:)
ans = 5×1

    0.9874
    0.4918
    0.5459
    0.8458
    0.8959

Отобразите индексы данных, выбранных для первых 5 выборок начальной загрузки.

bootsam(:,1:5)
ans = 15×5

    13     3    11     8    12
    14     7     1     7     4
     2    14     5    10     8
    14    12     1    11    11
    10    15     2    12    14
     2    10    13     5    15
     5     1    11    11     9
     9    13     5    10     3
    15    15    15     3     3
    15    11     1     2     4
      ⋮

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

histogram(bootstat)

Figure contains an axes. The axes contains an object of type histogram.

Демонстрационный минимум положителен, указывая, что отношение между счетом LSAT и GPA не случайно.

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

se = std(bootstat)
se = 0.1285

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

Создайте 50 выборок начальной загрузки из чисел 1 - 6. Создать каждую выборку, bootstrp случайным образом выбирает с заменой из чисел 1 - 6, шесть раз. Этот процесс похож на прокрутку умирания шесть раз. Для каждой выборки, пользовательского функционального countfun (показанный в конце этого примера), считает номер 1 с в выборке.

rng('default') %For reproducibility
counts = bootstrp(50,@countfun,(1:6)');

Примечание: Если вы используете файл live скрипта для этого примера, countfun функция уже включена в конце файла. В противном случае необходимо создать эту функцию в конце.m файла или добавить его как файл на пути MATLAB®.

Создайте 50 выборок начальной загрузки из чисел 1 - 6, но присвойте различные веса числам. Каждый раз bootstrp случайным образом выбирает из чисел 1 - 6, вероятностью выбора 1 является 0.5, вероятностью выбора 2 является 0.1, и так далее. Снова, countfun считает номер 1 с в каждой выборке.

weights = [0.5 0.1 0.1 0.1 0.1 0.1]';
weightedCounts = bootstrp(50,@countfun,(1:6)','Weights',weights);

Сравните два набора выборок начальной загрузки при помощи гистограмм.

histogram(counts)
hold on
histogram(weightedCounts)
legend
xlabel('Number of 1s in Sample')
ylabel('Number of Samples')
hold off

Figure contains an axes. The axes contains 2 objects of type histogram.

Два набора выборок начальной загрузки имеют различные распределения; в частности, выборки во втором наборе имеют тенденцию содержать больше 1 с. Например, этих 50 выборок в первом наборе, только две выборки содержат больше чем два 1 с. В отличие от этого, этих 50 выборок во втором наборе (с весами наблюдения), 12+14+4+2=32 выборки содержат больше чем два 1 с.

Этот код создает функциональный countfun.

function numberofones = countfun(sample)
numberofones = sum(sample == 1);
end

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

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

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

load hald

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

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

Оцените стандартные погрешности путем начальной загрузки остаточных значений.

se = std(bootstrp(1000,@(bootr)regress(yfit+bootr,x),resid))
se = 1×5

   56.1752    0.5940    0.5815    0.5989    0.5691

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

свернуть все

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

Пример: 100

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

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

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

Пример: @mean

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

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

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

Типы данных: single | double | logical | char | string | cell | categorical

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

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

Пример: bootstrp(4,@mean,(1:2)','Weights',[0.4 0.6]') задает, чтобы чертить четыре выборки начальной загрузки от значений 1 и 2 и возьмите среднее значение каждой выборки. Поскольку каждый чертит, вероятность получения 1 0.4, и вероятность получения 2 0.6.

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

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

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

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

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

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

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

Примечание

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

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

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

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

свернуть все

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

Загрузите демонстрационные индексы, возвращенные как n- nboot числовая матрица, где n количество строк в исходных, нескалярных данных. Каждый столбец в bootsam соответствует одной выборке начальной загрузки и содержит индексы строки значений, чертивших из нескалярных данных, чтобы создать ту выборку.

Например, если каждый аргумент ввода данных в d1,...,dN содержит 16 значений и nboot = 4, затем bootsam 16 4 матрица. Первый столбец содержит индексы этих 16 значений, чертивших от d1,...,dN для первой выборки начальной загрузки второй столбец содержит индексы для второй выборки начальной загрузки и так далее. Индексы начальной загрузки являются тем же самым для всех наборов входных данных d1,...,dN.

Советы

  • Получить демонстрационные индексы начальной загрузки bootsam не применяя функцию к выборкам, набор bootfun опустеть ([]).

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

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