Comment tracer facilement une distribution du chi carré dans R



Pour créer un tracé de densité pour une distribution du Chi carré dans R, nous pouvons utiliser les fonctions suivantes :

  • dchisq() pour créer la fonction de densité de probabilité
  • Curve() pour tracer la fonction de densité de probabilité

Tout ce que nous devons faire pour créer le tracé est de spécifier les degrés de liberté pour dchisq() ainsi que les points aller et retour pour curve() .

Par exemple, le code suivant illustre comment créer un tracé de densité pour une distribution du Chi carré avec 10 degrés de liberté où l’axe des X du tracé est compris entre 0 et 40 :

curve(dchisq(x, df = 10), from = 0, to = 40)

Modification du tracé de densité

Nous pouvons également modifier le tracé de densité en ajoutant un titre, en changeant l’étiquette de l’axe Y, en augmentant la largeur de la ligne et en modifiant la couleur de la ligne :

curve(dchisq(x, df = 10), from = 0, to = 40,
      main = 'Chi-Square Distribution (df = 10)', #add title
      ylab = 'Density', #change y-axis label
      lwd = 2, #increase line width to 2
      col = 'steelblue') #change line color to steelblue

Remplir le tracé de densité

En plus de créer le tracé de densité, nous pouvons remplir une partie du tracé à l’aide de la fonction polygon() basée sur une valeur de début et de fin.

Le code suivant illustre comment remplir la partie du tracé de densité pour les valeurs x comprises entre 10 et 40 :

#create density curve
curve(dchisq(x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#create vector of x values
x_vector <- seq(10, 40)

#create vector of chi-square density values
p_vector <- dchisq(x_vector, df = 10)

#fill in portion of the density plot from 0 to 40
polygon(c(x_vector, rev(x_vector)), c(p_vector, rep(0, length(p_vector))),
        col = adjustcolor('red', alpha=0.3), border = NA)

Le code suivant illustre comment remplir la partie du tracé de densité pour les valeurs x comprises entre 0 et 10 :

#create density curve
curve(dchisq(x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#create vector of x values
x_vector <- seq(0, 10)

#create vector of chi-square density values
p_vector <- dchisq(x_vector, df = 10)

#fill in portion of the density plot from 0 to 10
polygon(c(x_vector, rev(x_vector)), c(p_vector, rep(0, length(p_vector))),
        col = adjustcolor('red', alpha=0.3), border = NA)

Le code suivant illustre comment remplir la partie du tracé de densité pour les valeurs x situées en dehors des 95 % centraux de la distribution :

#create density curve
curve(dchisq(x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#find upper and lower values for middle 95% of distribution
lower95 <- qchisq(.025, 10)
upper95 <- qchisq(.975, 10)

#create vector of x values
x_lower95 <- seq(0, lower95)

#create vector of chi-square density values
p_lower95 <- dchisq(x_lower95, df = 10)

#fill in portion of the density plot from 0 to lower 95% value
polygon(c(x_lower95, rev(x_lower95)), c(p_lower95, rep(0, length(p_lower95))),
        col = adjustcolor('red', alpha=0.3), border = NA)

#create vector of x values
x_upper95 <- seq(upper95, 40)

#create vector of chi-square density values
p_upper95 <- dchisq(x_upper95, df = 10)

#fill in portion of the density plot for upper 95% value to end of plot
polygon(c(x_upper95, rev(x_upper95)), c(p_upper95, rep(0, length(p_upper95))),
        col = adjustcolor('red', alpha=0.3), border = NA)

Enfin, le code suivant illustre comment remplir la partie du tracé de densité pour les valeurs x situées à l’intérieur des 95 % centraux de la distribution :

#create density curve
curve(dchisq(x, df = 10), from = 0, to = 40,
main = 'Chi-Square Distribution (df = 10)',
ylab = 'Density',
lwd = 2)

#find upper and lower values for middle 95% of distribution
lower95 <- qchisq(.025, 10)
upper95 <- qchisq(.975, 10)

#create vector of x values
x_vector <- seq(lower95, upper95)

#create vector of chi-square density values
p_vector <- dchisq(x_vector, df = 10)

#fill in density plot
polygon(c(x_vector, rev(x_vector)), c(p_vector, rep(0, length(p_vector))),
        col = adjustcolor('red', alpha=0.3), border = NA)

Ajouter un commentaire

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