Introducere în generatorul de număr aleatoriu în R

Generatorul de numere aleatorii în R este un aspect important al științei datelor și statisticile generează numere aleatorii sau generează elemente aleatorii. De exemplu, selectarea persoanelor la întâmplare dintr-un cadru de date privind populația pentru a analiza și obține informații despre date. O soluție simplă pentru a genera numere aleatorii este folosirea funcțiilor. Numerele aleatorii sunt utile în diferite domenii precum modelarea, știința datelor și eșantionarea (statistici). Odată cu extinderea rețelei, dezvoltarea cercetării într-un generator de numere aleatorii pare necesară. Numerele aleatorii joacă un rol esențial în sistemele de securitate și ne oferă un sistem sofisticat pentru a consolida securitatea rețelei.

Iată un exemplu de mai jos pentru a genera și tipări 50 de valori între 1 și 99 folosind funcția runif ().

Cod

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

ieşire:

Un generator de numere aleatoare ajută la generarea unei secvențe de cifre care pot fi salvate ca funcție pentru a fi utilizate ulterior în operațiuni. Generatorul de numere aleatorii nu produce de fapt valori aleatorii, deoarece necesită o valoare inițială numită SEED. Generarea de numere aleatorii poate fi controlată cu funcțiile SET.SEED (). Comanda SET.SEED () folosește un număr întreg pentru a porni numărul aleatoriu de generații. Mai mult, secvența de numere aleatoare generată poate fi salvată și utilizată ulterior.

De exemplu, vom folosi codul pentru eșantionarea a 10 numere între 1 și 100 și îl vom repeta de câteva ori.

Pentru prima dată SET.SEED () va începe de la sămânță la 5 și a doua oară la semințe 12. Au fost generate zece numere aleatorii pentru fiecare iterație.

Cod

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

ieşire:

Cod:

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

ieşire:

Funcțiile generatorului de numere aleatorii

Există funcții încorporate în R pentru a genera un set de numere aleatorii din distribuții standard precum distribuții normale, uniforme, binomiale, etc. În secțiunea următoare vom vedea diferite funcții precum runif (), rnorm (), rbinom () și rexp () pentru a genera numere aleatorii.

1. Numere aleatorii distribuite uniform

Pentru a genera numerele aleatoare distribuite uniform se utilizează runif (). Interval implicit 0 - 1. În primul rând, va trebui să specificăm numărul necesar pentru a fi generat. În plus, intervalul de distribuție poate fi specificat folosind argumentul max și min.

Cod

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

ieşire:

Cod

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

ieşire:

Cod

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

ieşire:

Cod

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

ieşire:

2. Numere aleatorii distribuite în mod normal

Pentru a genera numere dintr-o distribuție normală se utilizează rnorm (). În cazul în care media este 0 și abaterea standard este 1. În primul rând, va trebui să specificăm numărul necesar pentru a fi generat. În plus, medie și SD (abatere standard) pot fi argumente specificate.

Cod

rnorm(5)

ieşire:

Cod

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

ieşire:

Cod

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

ieşire:

Folosirea rnorm () pentru generarea unui număr aleatoriu distribuit normal

3. Numere aleatorii binomiale

Numerele binomiale aleatoare sunt un set discret de numere aleatorii. Pentru a obține valoarea numărului binomial a lui n este modificată numărul dorit de încercări. De exemplu procesul 5, unde n = 5

Cod:

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

ieşire:

4. Numere aleatorii ExponE distribuite inițial

Distribuția exponențială este utilizată pentru a descrie durata de viață a componentelor electrice. De exemplu, durata de viață medie a unei lămpi electrice este de 1500 ore.

Cod:

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

ieşire:

Generarea numărului întreg și a punctului de plutire

Acum vom afla despre generarea de numere aleatorii pentru două tipuri de numere disponibile în R. Acestea sunt un număr întreg și puncte flotante sau numere float. R va detecta automat cele două categorii și va trece peste ele pe măsură ce apare nevoia. Un număr întreg în R este format din întregul număr care poate fi pozitiv sau negativ, în timp ce un număr în virgulă flotantă include numere reale. Este format din valoare care specifică cifra cea mai îndepărtată din punctul zecimal. Valoarea este în mod binar și indicarea este disponibilă pentru numărul de locuri binare pentru a trece. Pentru a genera întregi aleatorii funcția de eșantion () integrată este fiabilă și rapidă. Nevoile de afaceri necesită să analizați un eșantion de date. Pentru a selecta un eșantion R are funcție sample (). Pentru a genera numere întregi aleatorii între 5 și 20 sub codul funcției eșantion este utilizat.

Cod

rn = sample(5:20, 5)
rn

ieşire:

Generarea unui eșantion aleatoriu de 5

În exemplul de mai sus, cinci valori au fost generate ca argumentul enunțat. Am văzut cum poate fi selectat un subset de valori aleatorii în R. În situație în timp real, vi se va cere să generați un eșantion aleatoriu dintr-un cadru de date existent. Selectarea unui eșantion de date pentru observare dintr-un set de date mare este unul dintre joburile pe care inginerii de date le asumă în viața de zi cu zi.

Cod

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

ieşire:

Generarea unui eșantion aleatoriu din nume de cadru de date ca Height_Weight_Data

Putine lucruri de retinut cu privire la numerele cu virgula flotanta.

  • Sunt de natură binară.
  • Limitat în numărul real reprezentat.

Acum să vedem cum un număr flotant aleatoriu poate fi generat între -10 până la 10

Cod

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

ieşire:

Generarea numerelor aleatorii de puncte float

Runif () se referă la uniforma la întâmplare. În exemplul de mai sus, am derivat 10 numere distribuite aleatoriu între (-10: 10)

Concluzie

În acest articol, am discutat despre generatorul de numere aleatoare din R și am văzut cum funcția SET.SEED este utilizată pentru a controla generarea de numere aleatorii. Am văzut cum SEED poate fi utilizat pentru numere aleatoare reproductibile care sunt capabile să genereze o secvență de numere aleatorii și să configureze un generator de semințe aleatoare cu SET.SEED (). Metoda statistică care necesită generarea de numere aleatorii este utilizată ocazional în timpul analizei. R este echipat cu mai multe funcții, cum ar fi funcția uniformă, normală, binomială, Poisson, exponențială și gamă, care permite simularea distribuției probabilității cele mai comune.

Articole recomandate

Acesta a fost un ghid pentru Generator de numere aleatoare în R. Aici discutăm introducerea și funcțiile Generatorului de numere aleatoare în R împreună cu exemplul adecvat. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Regresia liniară în R
  2. Distribuția binomială în R
  3. Regresie logistică în R
  4. Grafic liniar în R
  5. Ghid pentru generatorul de numere aleatorii din Python
  6. Generator de număr aleatoriu în C #
  7. Generator de număr aleatoriu în PHP

Categorie: