Úvod do generátoru náhodných čísel v R

Generátor náhodných čísel v R je důležitým aspektem vědy o datech a statistika generuje náhodná čísla nebo generuje náhodné prvky. Například výběr náhodných lidí z datového rámce populace za účelem analýzy a získání nahlédnutí do dat. Jednoduchým řešením pro generování náhodných čísel je použití funkcí. Náhodná čísla jsou užitečná v různých oblastech, jako je modelování, věda o údajích a vzorkování (statistika). S rozšířením sítě se zdá být nezbytný vývoj výzkumu v generátoru náhodných čísel. Náhodná čísla hrají klíčovou roli v bezpečnostních systémech a poskytují nám sofistikovaný systém pro zpřísnění bezpečnosti sítě.

Zde je jeden příklad níže pro generování a tisk 50 hodnot mezi 1 a 99 pomocí funkce runif ().

Kód

RandomNum <- runif(50, 1, 99)
RandomNum

Výstup:

Generátor náhodných čísel pomáhá generovat posloupnost číslic, které lze uložit jako funkci pro pozdější použití v operacích. Generátor náhodných čísel ve skutečnosti nevytváří náhodné hodnoty, protože vyžaduje počáteční hodnotu nazvanou SEED. Generování náhodných čísel lze ovládat pomocí funkcí SET.SEED (). Příkaz SET.SEED () používá celé číslo ke spuštění náhodného počtu generací. Dále lze vygenerovanou sekvenci náhodných čísel uložit a použít později.

Například kód použijeme k vzorkování 10 čísel mezi 1 a 100 a několikrát je opakujeme.

Poprvé bude SET.SEED () spuštěno v semenu jako 5 a podruhé jako semeno jako 12. Pro každou iteraci bylo vygenerováno deset náhodných čísel.

Kód

set.seed(5) # random number will generate from 5
TenRandomNumbers <- sort(sample.int(100, 10))
TenRandomNumbers

Výstup:

Kód:

set.seed(12) # random number will generate from 12
TenRandomNumbers <- sort(sample.int(100, 10))
TenRandomNumbers

Výstup:

Funkce generátoru náhodných čísel

V R existují vestavěné funkce pro generování množiny náhodných čísel ze standardních distribucí, jako je normální, uniformní, binomické rozdělení atd. V další části uvidíme různé funkce, jako runif (), rnorm (), rbinom () a rexp () pro generování náhodných čísel.

1. Rovnoměrně distribuovaná náhodná čísla

Ke generování rovnoměrně distribuovaného náhodného čísla se používá runif (). Výchozí rozsah 0 - 1. Nejprve budeme vyžadovat zadání čísla, které má být vygenerováno. Kromě toho lze rozsah distribuce určit pomocí argumentu max a min.

Kód

# To get 5 uniformly distributed Random Numbers
runif(5)

Výstup:

Kód

# Get 5 random Numbers from 5 to 99
runif(5, min=5, max=99)

Výstup:

Kód

#To generate 5 integers from 0 to 100
floor(runif(5, min=0, max=101))

Výstup:

Kód

# Generating integers without replacement
sample(1:100, 5, replace=FALSE)

Výstup:

2. Normálně distribuovaná náhodná čísla

Ke generování čísel z normální distribuce se používá rnorm (). Kde průměr je 0 a směrodatná odchylka je 1. Nejprve budeme vyžadovat zadání čísla, které má být vygenerováno. Kromě toho lze uvést argumenty střední a SD (směrodatná odchylka).

Kód

rnorm(5)

Výstup:

Kód

# using a different mean and standard deviation
rnorm(4, mean=70, sd=10)

Výstup:

Kód

# histogram of the numbers to verify the distribution
X <- rnorm(400, mean=70, sd=10)
hist(X)

Výstup:

Použití rnorm () pro generování normálního distribuovaného náhodného čísla

3. Binomická náhodná čísla

Binomická náhodná čísla jsou diskrétní množina náhodných čísel. Pro odvození binomického čísla je hodnota n změněna na požadovaný počet pokusů. Například pokus 5, kde n = 5

Kód:

n= 5
p=.5
rbinom(1, n, p)
# 1 success in 5 trails
n= 5
p=.5
rbinom(19, n, p) # 10 binomial numbers

