Методи перекомпонування / моделювання: Монте-Карло, завантажувальний, ножовий, перехресна перевірка, тести рандомізації та тести перестановки


73

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

Скажімо, у мене є така ситуація - я хочу виконати ANOVA зі змінною Y ( Yvar) та X змінною ( Xvar). Xvarкатегоричний. Мене цікавлять такі речі:

(1) Значення р-значень - помилковий показник виявлення

(2) розмір ефектів Xvarрівнів

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
Xvar <- c(rep("A", 5),  rep("B", 5),    rep("C", 5))
mydf <- data.frame (Yvar, Xvar)

Не могли б ви запропонувати мені пояснити відмінності вибірки за допомогою явних відпрацьованих прикладів, як працюють ці методи перекомпонування?

Правки: Ось мої спроби:

Бутстрап 10 зразків початкового завантаження, зразок кількість зразків із заміною, означає , що зразки можна повторити

boot.samples <- list()
for(i in 1:10) {
   t.xvar <- Xvar[ sample(length(Xvar), length(Xvar), replace=TRUE) ]
   t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=TRUE) ]
   b.df <- data.frame (t.xvar, t.yvar) 
   boot.samples[[i]] <- b.df 
}
str(boot.samples)
 boot.samples[1]

Перестановка: 10 зразків перестановки, кількість вибірок без заміни

 permt.samples <- list()
    for(i in 1:10) {
       t.xvar <- Xvar[ sample(length(Xvar), length(Xvar), replace=FALSE) ]
       t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=FALSE) ]
       b.df <- data.frame (t.xvar, t.yvar) 
       permt.samples[[i]] <- b.df 
    }
    str(permt.samples)
    permt.samples[1]

Моделювання в Монте-Каро

Хоча термін "перекомпонування" часто використовується для позначення будь-якого повторного моделювання випадкових або псевдовипадкових вибірок, коли "перекомпонування" проводиться за відомим теоретичним розподілом, правильним терміном є моделювання "Монте-Карло".

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


3
Джекніф - простіший попередник завантажувального пристрою. en.wikipedia.org/wiki/Jackknife_(statistics)
EngrStudent

4
Точніше:
jackknife

Відповіді:


121

Ми можемо знайти різні способи перекомпонування або, наприклад, « імітаційні » методи, які залежать від перекомпонування або перемішування зразків. Можливо, існують розбіжності в думках щодо належної термінології, але наступне обговорення намагається узагальнити та спростити те, що є у відповідній літературі:

Методи перекомпонування використовуються в (1) оцінці точності / точності вибіркової статистики за допомогою використання підмножини даних (наприклад, Jackknifing) або малювання випадковим чином із заміною набору точок даних (наприклад, завантажувальне завантаження) (2) Обмін мітками на точках даних при виконанні значущості тести ( тести перестановки, які також називаються точними тестами, тести рандомізації або тести на повторну рандомізацію) (3) Валідація моделей за допомогою випадкових підмножин (завантажувальна, перехресна перевірка) (див. Вікіпедія: методи перекомпонування )

БУТСТРАПІНГ

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

Основна ідея завантаження даних полягає в тому, що висновок про сукупність із вибіркових даних ( вибірка → популяція ) може бути змодельований шляхом перекомпонування зразків даних та проведення висновку щодо (повторної вибірки → вибірки). Оскільки чисельність населення невідома, справжня помилка вибіркової статистики щодо її вартості населення невідома. У завантажувальних резервах "популяція" насправді є вибіркою, і це відомо; отже, якість висновку з даних про повторну вибірку → «справжній» зразок вимірюється. »див. Вікіпедію

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)

#To generate a single bootstrap sample
sample(Yvar, replace = TRUE) 

 #generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000) 
   boot[[i]] <- sample(Yvar,replace=TRUE)

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

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

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
Xvar <- c(rep("A", 5),  rep("B", 5),    rep("C", 5))
mydf <- data.frame (Yvar, Xvar)    

boot.samples <- list()
for(i in 1:10) {
   b.samples.cases <- sample(length(Xvar), length(Xvar), replace=TRUE) 
   b.mydf <- mydf[b.samples.cases,] 
   boot.samples[[i]] <- b.mydf
}
str(boot.samples)
 boot.samples[1]

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

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

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)

# parameters for Yvar 
mean.y <- mean(Yvar)
sd.y <- sd(Yvar)

#To generate a single bootstrap sample with assumed normal distribution (mean, sd)
rnorm(length(Yvar), mean.y, sd.y)

 #generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000) 
   boot[[i]] <- rnorm(length(Yvar), mean.y, sd.y)

Є й інші варіанти завантажувальної програми, будь ласка, відвідайте сторінку wikipedia або будь-яку хорошу статичну книгу про переутворення.

JACKNIFE

"Оцінювач параметру джек-фена виявляється систематичним вилученням кожного спостереження з набору даних та обчисленням оцінки, а потім знаходженням середнього значення цих обчислень. З огляду на вибірку розміру N, оцінку джек-фена знаходять шляхом узагальнення оцінок кожної N − 1оцінки у вибірці ". Дивіться: wikipedia Нижче показано, як робити джекніф Yvar.

jackdf <- list()
jack <- numeric(length(Yvar)-1)

for (i in 1:length (Yvar)){

for (j in 1:length(Yvar)){
     if(j < i){ 
            jack[j] <- Yvar[j]
}  else if(j > i) { 
             jack[j-1] <- Yvar[j]
}
}
jackdf[[i]] <- jack
}
jackdf

"звичайний завантажувальний засіб та джекніф, оцінюють мінливість статистики з мінливості цієї статистики між підпробочками, а не з параметричних припущень . Для більш загального джекніфа, джекніфа" спостереження "видалення-м, завантажувальну стрічку можна розглядати як випадковий наближення його. Обидва дають подібні числові результати, тому кожне може розглядатися як наближення до іншого ". Дивіться це питання на Bootstrap vs Jacknife.

ТЕСТИ РАНДОМІЗАЦІЇ

"У параметричних тестах ми випадково відбираємо вибір з однієї чи декількох сукупностей. Ми робимо певні припущення щодо цих сукупностей, найчастіше про те, що вони звичайно розподіляються з рівними відхиленнями. Встановлюємо нульову гіпотезу, яка формується з точки зору параметрів, часто виду m1 -m2 = 0. Ми використовуємо нашу вибіркову статистику як оцінку відповідних параметрів сукупності та обчислюємо тестову статистику (наприклад, на тесті). Наприклад: в t-тесті Стьюдента - тест на відмінності в засобах, коли відхилення невідомі, але враховуються щоб бути рівним. Гіпотеза інтересу полягає в тому, що H0: m1 = m2одна з альтернативних гіпотез буде викладена як:HA: m1 < m2. З огляду на два зразки, взяті з популяцій 1 і 2, припускаючи, що це звичайно розподілені популяції з однаковими дисперсіями, і що зразки були відібрані незалежно та навмання від кожної популяції, то для перевірки може бути розроблена статистика, відомий розподіл якої H0.

Одним із способів уникнути цих припущень щодо розподілу був підхід, який зараз називають непараметричним, ранговим порядком, схожим за рангом та статистикою без розподілу. Ці статистичні дані, що не містять розподілу, зазвичай піддаються критиці за те, що вони менш "ефективні", ніж аналогічний тест, який базується на припущенні нормального розподілу населення.

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

