Функция boot
Description
Создайте загрузочные реплики R статистики, примененной к данным. Возможна как параметрическая, так и непараметрическая передискретизация. Для непараметрического бутстрепа возможными методами повторной выборки являются обычный бутстрап, сбалансированный бутстрап, антитетическая повторная выборка и перестановка. Для непараметрических задач с несколькими выборками используется стратифицированная повторная выборка: это определяется включением вектора страт в вызов загрузки. Могут быть указаны веса повторной выборки по важности.
Usage
boot(data, statistic, R, sim = "ordinary", stype = c("i", "f", "w"),
strata = rep(1,n), L = NULL, m = 0, weights = NULL,
ran.gen = function(d, p) d, mle = NULL, simple = FALSE, ...,
parallel = c("no", "multicore", "snow"),
ncpus = getOption("boot.ncpus", 1L), cl = NULL)
Arguments
data |
Данные в виде вектора, матрицы или кадра данных. Если это матрица или кадр данных, то каждая строка рассматривается как одно многомерное наблюдение. |
statistic |
Функция, которая при применении к данным возвращает вектор, содержащий интересующую статистику. При |
R |
Количество повторов начальной загрузки. Обычно это будет одно положительное целое число. Для повторной выборки по важности некоторые повторные выборки могут использовать один набор весов, а другие — другой набор весов. В этом случае |
sim |
Строка символов, указывающая тип требуемого моделирования. Возможные значения: |
stype |
Строка символов, указывающая, что представляет собой второй аргумент |
strata |
Целочисленный вектор или коэффициент, определяющий слои для задач с несколькими выборками. Это можно указать для любого моделирования, но игнорируется, если |
L |
Вектор значений влияния, оцененных при наблюдениях. Это используется только тогда, когда |
m |
Количество прогнозов, которые должны быть сделаны при каждой репликации начальной загрузки. Это наиболее полезно для (обобщенных) линейных моделей. Это можно использовать только в том случае, если |
weights |
Вектор или матрица весов важности. Если вектор, то он должен иметь столько элементов, сколько имеется наблюдений в |
ran.gen |
Эта функция используется только в |
mle |
Второй аргумент, который необходимо передать |
simple |
логично, разрешено только |
... |
Другие именованные аргументы для |
parallel |
Тип параллельной операции, которая будет использоваться (если есть). Если он отсутствует, значение по умолчанию берется из опции |
ncpus |
целое число: количество процессов, которые будут использоваться в параллельной работе: обычно это число выбирают в зависимости от количества доступных процессоров. |
cl |
Дополнительный параллельный или снежный кластер для использования с |
Details
Статистика, подлежащая начальной загрузке, может быть настолько простой или сложной, насколько это необходимо, при условии, что ее аргументы соответствуют набору данных и (для непараметрической начальной загрузки) вектору индексов, частот или весов. statistic рассматривается функцией boot как черный ящик и не проверяется на соответствие этим условиям.
Сбалансированный бутстрап первого порядка описан в работе Дэвисона, Хинкли и Шехтмана (1986). Противоположный бутстрап описан Холлом (1989) и является экспериментальным, особенно при использовании со слоями. Другими типами непараметрического моделирования являются обычный бутстрап (возможно, с неравными вероятностями) и перестановка, которая возвращает случайные перестановки случаев. Все эти методы работают независимо внутри слоев, если указан этот аргумент.
Для параметрической начальной загрузки пользователю необходимо указать, как будет проводиться повторная выборка. Лучший способ добиться этого — указать функцию ran.gen , которая будет возвращать набор смоделированных данных из набора наблюдаемых данных и набора оценок параметров, указанных в mle .
Value
Возвращаемое значение — это объект класса "boot" , содержащий следующие компоненты:
t0 |
Наблюдаемое значение |
t |
Матрица со строками |
R |
Значение |
data |
|
seed |
Значение |
statistic |
Функция |
sim |
Используемый тип моделирования. |
stype |
Тип статистики, переданный в |
call |
Исходный вызов |
strata |
Используемые слои. Это вектор, переданный в |
weights |
Веса выборки важности, переданные в |
pred.i |
Если требуются прогнозы ( |
L |
Значения влияния, используемые, когда |
ran.gen |
Функция генератора случайных чисел, используемая, если |
mle |
Оценки параметров передаются в |
Для этого класса существуют методы c , plot и print .
Parallel operation
При использовании parallel = "multicore" (недоступно в Windows) каждый рабочий процесс наследует среду текущего сеанса, включая рабочую область, загруженные пространства имен и прикрепленные пакеты (но не начальное число случайных чисел: см. ниже).
При использовании parallel = "snow" требуется дополнительная работа: рабочие процессы — это вновь созданные процессы R , а statistic необходимо организовать настройку необходимой ему среды: часто хороший способ сделать это — использовать лексическую область видимости с момента отправки statistic . рабочему процессу также передается его окружающая среда. (Например, см. пример jack.after.boot , где вспомогательные функции вложены в функцию statistic .) parallel = "snow" в первую очередь предназначен для использования на многоядерных компьютерах Windows, где parallel = "multicore" недоступен.
Для большинства методов boot повторная выборка выполняется в главном процессе, но не для simple = TRUE и sim = "parametric" . В таких случаях (или когда сам statistic использует случайные числа) требуется большая осторожность, если результаты должны быть воспроизводимыми. Повторная выборка выполняется в рабочих процессах с помощью censboot(sim = "wierd") и большинства схем в tsboot (исключением являются sim == "fixed" и sim == "geom" с ran.gen по умолчанию).
Если генерация случайных чисел выполняется в рабочих процессах, поведение по умолчанию заключается в том, что каждый рабочий выбирает отдельное начальное число, невоспроизводимо. Однако если parallel = "multicore" или parallel = "snow" используют кластер по умолчанию, используется второй подход, если выбран RNGkind("L'Ecuyer-CMRG") . В этом подходе каждый рабочий получает другую подпоследовательность потока RNG на основе начального числа во время создания рабочего, поэтому результаты будут воспроизводимы, если ncpus не изменится, а для parallel = "multicore" , если вызывается parallel::mc.reset.stream() : см. примеры для mclapply .
Обратите внимание, что загрузка параллельного пространства имен может изменить случайное начальное число, поэтому для максимальной воспроизводимости это следует сделать до вызова этой функции.
References
Существует множество ссылок, объясняющих бутстрап и его варианты. Среди них:
Бут Дж.Г., Холл П. и Вуд АТА (1993) Повторная выборка со сбалансированной важностью для начальной загрузки. Анналы статистики, 21, 286–298.
Дэвисон, А.С. и Хинкли, Д.В. (1997) Методы начальной загрузки и их применение. Издательство Кембриджского университета.
Дэвисон А.С., Хинкли Д.В. и Шехтман Э. (1986) Эффективное моделирование начальной загрузки. Биометрика, 73, 555–566.
Эфрон Б. и Тибширани Р. (1993) Введение в бутстрап. Чепмен и Холл.
Глисон, младший (1988)Алгоритмы для сбалансированного бутстрап-моделирования. Американский статистик, 42, 263–266.
Холл, П. (1989) Антитетическая повторная выборка для бутстрапа. Биометрика, 73, 713–724.
Хинкли, Д.В. (1988) Методы начальной загрузки (с обсуждением). Журнал Королевского статистического общества, B, 50, 312–337, 355–370.
Хинкли Д.В. и Ши С. (1989) Выборка по важности и вложенная начальная загрузка. Биометрика, 76, 435–446.
Джонс М.В. (1988)Выборка по важности для доверительных интервалов начальной загрузки. Журнал Американской статистической ассоциации, 83, 709–714.
Норин, Э.В. (1989) Интенсивные компьютерные методы проверки гипотез. Джон Уайли и сыновья.