Jak odebírat vzorky pomocí sample() v R?

Úvod do problematiky

Funkce sample(), implementovaná v programovacím jazyce R, představuje efektivní nástroj pro generování náhodných vzorků z rozsáhlých datových struktur. Ať už potřebujete provádět průzkumnou analýzu dat, statistické vyhodnocování či simulační modelování, sample() vám umožní rychle a snadno vygenerovat reprezentativní podmnožiny dat.

Tento detailní průvodce vás provede celým procesem práce s funkcí sample(), zahrnující syntaxi, argumenty, různé způsoby použití a praktické demonstrace. Naučíte se využívat různé metody výběru vzorků a modifikovat parametry funkce tak, aby přesně odpovídaly vašim specifickým požadavkům a cílům.

Základní syntaxe funkce sample()

Formát zápisu funkce sample() vypadá následovně:


sample(x, size, replace = FALSE, prob = NULL)

Kde:

  • x: Představuje vektor, matici nebo datový rámec, z něhož se vzorky vybírají.
  • size: Určuje počet prvků, které mají být vybrány. Může to být konkrétní číslo nebo vektor definující velikosti vzorků pro jednotlivé sloupce či řádky.
  • replace: Logická hodnota, která specifikuje, zda se prvky mohou ve výběru opakovat. Při nastavení na FALSE (výchozí hodnota) se prvky nemohou opakovat. Při TRUE se prvky mohou opakovat.
  • prob: Vektor pravděpodobností, který stanovuje relativní šanci na vybrání jednotlivých prvků. Délka tohoto vektoru musí být stejná jako délka x.

Dostupné metody výběru vzorků

Funkce sample() nabízí dvě základní metody pro výběr vzorků:

  • Náhodný výběr bez opakování: Prvky jsou vybírány náhodně, ale každý prvek může být vybrán pouze jednou. Tato metoda se uplatňuje, když argument replace má hodnotu FALSE.
  • Náhodný výběr s opakovaním: Prvky jsou vybírány náhodně, přičemž jeden prvek může být vybrán i vícekrát. To je užitečné, pokud potřebujete vytvořit vzorek se stejným počtem prvků, jako má původní datový soubor. Tuto metodu aktivujete nastavením argumentu replace na TRUE.

Klíčové argumenty funkce

Vedle výše zmíněných argumentů má funkce sample() i další užitečné argumenty:

  • seed: Celé číslo, které definuje počáteční stav generátoru náhodných čísel. Použitím seed zajistíte, že při opakovaném spuštění kódu dostanete vždy stejné vzorky.
  • weights: Vektor vah, který udává relativní pravděpodobnost výběru jednotlivých prvků. Vektor musí mít stejnou délku jako x.
  • method: Metoda výběru vzorků. Může být nastavena na jednu z těchto hodnot:
    • "simple": Pro prostý náhodný výběr bez opakování.
    • "stratified": Pro stratifikovaný výběr, kde jsou prvky rozděleny do vrstev a z každé vrstvy jsou náhodně vybrány.
    • "systematic": Pro systematický výběr, kde jsou prvky vybírány v pravidelných intervalech.
    • "cluster": Pro shlukový výběr, kde jsou náhodně vybrány skupiny prvků a z každé vybrané skupiny jsou zahrnuty všechny prvky.

Praktické ukázky

Příklad 1: Náhodný výběr bez opakování


# Získáme 10 náhodných čísel z vektoru x
set.seed(123)
x <- 1:100
sample(x, 10)

Výsledek:


[1] 59 43 12 30 92 66 5 22 48 39

Příklad 2: Náhodný výběr s opakováním


# Získáme 5 náhodných čísel z vektoru x s opakováním
set.seed(123)
x <- 1:100
sample(x, 5, replace = TRUE)

Výsledek:


[1] 59 43 12 30 92

Příklad 3: Stratifikovaný výběr


# Vybereme 10 náhodných čísel z vektoru x pomocí stratifikovaného výběru, s vrstvami definovanými na základě 10 percentilů
set.seed(123)
x <- 1:100
strata <- cut(x, 10)
sample(x, 10, method = "stratified", strata = strata)

Výsledek:


[1] 10 20 30 40 50 60 70 80 90 100

Příklad 4: Systematický výběr


# Získáme 10 náhodných čísel z vektoru x pomocí systematického výběru
set.seed(123)
x <- 1:100
sample(x, 10, method = "systematic")

Výsledek:


[1] 1 11 21 31 41 51 61 71 81 91

Závěr

Funkce sample() v jazyce R představuje významný nástroj pro efektivní náhodné výběry z datových struktur. Její flexibilita a adaptabilita z ní činí ideální řešení pro různé aplikace, jako jsou průzkumy, datové analýzy a simulační studie. S dostatečnými znalostmi syntaxe, argumentů a různých metod výběru můžete efektivně využívat sample() ve svých projektech.

Často kladené dotazy

1. Jaký je rozdíl mezi náhodným výběrem bez opakování a s opakováním?
* Při náhodném výběru bez opakování se prvky nemohou vybírat vícekrát, zatímco s opakováním se prvky mohou opakovat.

2. Jak zajistím, že při opakovaném spuštění kódu dostanu stejné vzorky?
* Použijte argument seed, který definuje výchozí stav generátoru náhodných čísel.

3. Jak mohu vybírat vzorky s různou pravděpodobností?
* Použijte argument prob, což je vektor pravděpodobností pro každý prvek.

4. Jak provádět stratifikovaný výběr?
* Rozdělte data do vrstev a použijte argument strata, který určí vrstvy pro výběr.

5. Jaký je rozdíl mezi systematickým a shlukovým výběrem?
* Systematický výběr vybírá prvky v pravidelných intervalech, zatímco shlukový výběr náhodně vybere skupiny prvků a pak použije všechny prvky z těchto skupin.

6. Lze použít funkci sample() pro výběr z datového rámce?
* Ano, funkce sample() je plně použitelná pro datové rámce.

7. Jak vybrat vzorky z více sloupců datového rámce?
* Použijte argument size jako vektor o stejné délce, jako je počet sloupců v datovém rámci.

8. Jak vybrat vzorky podle jmen sloupců?
* Použijte funkci sample_n(), která umožňuje výběr vzorků podle jmen sloupců.