Bootstrap, Монте-Карло


12

У рамках домашнього завдання мені було задано наступне питання:

Розробити та впровадити імітаційне дослідження для вивчення продуктивності завантажувальної програми для отримання 95% довірчих інтервалів на середньому рівні одновимірної вибірки даних. Ваша реалізація може бути в R або SAS.

Аспекти ефективності, на які ви можете звернути увагу, - це охоплення довірчого інтервалу (тобто, яка частка разів довірчий інтервал містить справжню середню) та варіація Монте-Карло (тобто, наскільки різняться верхня та нижня межі довіри в залежності від моделювання) "

Хтось знає, як розібратися в аспекті варіанту Монте-Карло? Я не можу, здається, навіть розробити алгоритм чи щось. Це пов'язано з інтеграцією в Монте-Карло? Дякую!

Відповіді:


18

Ця плутанина між процедурами завантаження і процедурами Монте-Карло постійно повторюється, тому, можливо, це є гарним місцем для вирішення всіх питань. (Приклади Rкоду можуть допомогти і в домашніх завданнях.)

Розглянемо цю реалізацію завантажувальної програми у R:

boot <- function(x, t) { # Exact bootstrap of procedure t on data x
    n <- length(x)       # Must lie between 2 and 7 inclusive.
    if (n > 7) {
        stop("Sample size exceeds 7; use an approximate method instead.")
    }
    p <- c(n, 1:(n-1))
    a <- rep(x, n^(n-1))
    dim(a) <- rep(n, n)
    y <- as.vector(a)
    while (n > 1) {
        n <- n-1
        a <- aperm(a, p)
        y <- cbind(as.vector(a), y)
    }
    apply(y, 1, t)
}

Швидкий погляд підтвердить, що це детермінований розрахунок: випадкові значення не генеруються та не використовуються. (Я залишу деталі її внутрішнього опрацювання для зацікавлених читачів розібратися самі.)

Аргументи boot- це партія числових даних у масиві xта посилання tна функцію (яка може бути застосована до масивів точно так само x), щоб повернути єдине числове значення; Іншими словами, tє статистикою . Він генерує всі можливі зразки із заміною xі застосовується tдо кожного з них, тим самим створюючи одне число для кожного такого зразка: це завантажувальна програма в двох словах. Повернене значення - це масив, що представляє точний розподіл завантажувальної програми tдля вибірки x.

Як невеликий приклад , давайте завантажимо середнє значення для вибірки x= c(1,3):

> boot(c(1,3), mean)
> [1] 1 2 2 3

2(1,3)(1,1)(1,3)(3,1)(3,3)boottt1223відповідно, як показано на виході.

(1,3,3,4,7)

hist(boot(c(1,3,3,4,7), sd))

Гістограма СД

5

> set.seed(17)
> quantile(boot(runif(5, min=0, max=10), sd), .95)[1]
     95% 
3.835870 

Результат для цієї конкретної випадкової вибірки - 3,83587. Це однозначно: якби ви bootзнову зателефонували з тим самим набором даних, відповідь була б точно такою ж. Але як міняти відповідь у різних випадкових вибірках? Дізнайтеся, повторивши цей процес кілька разів і склавши гістограму результатів:

> boot.sd <- replicate(100, quantile(boot(runif(5, min=0, max=10), sd), .95)[1])
> hist(boot.sd)

Гістограма моделювання

01010/122.887

> length(boot.sd[boot.sd >= 10/sqrt(12)]) / length(boot.sd)
[1] 0.75

Але це ніде поблизу номінальних 95%, які ми вказали (і на що сподівалися)! Це одне значення моделювання: воно порівнює наші сподівання з тим, що насправді відбувається. (Чому розбіжність? Я вважаю, це тому, що завантажувальний пакет SD не працює добре з дійсно невеликими зразками.)

Огляд

  • Статистика завантажувальної програми концептуально точно така ж, як і будь-яка інша статистика, як середнє або стандартне відхилення; вони просто прагнуть тривалий час для обчислення. (Дивіться попереджувальне повідомлення в bootкоді!)

  • Моделювання в Монте-Карло може бути корисним для вивчення того, як змінюється статистика завантажувального апарату через випадковість отримання зразків. Різниця, що спостерігається при такому моделюванні, обумовлена ​​варіацією зразків, а не варіацією завантажувального пристрою.

  • nnn


+1 Це дуже приємно. Я не думаю, що я міг би зробити це краще! Я хотів би лише додати, що у мене є декілька робіт щодо продуктивності завантажувальної програми при оцінці рівня помилок та довірчих інтервалів при оцінці відхилень. Ці результати можна знайти у другому виданні моєї книги методів завантаження та моїй книзі про завантажувальну програму з додатками до Р.
Майкл Р. Черник


