Simulación de Datos en R: Distribuciones y Modelos Lineales

Clase 21 de 37Curso 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í!