Simular datos es esencial para estadísticas, machine learning y análisis avanzados. Con R, puedes hacerlo eficientemente, gracias a su robusta base de funciones. Aprenderemos a simular datos de distribuciones normales, uniformes y modelos (lineales y no lineales), utilizando solo las funciones básicas de R.
¿Cómo generar datos con distribución normal y uniforme?
Simular datos a partir de distribuciones conocidas nos permite modelar situaciones reales y comprender mejor el comportamiento de diferentes variables.
Distribución normal
Para simular datos de una distribución normal estándar, R ofrece la función rnorm. A continuación, un ejemplo que genera 100 valores de una distribución normal con media cero y desviación estándar uno:
valores_normales <- rnorm(100)
Para observar la distribución, puedes usar una gráfica básica del paquete base de R:
plot(density(valores_normales), main ="Densidad de la distribución normal")
Si deseas modificar los parámetros, puedes especificar una media diferente y una desviación estándar distinta:
valores_normales_modificados <- rnorm(100, mean =5, sd =3)
Distribución uniforme
Simular datos de una distribución uniforme es igualmente sencillo con la función runif. Por ejemplo, para generar 100 observaciones entre cero y uno:
valores_uniformes <- runif(100)plot(density(valores_uniformes), main ="Densidad de la distribución uniforme")
Para establecer un rango diferente, simplemente ajusta los parámetros de mínimo y máximo:
valores_uniformes_modificados <- runif(100, min =3, max =8)
¿Cómo crear y visualizar tablas de datos simulados?
Para simular datos más complejos en un contexto específico, consideremos un ejemplo con diferentes grupos (escuela, preparatoria, universidad) y sus respectivas edades:
# Simulación de datos para diferentes gruposescuela <- data.frame(edad = rnorm(50, mean =10, sd =1.2), lugar ="escuela")prepa <- data.frame(edad = rnorm(45, mean =15, sd =1.9), lugar ="preparatoria")universidad <- data.frame(edad = rnorm(80, mean =21, sd =2.5), lugar ="universidad")# Combinar tablas en una solaedad_lugar <- rbind(escuela, prepa, universidad)# Visualización con boxplotboxplot(edad_lugar$edad ~ edad_lugar$lugar, main ="Distribución de edades por lugar")
¿Cómo simular modelos lineales y no lineales?
Crear modelos simulados permite analizar cómo varían las variables y predecir resultados potenciales.
Modelo lineal
Un ejemplo de modelo lineal puede estructurarse como sigue:
x <- seq(0,3*pi, length.out =100)z <--0.3*x +1y <- z + rnorm(100, mean =0, sd =0.5)datos_lineal <- data.frame(x, y)plot(y ~ x, data = datos_lineal, main ="Modelo lineal")lines(z ~ x, data = datos_lineal, col =2, lwd =2)
Modelo no lineal
La práctica para un modelo no lineal es similar, excepto que la relación entre variables cambia:
z_nl <- cos(x)y_nl <- z_nl + rnorm(100, mean =0, sd =0.5)datos_nolineal <- data.frame(x, y_nl)plot(y_nl ~ x, data = datos_nolineal, main ="Modelo no lineal")lines(z_nl ~ x, data = datos_nolineal, col =2, lwd =2)
Esto solo es el principio del potencial de simulación con R, y te permite analizar diversas situaciones hipotéticas de manera ordenada y eficiente. ¡Sigue explorando y perfeccionando tus habilidades en R! En la próxima clase, profundizaremos más en cómo estimar parámetros efectivos usando R. ¡Nos vemos allí!
Simulación de Datos en R: Distribuciones y Modelos Lineales