Generator slučajnih brojeva u R - Funkcije slučajnog broja

Sadržaj:

Anonim

Uvod u generator slučajnih brojeva u R

Generator slučajnih brojeva u R važan je aspekt znanosti podataka, a statistika generira slučajne brojeve ili generira slučajne elemente. Na primjer, odabir slučajnih ljudi iz okvira podataka o populaciji kako bi se analizirali i dobili uvid u podatke. Jednostavno rješenje za generiranje slučajnih brojeva je pomoću funkcija. Nasumični brojevi korisni su u različitim područjima kao što su modeliranje, znanost o podacima i uzorkovanje (statistika). S širenjem mreže čini se da je razvoj istraživanja na generatoru slučajnih brojeva nužan. Nasumični brojevi igraju ključnu ulogu u sigurnosnim sustavima i pružaju nam sofisticiran sustav za pooštravanje sigurnosti mreže.

Evo jednog primjera u nastavku za generiranje i ispis 50 vrijednosti između 1 i 99 pomoću funkcije runif ().

Kodirati

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

Izlaz:

Generator slučajnih brojeva pomaže u generiranju niza znamenki koje se mogu spremiti kao funkcija koja će se kasnije koristiti u operacijama. Generator slučajnih brojeva zapravo ne proizvodi slučajne vrijednosti jer zahtijeva početnu vrijednost koja se zove SEED. Stvaranje slučajnih brojeva može se kontrolirati pomoću SET.SEED () funkcija. Naredba SET.SEED () koristi cijeli broj za pokretanje nasumičnog broja generacija. Nadalje, generirani redoslijed slučajnih brojeva može se spremiti i koristiti kasnije.

Primjerice, kôd ćemo koristiti za uzorkovanje 10 brojeva između 1 i 100 i ponoviti ćemo ih nekoliko puta.

Prvi put SET.SEED () započet će sa sjemenom kao 5, a drugi put kao sjeme 12. Kao deset generiranih brojeva generirano je za svaku ponovu.

Kodirati

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

Izlaz:

Kodirati:

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

Izlaz:

Funkcije generatora slučajnih brojeva

U R postoje ugrađene funkcije za generiranje skupa slučajnih brojeva iz standardnih distribucija poput normalnih, jednoličnih, binomnih distribucija itd. U sljedećem ćemo odjeljku vidjeti različite funkcije poput runif (), rnorm (), rbinom () i rexp () za generiranje slučajnih brojeva.

1. Ravnomjerno raspoređeni slučajni brojevi

Za generiranje jednoliko raspodijeljenog slučajnog broja koristi se runif (). Zadani raspon 0 - 1. Prvo ćemo trebati odrediti broj koji treba generirati. Pored toga, raspon distribucije može se odrediti koristeći argument argument max i min.

Kodirati

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

Izlaz:

Kodirati

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

Izlaz:

Kodirati

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

Izlaz:

Kodirati

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

Izlaz:

2. Normalno raspodijeljeni slučajni brojevi

Za generiranje brojeva iz normalne distribucijske rnorm () koristi se. Gdje je srednja vrijednost 0, a standardno odstupanje je 1. Prvo, trebat ćemo odrediti broj koji se mora generirati. Pored toga, mogu se specificirati srednja vrijednost i SD (standardno odstupanje).

Kodirati

rnorm(5)

Izlaz:

Kodirati

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

Izlaz:

Kodirati

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

Izlaz:

Korištenje rnorm () za generiranje normalnog distribuiranog slučajnog broja

3. Binomni slučajni brojevi

Binomni slučajni brojevi su diskretni skup slučajnih brojeva. Za dobivanje binomnog broja vrijednost n se mijenja u željeni broj pokusa. Primjerice pokus 5, gdje je n = 5

Kodirati:

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

Izlaz:

4. Eksponencijalno raspoređeni slučajni brojevi

Eksponencijalna raspodjela koristi se za opisivanje vijeka trajanja električnih komponenata. Na primjer, životni vijek električne žarulje iznosi 1500 sati.

Kodirati:

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

Izlaz:

Generiranje cijelog broja i broja plutajuće točke

Sada ćemo naučiti o generiranju slučajnih brojeva za dvije vrste brojeva dostupnih u R. Oni su cijeli brojevi i brojevi s pomičnim točkama ili brojevi s zarezom. R će automatski otkriti dvije kategorije i kretati se po njima u slučaju potrebe. Cijeli broj u R sastoji se od cijelog broja koji može biti pozitivan ili negativan, dok broj s pomičnom zarezom uključuje stvarne brojeve. Sastoji se od vrijednosti koja određuje daljnju znamenku s decimalne točke. Vrijednost je u binarnoj formi, a indikacija je dostupna na broju binarnih mjesta kojima treba prijeći. Generiranje slučajnih cijelih ugrađenih uzoraka () funkcija je pouzdana i brza. Za poslovne potrebe potrebno je analizirati uzorak podataka. Za odabir uzorka R ima uzorak () funkciju. Da bi se generirali slučajni cijeli brojevi između 5 i 20 ispod primjera koda funkcije.

Kodirati

rn = sample(5:20, 5)
rn

Izlaz:

Stvaranje slučajnog uzorka od 5

U gornjem primjeru, generirano je pet vrijednosti kao argument. Vidjeli smo kako se može odabrati podskup slučajnih vrijednosti u R. U stvarnom vremenu od vas će se morati generirati slučajni uzorak iz postojećeg okvira podataka. Odabir uzorka podataka za promatranje iz velikog skupa podataka jedan je od poslova koje inženjeri podataka obavljaju u svom svakodnevnom životu.

Kodirati

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

Izlaz:

Generiranje slučajnih uzoraka iz naziva okvira podataka kao Height_Weight_Data

Nekoliko stvari koje treba zapamtiti u vezi s brojevima s pomičnim zarezom.

  • Binarne su prirode.
  • Ograničeni realnim brojevima predstavljeni.

Sada da vidimo kako se može generirati slučajni plutajući broj između -10 do 10

Kodirati

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

Izlaz:

Generiranje slučajnih brojeva s pomičnim zarezom

Runif () odnosi se na slučajnu uniformu. U gornjem primjeru izvukli smo 10 nasumično raspodijeljenih brojeva između (-10: 10)

Zaključak

U ovom smo članku razgovarali o generatoru slučajnih brojeva u R i vidjeli kako se funkcija SET.SEED koristi za kontrolu stvaranja slučajnih brojeva. Vidjeli smo kako se SEED može koristiti za reproducirajuće slučajne brojeve koji su u stanju generirati niz slučajnih brojeva i postavljanje generatora sjemena slučajnih brojeva pomoću SET.SEED (). Tijekom analize povremeno se koristi statistička metoda koja zahtijeva generiranje slučajnih brojeva. R je opremljen s više funkcija kao što su jednoobrazna, normalna, binomna, Poissonova, eksponencijalna i gama funkcija koja omogućava simuliranje najčešće raspodjele vjerojatnosti.

Preporučeni članci

Ovo je vodič za Generator slučajnih brojeva u R. Ovdje smo raspravljali o uvođenju i funkcijama generatora slučajnih brojeva u R zajedno s odgovarajućim primjerom. Možete i proći naše druge predložene članke da biste saznali više -

  1. Linearna regresija u R
  2. Binomna raspodjela u R
  3. Logistička regresija u R
  4. Linijski grafikon u R
  5. Vodič za generator slučajnih brojeva u Pythonu
  6. Generator slučajnih brojeva u C #
  7. Generator slučajnih brojeva u PHP-u