Jak pobrać próbki za pomocą sample() w R?

Jak pobrać próbki za pomocą sample() w R?

Wprowadzenie

Funkcja sample() w języku R to potężne narzędzie do pobierania próbek z danych. Pozwala ona na losowe pobieranie obserwacji z wektora, listy lub ramki danych, co jest przydatne w wielu zastosowaniach statystycznych i naukowych. W tym artykule przedstawimy szczegółowy przegląd funkcji sample(), obejmujący jej składnię, argumenty, zastosowania i przykłady.

Składnia funkcji sample()

Składnia funkcji sample() jest następująca:

r
sample(x, size, replace, prob)

gdzie:

* x: wektor, lista lub ramka danych, z której mają być pobrane próbki.
* size: liczba obserwacji do pobrania.
* replace: logiczna wartość wskazująca, czy podczas pobierania próbek należy zezwalać na powtórzenia. Jeśli TRUE, ta sama obserwacja może zostać wybrana więcej niż raz. Jeśli FALSE, obserwacje zostaną wybrane bez powtórzeń.
* prob: opcjonalny wektor prawdopodobieństw dla każdego elementu w x. Elementy z wyższymi prawdopodobieństwami mają większą szansę na zostanie wybrane.

Argumenty funkcji sample()

Funkcja sample() ma kilka opcjonalnych argumentów, które pozwalają na dostosowanie sposobu pobierania próbek:

* replace: Jak wspomniano wcześniej, określa, czy podczas pobierania próbek należy zezwolić na powtórzenia.
* prob: Wektor prawdopodobieństw dla każdego elementu w x. Umożliwia pobieranie próbek z ważonym rozkładem.
* method: Metoda pobierania próbek. Dostępne metody to „rejection”, „systematic” i „random”.
* seed: Liczba całkowita używana do inicjalizacji generatora liczb losowych. Umożliwia reprodukcję wyników pobierania próbek.

Zastosowania funkcji sample()

Funkcja sample() ma wiele zastosowań, w tym:

* Wybór losowej próbki: Pobieranie losowego podzbioru danych do analizy lub modelowania.
* Walidacja krzyżowa: Dzielenie danych na zestawy treningowe i testowe w celu oceny wydajności modelu.
* Resampling: Ponowne pobieranie próbek z danych w celu uzyskania bardziej stabilnych oszacowań lub zmniejszenia wariancji.
* Tworzenie sztucznych danych: Generowanie syntetycznych danych, które naśladują rozkład danych rzeczywistych.

Przykłady funkcji sample()

Rozważmy wektor liczb całkowitych:

r
x <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

Losowe pobieranie próbki bez powtórzeń:

r
sample(x, size = 5)

Wynik:

r
[1] 9 1 4 3 6

Losowe pobieranie próbki z powtórzeniami:

r
sample(x, size = 5, replace = TRUE)

Wynik:

r
[1] 7 1 6 2 7

Pobieranie ważonej próbki:

Załóżmy, że mamy wektor prawdopodobieństw dla każdego elementu w x:

r
prob <- c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0)

Możemy użyć tych prawdopodobieństw do pobrania ważonej próbki:

r
sample(x, size = 5, prob = prob)

Wynik:

r
[1] 10 6 9 7 3

Reprodukcja wyników pobierania próbek:

Aby odtworzyć wyniki pobierania próbek, możemy ustawić wartość argumentu seed:

r
set.seed(123)
sample(x, size = 5)

Wynik:

r
[1] 2 10 9 3 7

Ustawienie tej samej wartości seed spowoduje wygenerowanie tych samych wyników.

Wniosek

Funkcja sample() jest wszechstronnym narzędziem do pobierania próbek w języku R. Pozwala na losowe wybieranie obserwacji z wektora, listy lub ramki danych, z możliwością zastąpienia, ważenia i kontroli losowości. Zastosowania funkcji sample() są szerokie, obejmując wybór losowych próbek, walidację krzyżową, resampling i generowanie sztucznych danych. Znajomość tej funkcji jest niezbędna dla każdego użytkownika R zajmującego się analizą i nauką danych.

Często zadawane pytania (FAQ)

1. Jaka jest różnica między pobieraniem próbek z zastąpieniem i bez zastąpienia?

Pobieranie próbek z zastąpieniem pozwala na wielokrotne wybieranie tych samych obserwacji, podczas gdy pobieranie próbek bez zastąpienia zapewnia, że obserwacje są wybierane tylko raz.

2. Jak utworzyć ważoną próbkę?

Możesz utworzyć ważoną próbkę, podając argument prob w funkcji sample(). Wektor prawdopodobieństw wskazuje względne szanse wyboru każdego elementu.

3. Jak odtworzyć wyniki pobierania próbek?

Ustaw wartość argumentu seed na liczbę całkowitą. Ta sama wartość seed wygeneruje te same wyniki pobierania próbek.

4. Czy mogę pobrać próbkę z ramki danych?

Tak, możesz pobrać próbkę z ramki danych, podając ramkę danych jako argument x w funkcji sample().

5. Jak pobrać próbkę z listy?

Podobnie jak w przypadku ramek danych, możesz pobrać próbkę z listy, podając ją jako argument x w funkcji sample().

6. Czy funkcja sample() jest szybka?

Tak, funkcja sample() jest wydajna i może szybko pobierać próbki z dużych zbiorów danych.

7. Czy istnieją alternatywy dla funkcji sample()?

Tak, istnieją inne funkcje w języku R do pobierania próbek, takie jak rbinom() i runif().

8. Gdzie mogę znaleźć więcej informacji o funkcji sample()?

Oficjalna dokumentacja funkcji sample() w języku R jest dostępna tutaj.