Możemy znaleźć różne metody ponownego próbkowania lub luźno zwane metodami „ symulacyjnymi ”, które zależą od ponownego próbkowania lub tasowania próbek. Mogą występować różnice w opiniach w odniesieniu do właściwej terminologii, ale następująca dyskusja próbuje uogólnić i uprościć to, co jest dostępne w odpowiedniej literaturze:
Metody ponownego próbkowania są stosowane w (1) szacowaniu precyzji / dokładności statystyk próbki poprzez użycie podzbioru danych (np. Jackknifing) lub losowe zastępowanie z zestawu punktów danych (np. Bootstrapping) (2) Wymiana etykiet na punktach danych podczas wykonywania istotności testy ( testy permutacyjne, zwane również testami dokładnymi, testy randomizacji lub testy ponownej randomizacji) (3) Sprawdzanie poprawności modeli przy użyciu losowych podzbiorów (ładowanie, walidacja krzyżowa) (patrz wikipedia: metody ponownego próbkowania )
BOOTSTRAPING
„ Bootstrapping jest statystyczną metodą szacowania rozkładu próbkowania estymatora poprzez próbkowanie z zastąpieniem z oryginalnej próbki”. Metoda przypisuje miary dokładności (zdefiniowane w kategoriach odchylenia , wariancji , przedziałów ufności , błędu prognozowania lub innej takiej miary) do oszacowań próbek.
Podstawowa idea ładowania początkowego polega na tym, że wnioskowanie o populacji na podstawie danych przykładowych ( próbka → populacja ) można modelować poprzez ponowne próbkowanie danych przykładowych i przeprowadzanie wnioskowania na (ponowne próbkowanie → próbka). Ponieważ populacja nie jest znana, prawdziwy błąd w przykładowej statystyce w stosunku do jej wartości populacji jest nieznany. W próbkach ładowania początkowego „populacja” jest w rzeczywistości próbką i jest to znane; stąd jakość wnioskowania na podstawie ponownego próbkowania danych → „prawdziwa” próbka jest mierzalna. ”patrz wikipedia
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)
W problemach jednowymiarowych zwykle dopuszczalne jest ponowne próbkowanie poszczególnych obserwacji z zastąpieniem („resampling sprawy”). Tutaj ponownie próbkujemy dane z zamiennikiem, a rozmiar ponownego próbkowania musi być równy rozmiarowi oryginalnego zestawu danych.
W problemach z regresją ponowne próbkowanie przypadków odnosi się do prostego schematu ponownego próbkowania poszczególnych przypadków - często wierszy zestawu danych w problemach z regresją, zmienne wyjaśniające są często ustalone lub przynajmniej obserwowane z większą kontrolą niż zmienna odpowiedzi. Ponadto zakres zmiennych objaśniających określa dostępne z nich informacje. Dlatego ponowne próbkowanie przypadków oznacza, że każda próbka bootstrapu straci niektóre informacje (patrz Wikipedia ). Logiczne będzie więc próbkowanie wierszy danych raczej po prostu 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]
Niektóre przypadki są powtarzane, ponieważ próbujemy z zamiennikiem.
„ Bootstrap parametryczny - model parametryczny jest dopasowywany do danych, często na podstawie maksymalnego prawdopodobieństwa, i próbki losowych liczb są pobierane z tego dopasowanego modelu . Zwykle próbka losowana ma taki sam rozmiar próbki jak oryginalne dane. Następnie ilość lub oszacowanie , interesujące są obliczane na podstawie tych danych. Ten proces próbkowania jest powtarzany wiele razy, jak w przypadku innych metod ładowania początkowego. Zastosowanie modelu parametrycznego na etapie próbkowania metody ładowania początkowego prowadzi do procedur, które różnią się od procedur uzyskiwanych przez zastosowanie podstawowej teorii statystycznej wnioskować dla tego samego modelu. ”(patrz Wikipedia ). Poniżej przedstawiono parametryczny bootstrap z założeniem rozkładu normalnego z parametrami średniej i odchylenia standardowego.
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)
Istnieją inne warianty bootstrap, zajrzyj na stronę wikipedii lub jakąkolwiek dobrą książkę statystyczną na temat ponownego próbkowania.
JACKNIFE
„Estymator parametru dla scyzoryka jest znajdowany przez systematyczne pomijanie każdej obserwacji z zestawu danych i obliczanie oszacowania, a następnie znajdowanie średniej z tych obliczeń. Biorąc pod uwagę próbkę o rozmiarze N, oszacowanie dla scyzoryka jest uzyskiwane poprzez agregację oszacowań dla każdego N − 1
oszacowania w próbce. ” patrz: wikipedia Poniżej pokazano, jak poderwać nóż 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
„zwykły bootstrap i scyzoryk, oszacuj zmienność statystyki na podstawie zmienności tej statystyki między podpróbkami, a nie na podstawie założeń parametrycznych . Dla bardziej ogólnego scyzoryka, scyzoryka obserwacyjnego delete-m, bootstrap może być postrzegany jako przypadkowy przybliżenie. Oba dają podobne wyniki liczbowe, dlatego każdy z nich może być postrzegany jako przybliżenie do drugiego ”. Zobacz to pytanie na temat Bootstrap vs Jacknife.
BADANIA LANDOMIZACYJNE
„W testach parametrycznych losowo pobieramy próbki z jednej lub więcej populacji. Przyjmujemy pewne założenia dotyczące tych populacji, najczęściej że zwykle są one rozmieszczone z równymi wariancjami. Ustalamy hipotezę zerową, która jest sformułowana w kategoriach parametrów, często w postaci m1 -m2 = 0. Używamy naszych statystyk przykładowych jako szacunków odpowiednich parametrów populacji i obliczamy statystyki testowe (takie jak w teście) Na przykład: w t Studenta - test na różnice w średnich, gdy wariancje są nieznane, ale są brane pod uwagę być równym. Hipoteza zainteresowania jest taka H0: m1 = m2
. Jedna z alternatywnych hipotez mogłaby być sformułowana jako:HA: m1 < m2
. Biorąc pod uwagę dwie próbki pobrane z populacji 1 i 2, przy założeniu, że są to zwykle populacje rozmieszczone z jednakowymi wariancjami i że próbki zostały pobrane niezależnie i losowo z każdej populacji, wówczas można opracować statystyki, których rozkład jest znany, do przetestowania H0
.
Jednym ze sposobów uniknięcia tych założeń dystrybucyjnych jest podejście zwane teraz statystykami nieparametrycznymi, porządkami rangowymi, podobnymi do rang i statystykami bez dystrybucji. Te statystyki bez dystrybucji są zwykle krytykowane za mniej „wydajną” niż analogiczny test oparty na założeniu, że populacje są normalnie rozmieszczone.
Innym alternatywnym podejściem jest podejście losowe - „proces losowego przypisywania stopni do obserwacji niezależnych od własnej wiedzy o tym, której próbki należy do obserwacji. Test randomizacji wykorzystuje taką procedurę, ale działa to na podstawie obserwacji, a nie połączenia ranking obserwacji. Z tego powodu rozkład analogicznej statystyki (suma obserwacji w jednej próbce) nie może być łatwo tabelaryczny, chociaż teoretycznie możliwe jest wyliczenie takiego rozkładu ”( patrz )
Testy randomizacji różnią się od testów parametrycznych prawie pod każdym względem. (1) Nie ma wymogu, abyśmy mieli losowe próbki z jednej lub więcej populacji - w rzeczywistości zwykle nie pobrano losowych próbek. (2) Rzadko myślimy w kategoriach populacji, z których pochodzą dane, i nie ma potrzeby zakładania niczego o normalności lub homoscedastyczności (3) Nasza hipoteza zerowa nie ma nic wspólnego z parametrami, ale jest sformułowana raczej niejasno, ponieważ: na przykład hipoteza, że leczenie nie ma wpływu na wyniki uczestników. (4) Ponieważ nie jesteśmy zainteresowani populacjami, nie zajmujemy się szacowaniem (a nawet testowaniem) cech tych populacji (5) Obliczamy niektóre rodzaj statystyki testowej, jednak nie porównujemy tej statystyki do rozkładów tabelarycznych. Zamiast, porównujemy to z wynikami, które otrzymujemy, gdy wielokrotnie randomizujemy dane w grupach i obliczamy odpowiednią statystykę dla każdej randomizacji. (6) Jeszcze bardziej niż testy parametryczne, testy randomizacji podkreślają znaczenie losowego przydzielania uczestników do zabiegów. ”zob .
Typem testu randomizacji, który jest bardzo popularny, jest test permutacji. Jeśli nasza próbka ma wielkość 12 i 5, całkowita możliwa permutacja wynosi C(12,5) = 792
. Gdyby nasza próbka wynosiła 10 i 15, wówczas byłoby ponad 3,2 miliona rozwiązań. To jest wyzwanie komputerowe: co wtedy? Próbka . Kiedy wszechświat możliwych układów jest zbyt duży, by wyliczyć, dlaczego nie próbować układów z tego wszechświata niezależnie i losowo? Rozkład statystyki testowej w tej serii próbek można następnie zestawić w tabeli, obliczyć jej średnią i wariancję oraz oszacować poziom błędu związany z testem hipotez.
BADANIE UPRAWNIENIA
Według Wikipedia „sprawdzian permutacji (zwany również testy randomizacji , testujących randomizacji , lub dokładny test ) jest rodzajem testu istotności statystycznej w którym rozkład statystyk testowych w hipotezie zerowej otrzymuje się przez wszystkie możliwe wartości statystyki testowej przy przegrupowaniu etykiet na obserwowanych punktach danych. Istnieją testy permutacji dla dowolnej statystyki testowej, niezależnie od tego, czy znany jest jej rozkład. W ten sposób zawsze można wybrać statystykę, która najlepiej rozróżnia hipotezę od alternatywy i co minimalizuje straty. ”
Różnica między permutacją a bootstrapem polega na tym, że próbka bootstrapsa z zamianą, a próbka permutacji bez zamiany . W obu przypadkach porządek czasowy obserwacji jest tracony, a zatem utrata grupowania zmienności - zapewniając w ten sposób, że próbki znajdują się pod hipotezą zerową braku grupowania zmienności.
Permutacje zawsze mają te same obserwacje, więc bardziej przypominają oryginalne dane niż próbki bootstrap. Oczekuje się, że test permutacji powinien być bardziej czuły niż test ładowania początkowego. Permutacje niszczą grupowanie zmienności, ale nie dodają żadnej innej zmienności .
Zobacz pytanie o permutację a ładowanie - „Test permutacji jest najlepszy do testowania hipotez, a ładowanie jest najlepsze do szacowania przedziałów ufności ”.
Aby wykonać permutację w tym przypadku, możemy po prostu zmienić replace = FALSE
powyższy przykład bootstrapu.
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)
W przypadku więcej niż jednej zmiennej samo wybranie wierszy i przetasowanie kolejności nie zrobi żadnej różnicy, ponieważ dane pozostaną takie same. Więc przetasowujemy zmienną y. Coś, co zrobiłeś, ale nie sądzę, abyśmy potrzebowali podwójnego przetasowania obu x
i y variables
(tak jak zrobiłeś).
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]
METODY MONTE CARLO
„Metody Monte Carlo (lub eksperymenty Monte Carlo) są szeroką klasą algorytmów obliczeniowych, które polegają na wielokrotnym losowym próbkowaniu w celu uzyskania wyników numerycznych; zazwyczaj przeprowadza się wiele symulacji w celu uzyskania rozkładu nieznanego podmiotu probabilistycznego. Nazwa pochodzi od podobieństwa techniki do gry i nagrywania wyników w prawdziwym kasynie hazardowym. ”patrz Wikipedia
„W statystyce stosowanej metody Monte Carlo są zasadniczo stosowane do dwóch celów:
(1) Aby porównać konkurencyjne statystyki dla małych próbek w realistycznych warunkach danych. Chociaż błąd typu I i właściwości mocy statystyki można obliczyć dla danych uzyskanych z klasycznych rozkładów teoretycznych (np. Krzywa normalna, rozkład Cauchy'ego) dla warunków asymptotycznych (tj. Nieskończona wielkość próby i nieskończenie mały efekt leczenia), prawdziwe dane często nie mają takich dystrybucji.
(2) Zapewnienie implementacji testów hipotez, które są bardziej wydajne niż testy dokładne, takie jak testy permutacyjne (których często nie da się obliczyć), a jednocześnie są bardziej dokładne niż wartości krytyczne dla rozkładów asymptotycznych.
Metody Monte Carlo stanowią także kompromis między przybliżonymi randomizacjami a testami permutacji . Przybliżeniu Test randomizacji jest oparty na określonym podzbiór wszystkich permutacji (co pociąga za sobą ogromne sprzątania potencjalnie których kombinacje zostały uwzględnione). Podejście Monte Carlo opiera się na określonej liczbie losowo narysowanych permutacji ( zamieniając niewielką utratę precyzji, jeśli permutacja jest rysowana dwukrotnie - lub częściej - ze względu na skuteczność nie konieczności śledzenia, które permutacje zostały już wybrane ). ”
Zarówno test MC, jak i test permutacji są czasami łącznie nazywane testami randomizacji . Różnica polega na tym, że w MC próbkujemy próbki permutacji, raczej używając wszystkich możliwych kombinacji patrz .
WALIDACJA KRZYŻOWA
Pomysł poza weryfikacją krzyżową polega na tym, że modele powinny być testowane z danymi, które nie zostały użyte do dopasowania modelu. Walidacja krzyżowa jest prawdopodobnie najczęściej stosowana w kontekście prognozowania .
„Walidacja krzyżowa jest statystyczną metodą sprawdzania poprawności modelu predykcyjnego. Podzbiory danych są trzymane do użytku jako zestawy walidacyjne ; model jest dopasowany do pozostałych danych (zestawu szkoleniowego) i służy do przewidywania zestawu walidacyjnego. Uśrednianie jakość prognoz w zestawach walidacyjnych daje ogólną miarę dokładności prognoz.
Jedna forma walidacji krzyżowej wyklucza pojedynczą obserwację na raz; to jest podobne do scyzoryka. Kolejna, krotna weryfikacja krzyżowa K dzieli dane na K podzbiorów; każdy z nich odbywa się po kolei jako zestaw walidacyjny. ”patrz Wikipedia . Walidacja krzyżowa odbywa się zwykle przy użyciu danych ilościowych. Możesz w jakiś sposób przekonwertować swoje dane jakościowe (dane czynnikowe) na ilościowe, aby dopasować model liniowy i przetestować ten model. Poniższe czynności są proste strategia wstrzymywania, w której 50% danych jest wykorzystywane do przewidywania modelu, podczas gdy reszta służy do testowania. Załóżmy, że Xvar
jest również zmienną ilościową.
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]
W przeciwieństwie do testów ładowania początkowego i permutacji zestaw danych do weryfikacji krzyżowej do celów szkolenia i testowania jest inny. Poniższy rysunek pokazuje podsumowanie ponownego próbkowania różnymi metodami.
Mam nadzieję, że to trochę pomoże.