Simulación de Datos en R: Distribuciones y Modelos Lineales
Clase 21 de 37 • Curso de Estadística Inferencial con R
Resumen
¿Cómo simular datos en R?
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 grupos
escuela <- 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 sola
edad_lugar <- rbind(escuela, prepa, universidad)
# Visualización con boxplot
boxplot(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 + 1
y <- 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í!