Я би просто сказав, що ідея полягає у моделюванні даних із відомих дистрибутивів, застосовуючи цікаву процедуру завантаження (наприклад, довірчі інтервали для параметра або оцінку рівня помилок класифікатора), і ви можете оцінити, наскільки це добре, оскільки ви знаєте правду.
Майкл Р. Черник

5

Завантажувальний інструмент - це метод Монте-Карло, оскільки він включає якийсь тип випадкового відбору проб. Якщо двічі запустити завантажувальний засіб на одному і тому ж наборі даних, ви отримаєте різні відповіді. Чим більше зразків ви використовуєте у своєму завантажувальному інструменті, тим менше варіацій ви отримаєте.

Покриття стосується зміни результатів для різних наборів даних від одного і того ж гіпотетичного розподілу вибірки.


дякую, я припускаю, що це просто означає придумати код, щоб побачити, чи змінюються межі довіри залежно від моделювання!
Сара

7
Щоб бути точним (педантичний?), Ми повинні уточнити , що бутстрап НЕ сам по собі метод Монте - Карло. Однак, як правило, це наближається за допомогою моделювання Монте-Карло, оскільки обчислювати конкретні величини, що цікавляться, не часто. Я вважаю, що формулювання проблеми також дуже схильне до неправильного тлумачення! Треба бути обережним, щоб відрізнити помилку вибірки від похибки наближення Монте-Карло . Останнє лише розумно оцінюється, повторюючи наближення MC завантажувальної програми багато разів на тому самому зразку, як ви вказували. :)
кардинал

1

Я не впевнений, що саме таке означає " варіація Монте-Карло ". Безумовно, слід мати можливість переглянути, скільки варіацій є серед ітерацій у таких речах, як значення верхньої (або нижньої) межі, наприклад (підказка). Можливо, вони хочуть, щоб ви зробили це для Монте-Карло, а не завантажувальний? Але це не є вимогою, яку я мав би для вправ. Можливо, краще просто запитати, що означає ця фраза.


Спасибі за вашу допомогу! Можливо, я зараз просто перегляну варіацію між верхньою та нижньою межею та запитую про Монте-Карло пізніше. Тепер лише для того, щоб розібратися, як мені це робити ..
Сара

Тут є кілька можливостей. Один - верхній-нижній (тобто різниця). Моя інтерпретація фразових запитань у питанні - це зміна верхніх та зміна нижчих (тобто 2 різних варіації), але я припускаю, що я не можу бути впевнений. З іншого боку, це частина вашого питання, як провести МС-моделювання в R?
gung - Відновіть Моніку

Я прийшов до висновку, що шукає також дві різні варіанти, тому думаю, що я спробую це!
Сара

1
Досить справедливо, що мені зараз цікаво, чи добре ви піти в цей момент, чи вам потрібні додаткові підказки про те, як підійти до того, про що ми здогадалися, що запитує?
gung - Відновити Моніку

1
Отже, на кожній ітерації ви зберігаєте верхню та нижню межі (підказку)?
gung - Відновити Моніку

1

Моє розуміння цього домашнього завдання полягає в тому, що він просить вас зробити моделювання Монте-Карло для певної статистичної методики. Тобто, ви моделюєте купу випадкових наборів даних, застосовуєте цю техніку до цих наборів даних і зберігаєте числа, щоб підсумувати їх згодом зручним способом (засоби, імітовані ймовірності тощо)

Тепер, про яку йде мова, йдеться про завантажувальну машину, яка передбачає моделювання Монте-Карло всередині неї (якщо, як показав Уобер, від вас попросять виконати точний завантажувальний засіб, що малоймовірно). Таким чином, як результати ваших моделей, ви можете зберігати середнє значення вибірки, стандартне відхилення вибірки та межі довірчого інтервалу для середнього, отриманого завантажувальним інструментом.

n=10


3
Одне, що я навчився працювати з точним завантажувальним інструментом, - це те, що стандартний ІС звичайної теорії часто працюватиме набагато краще з невеликими зразками, навіть коли вони перекошені. Запуск завантажувального апарату приходить з великими зразками: теорія є асимптотичною, а не точною.
whuber

2
@whuber, це цікаве спостереження. Зазвичай я підкреслюю асимптотичний характер завантажувальної стрічки (див. Книгу Пітера Холла «Розміщення Bootstrap і Edgeworth Expansions», щоб зрозуміти, чому), але цього разу не вдалося це зробити.
Стаск
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.