Cómo trazar una distribución normal en R

Para trazar una distribución normal en R, podemos usar base R o instalar un paquete más elegante como ggplot2.

Usando Base R

Aquí hay tres ejemplos de cómo crear una gráfica de distribución normal usando Base R.

Ejemplo 1: Distribución normal con media = 0 y desviación estándar = 1

Para crear una gráfica de distribución normal con media = 0 y desviación estándar = 1, podemos usar el siguiente código:

# Crea una secuencia de 100 números igualmente espaciados entre -4 y 4
x <- seq (-4, 4, longitud = 100)

# cree un vector de valores que muestre la altura de la distribución de probabilidad 
# para cada valor en x
y <- dnorm (x)

#plote xey como un diagrama de dispersión con líneas conectadas (tipo = "l") y agregue 
#un eje x con etiquetas personalizadas
plot (x, y, type = "l", lwd = 2, axes = FALSE, xlab = "", ylab = "")
eje (1, en = -3: 3, etiquetas = c ("- 3 s", "-2 s", "-1 s", "media", "1 s", "2 s", "3 s"))

Esto genera la siguiente gráfica:

Ejemplo 2: Distribución normal con media = 0 y desviación estándar = 1 (menos código)

También podríamos crear un gráfico de distribución normal, sin definir X y Y , y en lugar de simplemente utilizando la función “curva” usando el siguiente código:

curva (dnorm, -3.5, 3.5, lwd = 2, axes = FALSE, xlab = "", ylab = "")
eje (1, en = -3: 3, etiquetas = c ("- 3 s", "-2 s", "-1 s", "media", "1 s", "2 s", "3 s"))

Esto genera exactamente la misma trama:

Ejemplo 3: Distribución normal con media y desviación estándar personalizadas

Para crear una gráfica de distribución normal con una media y una desviación estándar definidas por el usuario, podemos usar el siguiente código:

#definir la media poblacional y la desviación estándar
media_población <- 50
población_sd <- 5

#define límite superior e inferior límite inferior
 <- media_población --sd_población
límite_uperior <- media_población + población_sd

# Cree una secuencia de 1000 x valores basados ​​en la media poblacional y la desviación estándar
x <- seq (-4, 4, longitud = 1000) * población_sd + población_mean

# cree un vector de valores que muestre la altura de la distribución de probabilidad
 # para cada valor en x
y <- dnorm (x, población_media, población_sd)

# trazar la distribución normal con etiquetas personalizadas del eje x
 trazar (x, y, type = "l", lwd = 2, axes = FALSE, xlab = "", ylab = "")
sd_axis_bounds = 5
ejes_límites <- seq (-sd_axis_límites * población_sd + media_población,
                    sd_axis_bounds * población_sd + población_mean,
                    por = población_sd)
eje (lado = 1, en = límites del eje, pos = 0)

Esto genera la siguiente gráfica:

Usando ggplot2

Otra forma de crear una gráfica de distribución normal en R es usando el paquete ggplot2. Aquí hay dos ejemplos de cómo crear una gráfica de distribución normal usando ggplot2.

Ejemplo 1: Distribución normal con media = 0 y desviación estándar = 1

Para crear una gráfica de distribución normal con media = 0 y desviación estándar = 1, podemos usar el siguiente código:

#install (si aún no está instalado) y carga ggplot2
if (! (require (ggplot2))) {install.packages ('ggplot2')}

#generar una gráfica de distribución normal
 ggplot (data.frame (x = c (-4, 4)), aes (x = x)) +
stat_function (divertido = dnorm)

Esto genera la siguiente gráfica:

Ejemplo 2: Distribución normal usando el conjunto de datos ‘mtcars’

El siguiente código ilustra cómo crear una distribución normal para la columna de millas por galón en los mtcars del conjunto de datos R integrado :

ggplot (mtcars, aes (x = mpg)) +
stat_function (
divertido = dnorm,
args = con (mtcars, c (media = media (mpg), sd = sd (mpg)))
) +
scale_x_continuous ("Millas por galón")

Esto genera la siguiente gráfica:

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

A menudo, es posible que desee eliminar filas con todos o algunos NA (valores perdidos) en un marco de datos…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!