Comment tracer une distribution normale dans R



Pour tracer une distribution normale dans R, nous pouvons soit utiliser base R, soit installer un package plus sophistiqué comme ggplot2.

Utiliser BaseR

Voici trois exemples de création d’un diagramme de distribution normale à l’aide de Base R.

Exemple 1 : distribution normale avec moyenne = 0 et écart type = 1

Pour créer un diagramme de distribution normale avec moyenne = 0 et écart type = 1, nous pouvons utiliser le code suivant :

#Create a sequence of 100 equally spaced numbers between -4 and 4
x <- seq(-4, 4, length=100)

#create a vector of values that shows the height of the probability distribution
#for each value in x
y <- dnorm(x)

#plot x and y as a scatterplot with connected lines (type = "l") and add
#an x-axis with custom labels
plot(x,y, type = "l", lwd = 2, axes = FALSE, xlab = "", ylab = "")
axis(1, at = -3:3, labels = c("-3s", "-2s", "-1s", "mean", "1s", "2s", "3s"))

Cela génère le tracé suivant :

Exemple 2 : distribution normale avec moyenne = 0 et écart type = 1 (moins de code)

Nous pourrions également créer un diagramme de distribution normal sans définir x et y , et simplement en utilisant la fonction « courbe » en utilisant le code suivant :

curve(dnorm, -3.5, 3.5, lwd=2, axes = FALSE, xlab = "", ylab = "")
axis(1, at = -3:3, labels = c("-3s", "-2s", "-1s", "mean", "1s", "2s", "3s"))

Cela génère exactement le même tracé :

Exemple 3 : distribution normale avec moyenne et écart type personnalisés

Pour créer un diagramme de distribution normale avec une moyenne et un écart type définis par l’utilisateur, nous pouvons utiliser le code suivant :

#define population mean and standard deviation
population_mean <- 50
population_sd <- 5

#define upper and lower bound
lower_bound <- population_mean - population_sd
upper_bound <- population_mean + population_sd

#Create a sequence of 1000 x values based on population mean and standard deviation
x <- seq(-4, 4, length = 1000) * population_sd + population_mean

#create a vector of values that shows the height of the probability distribution
#for each value in x
y <- dnorm(x, population_mean, population_sd)

#plot normal distribution with customized x-axis labels
plot(x,y, type = "l", lwd = 2, axes = FALSE, xlab = "", ylab = "")
sd_axis_bounds = 5
axis_bounds <- seq(-sd_axis_bounds * population_sd + population_mean,
                    sd_axis_bounds * population_sd + population_mean,
                    by = population_sd)
axis(side = 1, at = axis_bounds, pos = 0)

Cela génère le tracé suivant :

Utiliser ggplot2

Une autre façon de créer un tracé de distribution normal dans R consiste à utiliser le package ggplot2. Voici deux exemples de création d’un tracé de distribution normal à l’aide de ggplot2.

Exemple 1 : distribution normale avec moyenne = 0 et écart type = 1

Pour créer un diagramme de distribution normale avec moyenne = 0 et écart type = 1, nous pouvons utiliser le code suivant :

#install (if not already installed) and load ggplot2
if(!(require(ggplot2))){install.packages('ggplot2')}

#generate a normal distribution plot
ggplot(data.frame(x = c(-4, 4)), aes(x = x)) +
stat_function(fun = dnorm)

Cela génère le tracé suivant :

Exemple 2 : distribution normale utilisant l’ensemble de données ‘mtcars’

Le code suivant illustre comment créer une distribution normale pour la colonne miles par gallon dans l’ensemble de données R intégré mtcars :

ggplot(mtcars, aes(x = mpg)) +
stat_function(
fun = dnorm,
args = with(mtcars, c(mean = mean(mpg), sd = sd(mpg)))
) +
scale_x_continuous("Miles per gallon")

Cela génère le tracé suivant :

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *