Introduction au générateur de nombres aléatoires dans R

Le générateur de nombres aléatoires dans R est un aspect important de la science des données et les statistiques génèrent des nombres aléatoires ou génèrent des éléments aléatoires. Par exemple, sélectionner des personnes au hasard dans une base de données de population afin d'analyser et d'obtenir des informations sur les données. Une solution simple pour générer des nombres aléatoires consiste à utiliser des fonctions. Les nombres aléatoires sont utiles dans différents domaines tels que la modélisation, la science des données et l'échantillonnage (statistiques). Avec l'expansion du réseau, le développement de la recherche dans un générateur de nombres aléatoires semble nécessaire. Les nombres aléatoires jouent un rôle clé dans les systèmes de sécurité et nous fournissent un système sophistiqué pour renforcer la sécurité du réseau.

Voici un exemple ci-dessous pour générer et imprimer 50 valeurs entre 1 et 99 en utilisant la fonction runif ().

Code

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

Production:

Un générateur de nombres aléatoires permet de générer une séquence de chiffres qui peut être enregistrée en tant que fonction pour être utilisée plus tard dans les opérations. Le générateur de nombres aléatoires ne produit pas réellement de valeurs aléatoires car il nécessite une valeur initiale appelée SEED. La génération de nombres aléatoires peut être contrôlée avec les fonctions SET.SEED (). La commande SET.SEED () utilise un entier pour démarrer le nombre aléatoire de générations. En outre, la séquence de nombres aléatoires générée peut être enregistrée et utilisée ultérieurement.

Par exemple, nous allons utiliser le code pour échantillonner 10 nombres entre 1 et 100 et le répéter plusieurs fois.

Pour la première fois, SET.SEED () commencera à la valeur de départ 5 et la seconde fois à la valeur de départ. Dix nombres aléatoires ont été générés pour chaque itération.

Code

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

Production:

Code:

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

Production:

Fonctions du générateur de nombres aléatoires

Il existe des fonctions intégrées dans R pour générer un ensemble de nombres aléatoires à partir de distributions standard comme les distributions normales, uniformes, binomiales, etc. Dans la section suivante, nous verrons différentes fonctions comme runif (), rnorm (), rbinom () et rexp () pour générer des nombres aléatoires.

1. Nombres aléatoires uniformément distribués

Pour générer un nombre aléatoire uniformément distribué, runif () est utilisé. Plage par défaut 0 - 1. Tout d'abord, nous devrons spécifier le nombre requis pour être généré. De plus, la plage de la distribution peut être spécifiée à l'aide des arguments max et min.

Code

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

Production:

Code

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

Production:

Code

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

Production:

Code

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

Production:

2. Nombres aléatoires normalement distribués

Pour générer des nombres à partir d'une distribution normale, rnorm () est utilisé. Où la moyenne est 0 et l'écart-type est 1. Tout d'abord, nous devrons spécifier le nombre requis pour être généré. De plus, la moyenne et l'écart-type (écart-type) peuvent être des arguments spécifiés.

Code

rnorm(5)

Production:

Code

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

Production:

Code

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

Production:

Utilisation de rnorm () pour générer un nombre aléatoire distribué normal

3. Nombres aléatoires binomiaux

Les nombres aléatoires binomiaux sont un ensemble discret de nombres aléatoires. Pour dériver le nombre binomial, la valeur de n est remplacée par le nombre d'essais souhaité. Par exemple, essai 5, où n = 5

Code:

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

Production:

4. Nombres aléatoires distribués de manière exponentielle

La distribution exponentielle est utilisée pour décrire la durée de vie des composants électriques. Par exemple, la durée de vie moyenne d'une lampe électrique est de 1500 heures.

Code:

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

Production:

Génération d'un nombre entier et d'un nombre à virgule flottante

Nous allons maintenant apprendre à générer des nombres aléatoires pour deux types de nombres disponibles dans R. Ce sont des nombres entiers et à virgule flottante ou à virgule flottante. R détectera automatiquement les deux catégories et les traversera en fonction des besoins. Un entier dans R se compose du nombre entier qui peut être positif ou négatif tandis qu'un nombre à virgule flottante comprend des nombres réels. Il se compose d'une valeur qui spécifie le chiffre le plus éloigné de la virgule décimale. La valeur est en binaire et une indication est disponible sur le nombre de places binaires à déplacer. Pour générer des entiers aléatoires, la fonction sample () intégrée est fiable et rapide. Les besoins des entreprises vous obligent à analyser un échantillon de données. Pour sélectionner un échantillon, R a la fonction sample (). Afin de générer des nombres entiers aléatoires entre 5 et 20 ci-dessous, l'exemple de code de fonction est utilisé.

Code

rn = sample(5:20, 5)
rn

Production:

Génération d'un échantillon aléatoire de 5

Dans l'exemple ci-dessus, cinq valeurs ont été générées comme argument indiqué. Nous avons vu comment un sous-ensemble de valeurs aléatoires peut être sélectionné dans R. En situation en temps réel, vous devrez générer un échantillon aléatoire à partir d'une trame de données existante. La sélection d'un échantillon de données à observer à partir d'un grand ensemble de données est l'une des tâches que les ingénieurs de données entreprennent dans leur vie quotidienne.

Code

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

Production:

Génération d'un échantillon aléatoire à partir des noms de trame de données comme Height_Weight_Data

Peu de choses à retenir concernant les nombres à virgule flottante.

  • Ils sont de nature binaire.
  • Limité en nombre réel représenté.

Voyons maintenant comment un nombre flottant aléatoire peut être généré entre -10 et 10

Code

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

Production:

Génération de nombres aléatoires de points flottants

Runif () fait référence à l'uniforme aléatoire. Dans l'exemple ci-dessus, nous avons dérivé 10 nombres distribués aléatoires entre (-10: 10)

Conclusion

Dans cet article, nous avons discuté du générateur de nombres aléatoires dans R et avons vu comment la fonction SET.SEED est utilisée pour contrôler la génération de nombres aléatoires. Nous avons vu comment SEED peut être utilisé pour des nombres aléatoires reproductibles capables de générer une séquence de nombres aléatoires et de configurer un générateur de graines de nombres aléatoires avec SET.SEED (). La méthode statistique qui nécessite de générer des nombres aléatoires est parfois utilisée lors de l'analyse. R est équipé de plusieurs fonctions telles que la fonction uniforme, Normale, Binomiale, Poisson, Exponentielle et Gamma qui permet de simuler la distribution de probabilité la plus courante.

Articles recommandés

Ceci a été un guide pour le générateur de nombres aléatoires dans R. Ici, nous discutons de l'introduction et des fonctions du générateur de nombres aléatoires dans R avec l'exemple approprié. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Régression linéaire en R
  2. Distribution binomiale en R
  3. Régression logistique en R
  4. Graphique linéaire en R
  5. Guide du générateur de nombres aléatoires en Python
  6. Générateur de nombres aléatoires en C #
  7. Générateur de nombres aléatoires en PHP

Catégorie: