Generador de números aleatorios en R - Funciones de número aleatorio

Tabla de contenido:

Anonim

Introducción al generador de números aleatorios en R

El generador de números aleatorios en R es un aspecto importante de la ciencia de datos y las estadísticas generan números aleatorios o generan elementos aleatorios. Por ejemplo, seleccionar personas aleatorias de un marco de datos de población para analizar y obtener información sobre los datos. Una solución simple para generar números aleatorios es mediante el uso de funciones. Los números aleatorios son útiles en diferentes áreas como el modelado, la ciencia de datos y el muestreo (estadísticas). Con la expansión de la red, el desarrollo de la investigación en un generador de números aleatorios parece necesario. Los números aleatorios juegan un papel clave en los sistemas de seguridad y nos proporcionan un sistema sofisticado para reforzar la seguridad de la red.

Aquí hay un ejemplo a continuación para generar e imprimir 50 valores entre 1 y 99 usando la función runif ().

Código

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

Salida:

Un generador de números aleatorios ayuda a generar una secuencia de dígitos que se pueden guardar como una función para usar más adelante en las operaciones. El generador de números aleatorios en realidad no produce valores aleatorios, ya que requiere un valor inicial llamado SEED. La generación de números aleatorios se puede controlar con las funciones SET.SEED (). El comando SET.SEED () usa un número entero para iniciar el número aleatorio de generaciones. Además, la secuencia de números aleatorios generada se puede guardar y usar más tarde.

Por ejemplo, utilizaremos el código para muestrear 10 números entre 1 y 100 y repetirlo un par de veces.

Por primera vez, SET.SEED () comenzará en semilla como 5 y la segunda como semilla como 12. Se han generado diez números aleatorios para cada iteración.

Código

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

Salida:

Código:

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

Salida:

Funciones de generador de números aleatorios

Hay funciones integradas en R para generar un conjunto de números aleatorios a partir de distribuciones estándar como distribuciones normales, uniformes, binomiales, etc. En la siguiente sección veremos diferentes funciones como runif (), rnorm (), rbinom () y rexp () para generar números aleatorios.

1. Números aleatorios distribuidos uniformemente

Para generar un número aleatorio uniformemente distribuido se utiliza runif (). Rango predeterminado 0 - 1. Primero, necesitaremos especificar el número requerido para ser generado. Además, el rango de la distribución se puede especificar utilizando el argumento max y min.

Código

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

Salida:

Código

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

Salida:

Código

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

Salida:

Código

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

Salida:

2. Números aleatorios normalmente distribuidos

Para generar números a partir de una distribución normal se usa rnorm (). Donde media es 0 y la desviación estándar es 1. Primero, necesitaremos especificar el número requerido para ser generado. Además, la media y la DE (desviación estándar) pueden ser argumentos especificados.

Código

rnorm(5)

Salida:

Código

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

Salida:

Código

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

Salida:

Usando rnorm () para generar un número aleatorio distribuido normal

3. Números aleatorios binomiales

Los números aleatorios binomiales son un conjunto discreto de números aleatorios. Para derivar el valor del número binomial de n se cambia al número deseado de ensayos. Por ejemplo, prueba 5, donde n = 5

Código:

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

Salida:

4. Números aleatorios distribuidos exponencialmente

La distribución exponencial se utiliza para describir la vida útil de los componentes eléctricos. Por ejemplo, la vida media de una lámpara eléctrica es de 1500 horas.

Código:

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

Salida:

Generando número entero y de coma flotante

Ahora aprenderemos sobre la generación de números aleatorios para dos tipos de números disponibles en R. Son números enteros y en coma flotante o flotante. R detectará automáticamente las dos categorías y se moverá a través de ellas cuando sea necesario. Un número entero en R consiste en el número entero que puede ser positivo o negativo, mientras que un número de coma flotante incluye números reales. Consiste en un valor que especifica el dígito más alejado del punto decimal. El valor está en binario y la indicación está disponible sobre el número de lugares binarios para moverse. Para generar enteros aleatorios, la función sample () integrada es confiable y rápida. Las necesidades comerciales requieren que analice una muestra de datos. Para seleccionar una muestra, R tiene la función sample (). Para generar enteros aleatorios entre 5 y 20 a continuación, se utiliza el código de función de muestra.

Código

rn = sample(5:20, 5)
rn

Salida:

Generando una muestra aleatoria de 5

En el ejemplo anterior, se han generado cinco valores como el argumento establecido. Hemos visto cómo se puede seleccionar un subconjunto de valores aleatorios en R. En una situación en tiempo real, se le pedirá que genere una muestra aleatoria a partir de un marco de datos existente. Seleccionar una muestra de datos para la observación de un gran conjunto de datos es uno de los trabajos que los ingenieros de datos realizan en su día a día.

Código

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

Salida:

Generando muestras aleatorias a partir de nombres de marcos de datos como Height_Weight_Data

Pocas cosas para recordar con respecto a los números de coma flotante.

  • Son de naturaleza binaria.
  • Limitado en los números reales representados.

Ahora veamos cómo se puede generar un número flotante aleatorio entre -10 y 10

Código

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

Salida:

Generando números aleatorios de coma flotante

Runif () se refiere al uniforme aleatorio. En el ejemplo anterior, hemos derivado 10 números distribuidos al azar entre (-10: 10)

Conclusión

En este artículo, hemos discutido el generador de números aleatorios en R y hemos visto cómo se utiliza la función SET.SEED para controlar la generación de números aleatorios. Hemos visto cómo SEED se puede usar para números aleatorios reproducibles que pueden generar una secuencia de números aleatorios y configurar un generador de semillas de números aleatorios con SET.SEED (). El método estadístico que requiere generar números aleatorios se usa ocasionalmente durante el análisis. R está equipado con múltiples funciones como la función uniforme, Normal, Binomial, Poisson, Exponencial y Gamma que permite simular la distribución de probabilidad más común.

Artículos recomendados

Esta ha sido una guía para el generador de números aleatorios en R. Aquí discutimos la introducción y las funciones del generador de números aleatorios en R junto con el ejemplo apropiado. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Regresión lineal en R
  2. Distribución binomial en R
  3. Regresión logística en R
  4. Gráfico de líneas en R
  5. Guía para el generador de números aleatorios en Python
  6. Generador de números aleatorios en C #
  7. Generador de números aleatorios en PHP