Випробування на рандомізацію майже в усіх відношеннях відрізняються від параметричних тестів. (1) Немає вимоги, щоб у нас були випадкові вибірки з однієї чи декількох популяцій - адже ми зазвичай не проводили вибірки випадковим чином. (2) Ми рідко думаємо з точки зору сукупності, з якої надійшли дані, і немає необхідності припускати нічого про нормальність або гомоскедастичність (3) Наша нульова гіпотеза не має нічого спільного з параметрами, але формулюється досить невиразно, як, наприклад, наприклад, гіпотеза про те, що лікування не впливає на ефективність роботи учасників. (4) Оскільки ми не пов'язані з популяцією, ми не переймаємось оцінкою (або навіть тестуванням) характеристик цих груп населення (5). на зразок тестової статистики, однак ми не порівнюємо цю статистику з поданими розподілами. Натомість ми порівнюємо його з результатами, які ми отримуємо, коли ми неодноразово рандомізуємо дані по групах, і обчислюємо відповідну статистику для кожної рандомізації. (6) Навіть більше, ніж параметричні тести, тести рандомізації підкреслюють важливість випадкового призначення учасників на лікування ".див .

Тип тесту на рандомізацію, який дуже популярний, - це тест на перестановку. Якщо розмір нашої вибірки становить 12 і 5, можлива загальна перестановка C(12,5) = 792. Якби наш розмір вибірки був 10 та 15, тоді було б можливим понад 3,2 мільйона домовленостей. Це обчислювальний виклик: що тоді? Зразок . Коли всесвіт можливих домішок занадто великий, щоб перерахувати, чому б не вибірка з цієї Всесвіту незалежно та випадково? Потім розподіл тестової статистики за цією серією вибірок може бути підведений таблицею, обчислюється її середнє значення та дисперсія та оцінюється частота помилок, пов'язаних з тестом гіпотези.

ВИПУСКОВИЙ ТЕСТ

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

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

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

Дивіться запитання про перестановку та завантажувальну програму - "Тест на перестановку найкращий для тестування гіпотез, а завантаження - найкраще для оцінки довірчих інтервалів ".

Отже, щоб виконати перестановку в цьому випадку, ми можемо просто змінити replace = FALSEнаведений вище приклад завантаження.

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
     #generate 1000 bootstrap samples
       permutes <-list()
    for (i in 1:1000) 
       permutes[[i]] <- sample(Yvar,replace=FALSE)

У разі наявності декількох змінних, просто вибір рядків та перестановка порядку не матиме жодної зміни, оскільки дані залишаться однаковими. Таким чином, ми переставляємо змінну y. Щось, що ви зробили, але я не думаю, що нам не потрібні подвійні перестановки обох xі y variables(як ви це зробили).

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
Xvar <- c(rep("A", 5),  rep("B", 5),    rep("C", 5))
mydf <- data.frame (Yvar, Xvar)

 permt.samples <- list()
    for(i in 1:10) {
       t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=FALSE) ]
       b.df <- data.frame (Xvar, t.yvar) 
       permt.samples[[i]] <- b.df 
    }
    str(permt.samples)
    permt.samples[1]

МЕТИ КАРЛО МЕТОДИ

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

"У прикладній статистиці методи Монте-Карло зазвичай використовуються для двох цілей:

(1) Порівняти конкуруючу статистику для малих вибірок за реалістичних умов даних. Хоча властивості статистичних помилок та потужностей типу I можуть бути обчислені для даних, отриманих з класичних теоретичних розподілів (наприклад, нормальна крива, розподіл Коші) для асимптотичних умов (наприклад, нескінченний розмір вибірки та нескінченно малий ефект обробки), реальні дані часто роблять не мають таких розподілів.

(2) Забезпечити реалізацію тестів гіпотез, які є більш ефективними, ніж точні тести, такі як тести перестановки (які часто неможливо обчислити), одночасно більш точні, ніж критичні значення для асимптотичних розподілів.

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

І тест MC, і перестановка колись разом називають тестами рандомізації . Різниця полягає в тому, що в MC ми відбираємо зразки перестановки, скоріше використовуючи всі можливі комбінації див .

КРЕСНА ВІДОМОЖЕННЯ

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

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

Одна з форм перехресної перевірки залишає за один раз спостереження; це схоже на джекніф. Інша перехресна перевірка, що перевертається K , розбиває дані на K підмножини; кожен проходить по черзі як набір валідації. "Дивіться у Вікіпедії . Перехресне підтвердження зазвичай проводиться з кількісними даними. Ви можете конвертувати свої якісні (дані коефіцієнта) в кількісні так чи інакше, щоб відповідати лінійній моделі та протестувати цю модель. Наступне просте стратегія витримки, де 50% даних використовується для прогнозування моделі, а решта використовується для тестування. Припустимо, Xvarце також кількісна змінна.

    Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
    Xvar <- c(rep(1, 5),  rep(2, 5),    rep(3, 5))
    mydf <- data.frame (Yvar, Xvar)
    training.id <- sample(1:nrow(mydf), round(nrow(mydf)/2,0), replace = FALSE)
    test.id <- setdiff(1:nrow(mydf), training.id)
   # training dataset 
    mydf.train <- mydf[training.id]

    #testing dataset 
    mydf.test <- mydf[test.id]

На відміну від завантажувальних та перестановочних тестів, набір даних крос-валідації для навчання та тестування відрізняється. На наступному малюнку показано резюме переустановки у різних методах.

введіть тут опис зображення

Сподіваюсь, це трохи допомагає.


23
Це вражає - і тим більше, адже це ваша перша відповідь! Сподіваюся, ви продовжуєте тут брати участь, і я з нетерпінням чекаю ваших подальших внесків на наш сайт.
whuber

Ця відповідь є такою ВЕЛИКОЮ відповідь великої картини. Однак деякі посилання видаються покинутими. Хтось має підказку щодо того, де є посилання?
tintinthong

6

Ось мій внесок.

Дані

Yvar <- c(8,9,10,13,12,
          14,18,12,8,9,
          1,3,2,3,4)
Xvar <- rep(LETTERS[1:3], each=5)
mydf <- data.frame(Yvar, Xvar)

Монте Карло

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

Запуск завантаження

Метою є уявлення про невизначеність статистики, обчисленої з спостережуваної вибірки. Наприклад: ми можемо обчислити, що середнє значення вибірки Івара становить 8,4, але наскільки ми впевнені у популяції для Івара? Хитрість полягає в тому, щоб зробити так, ніби вибірка є сукупністю, і вибирати вибірку багато разів з цієї фальшивої сукупності.

n <- 1000
bootstrap_means <- numeric(length=n)
for(i in 1:n){
   bootstrap_sample <- sample(x=Yvar, size=length(Yvar), replace=TRUE)
   bootstrap_means[i] <- mean(bootstrap_sample)
}
hist(bootstrap_means)

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

Інші користувачі можуть надати додатки завантажувального пристрою щодо розмірів ефектів Xvarрівнів?

Джекніфінг

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

Перехресне підтвердження

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

Тести на рандомізацію / перестановку

Будьте попереджені, термінологія не узгоджена. Див. Різниця між тестом на рандомізацію та тестом на перестановку .

Нульовою гіпотезою було б те, що різницею між групами груп A, B і C немає різниці, тому це не має значення, якщо ми випадково обміняємо мітки 15 значень Xvar. Якщо спочатку спостережуване значення F (або інша статистика) не погоджується з отриманими після випадкового обміну мітками, воно, ймовірно, мало значення, і нульову гіпотезу можна відкинути.

observed_F_value <- anova(lm(Yvar ~ Xvar))$"F value"[1]

n <- 10000
permutation_F_values <- numeric(length=n)

for(i in 1:n){
   # note: the sample function without extra parameters defaults to a permutation
   temp_fit <- anova(lm(Yvar ~ sample(Xvar)))
   permutation_F_values[i] <- temp_fit$"F value"[1]
}

hist(permutation_F_values, xlim=range(c(observed_F_value, permutation_F_values)))
abline(v=observed_F_value, lwd=3, col="red")
cat("P value: ", sum(permutation_F_values >= observed_F_value), "/", n, "\n", sep="")

гістограма

Будьте уважні до способу перепризначення етикеток у випадку складних конструкцій. Також зауважте, що у випадку неоднакових дисперсій нульова гіпотеза обмінності в першу чергу не відповідає дійсності, тому цей тест на перестановку був би невірним.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.