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

Wprowadzenie do funkcji sample()

Funkcja sample() dostępna w języku programowania R jest niezwykle przydatnym narzędziem, które umożliwia wyodrębnianie próbek z różnorodnych struktur danych. Pozwala ona na losowy wybór elementów z wektorów, list oraz ramek danych, co znajduje szerokie zastosowanie w analizie statystycznej i badaniach naukowych. W niniejszym artykule szczegółowo omówimy działanie funkcji sample(), w tym jej składnię, argumenty, możliwości zastosowania oraz praktyczne przykłady użycia.

Struktura składni funkcji sample()

Ogólna postać składni funkcji sample() prezentuje się następująco:

r
sample(x, size, replace, prob)

Gdzie:

  • x: jest to zbiór danych, z którego chcemy pobrać próbkę. Może to być wektor, lista lub ramka danych.
  • size: definiuje liczbę elementów, które mają zostać wybrane do próby.
  • replace: jest to wartość logiczna (TRUE lub FALSE), która określa, czy elementy mogą być wybierane wielokrotnie. Ustawienie na TRUE pozwala na powtórne wybory, natomiast FALSE gwarantuje, że każdy element zostanie wybrany maksymalnie raz.
  • prob: jest to opcjonalny wektor określający prawdopodobieństwo wyboru poszczególnych elementów z x. Elementy o wyższym prawdopodobieństwie mają większe szanse na znalezienie się w próbie.

Opcjonalne parametry funkcji sample()

Funkcja sample() oferuje kilka dodatkowych argumentów, które pozwalają na precyzyjne kontrolowanie procesu losowania:

  • replace: Jak wcześniej wspomniano, określa, czy losowanie odbywa się z powtórzeniami.
  • prob: Wektor z przypisanymi prawdopodobieństwami dla każdego elementu zbioru wejściowego x, umożliwiając losowanie z uwzględnieniem wag.
  • method: Pozwala wybrać metodę losowania. Dostępne opcje to „rejection”, „systematic” oraz „random”.
  • seed: Ustawienie wartości startowej generatora liczb losowych, dzięki czemu możemy powtarzalnie generować te same sekwencje losowe.

Zastosowania funkcji sample()

Funkcja sample() znajduje szerokie zastosowanie w różnych dziedzinach, m.in.:

  • Losowy wybór danych: Pobieranie podzbioru danych w celach analitycznych czy modelowania.
  • Walidacja krzyżowa: Dzielenie danych na część treningową i testową, aby ocenić wydajność danego modelu.
  • Resampling: Powtarzane losowanie próbek z danych w celu zwiększenia stabilności oszacowań lub zredukowania ich wariancji.
  • Generowanie danych: Tworzenie syntetycznych zbiorów, które odzwierciedlają rozkład danych rzeczywistych.

Praktyczne przykłady użycia funkcji sample()

Rozważmy wektor liczb całkowitych:

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

Losowanie próby bez powtórzeń:

r
sample(x, size = 5)

Przykładowy wynik:

r
[1] 2 8 5 1 9

Losowanie próby z powtórzeniami:

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

Przykładowy wynik:

r
[1] 3 7 3 5 1

Losowanie ważonej próby:

Załóżmy, że posiadamy wektor z prawdopodobieństwami 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)

Użyjmy tych prawdopodobieństw do losowania próby:

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

Przykładowy wynik:

r
[1] 8 9 6 7 4

Reprodukowalność wyników losowania:

Aby uzyskać powtarzalne wyniki, należy użyć argumentu seed:

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

Przykładowy wynik:

r
[1] 2 10 9 3 7

Ustawienie identycznej wartości seed za każdym razem zapewni te same rezultaty.

Podsumowanie

Funkcja sample() jest wszechstronnym narzędziem do losowania próbek w R. Pozwala na elastyczne wybieranie elementów z różnych typów danych z kontrolą nad powtórzeniami, ważeniem i inicjalizacją generatora liczb losowych. Znajduje zastosowanie w różnorodnych analizach statystycznych i naukowych, w tym przy selekcji danych, walidacji modeli, resamplingu czy symulacji. Zrozumienie działania tej funkcji jest kluczowe dla efektywnego korzystania z R w dziedzinie analizy danych.

Najczęściej zadawane pytania (FAQ)

1. Jakie są różnice między pobieraniem próbek z powtórzeniami a bez powtórzeń?

Losowanie z powtórzeniami dopuszcza, aby ten sam element został wybrany więcej niż raz. Losowanie bez powtórzeń gwarantuje, że każdy element z oryginalnego zbioru zostanie wykorzystany maksymalnie raz.

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

Aby uzyskać ważoną próbę, należy użyć argumentu prob funkcji sample(). Wektor prawdopodobieństw określa szansę na wybór każdego elementu.

3. Jak powtarzać losowanie próbek?

Możesz odtworzyć wyniki losowania, ustawiając wartość argumentu seed. Ta sama wartość seed zapewni identyczne wyniki losowania.

4. Czy można losować próbkę z ramki danych?

Oczywiście, funkcja sample() działa również z ramkami danych, które można przekazać jako argument x.

5. Jak losować próbki z list?

Podobnie jak w przypadku ramek danych, listy mogą być używane jako argument x do funkcji sample().

6. Czy funkcja sample() jest szybka?

Tak, funkcja sample() jest wydajna i może szybko przetwarzać duże zbiory danych.

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

Tak, w R istnieją inne funkcje do losowania, takie jak rbinom() i runif(), które mogą być stosowane w specyficznych scenariuszach.

8. Gdzie znajdę więcej informacji o funkcji sample()?

Szczegółowa dokumentacja funkcji sample() w języku R dostępna jest pod adresem: Dokumentacja funkcji sample().


newsblog.pl