Výstup:

4. ExponEntially distribuovaná náhodná čísla

Exponenciální rozdělení se používá k popisu životnosti elektrických součástí. Například průměrná životnost elektrické lampy je 1500 hodin.

Kód:

x=rexp(100, 1/1500)
hist(x, probability=TRUE, col= gray(.9), main="exponential mean=1500")
curve(dexp(x, 1/1500), add= T)

Výstup:

Generuje celé číslo a číslo plovoucího bodu

Nyní se dozvíme o generování náhodných čísel pro dva typy čísel dostupných v R. Jsou to celé a pohyblivé body nebo čísla s pohyblivou řádovou čárkou. R automaticky detekuje dvě kategorie a podle potřeby se přes ně posouvá. Celé číslo v R se skládá z celého čísla, které může být kladné nebo záporné, zatímco číslo s plovoucí desetinnou čárkou zahrnuje reálná čísla. Skládá se z hodnoty, která určuje nejbližší číslici od desetinné tečky. Hodnota je v binárním formátu a je k dispozici údaj o počtu binárních míst, kam se lze přesunout. Pro generování náhodných celých čísel je vestavěná funkce sample () spolehlivá a rychlá. Obchodní potřeby vyžadují, abyste analyzovali vzorek dat. Pro výběr vzorku R má funkci sample (). K vygenerování náhodných celých čísel mezi 5 a 20 pod kódem funkce vzorku se používá.

Kód

rn = sample(5:20, 5)
rn

Výstup:

Generování náhodného vzorku 5

Ve výše uvedeném příkladu bylo podle argumentu vygenerováno pět hodnot. Viděli jsme, jak lze vybrat podmnožinu náhodných hodnot v R. V reálném čase budete muset vygenerovat náhodný vzorek z existujícího datového rámce. Výběr vzorku dat pro pozorování z velkého souboru dat je jedním z úkolů, které inženýři provádějí v každodenním životě.

Kód

Height_Weight_Data <- read.csv("test.csv") # to test this please download csv file
Height_Weight_Data
# Height_Weight_Data sample data frame; selecting a random subset in r
Sample <- Height_Weight_Data(sample(nrow(Height_Weight_Data), 5), ) # pick 5 random rows from dataset
Sample

Výstup:

Generování náhodného vzorku z názvů datových rámců jako Height_Weight_Data

Pokud jde o čísla s pohyblivou řádovou čárkou, pamatujte si jen málo věcí.

  • Jsou binární povahy.
  • Omezeno ve skutečných zastoupených číslech.

Nyní se podívejme, jak lze generovat náhodné plovoucí číslo mezi -10 a 10

Kód

Random <- runif(n=10, min=-10, max=10)
Random

Výstup:

Generování náhodných čísel s pohyblivou řádovou čárkou

Runif () odkazuje na náhodnou uniformu. Ve výše uvedeném příkladu jsme odvodili 10 náhodně distribuovaných čísel mezi (-10: 10)

Závěr

V tomto článku jsme diskutovali generátor náhodných čísel v R a viděli jsme, jak se funkce SET.SEED používá k řízení generování náhodných čísel. Viděli jsme, jak lze SEED použít pro reprodukovatelná náhodná čísla, která jsou schopna generovat posloupnost náhodných čísel a nastavit generátor osiva náhodných čísel pomocí SET.SEED (). Při analýze se příležitostně používá statistická metoda, která vyžaduje generování náhodných čísel. R je vybaven více funkcemi, jako je uniformní, normální, binomická, Poissonova, exponenciální a gama funkce, která umožňuje simulovat nejběžnější rozdělení pravděpodobnosti.

Doporučené články

Toto byl průvodce generátorem náhodných čísel v R. Zde diskutujeme představení a funkce generátoru náhodných čísel v R spolu s vhodným příkladem. Další informace naleznete také v dalších navrhovaných článcích -

  1. Lineární regrese v R
  2. Binomické rozdělení v R
  3. Logistická regrese v R
  4. Čárový graf v R
  5. Průvodce generátorem náhodných čísel v Pythonu
  6. Generátor náhodných čísel v C #
  7. Generátor náhodných čísel v PHP

Kategorie: