Graphiques d'historique et de densité dans R
Vous pouvez créer des histogrammes à l'aide de la fonction hist(x</em>) où x est un tableau numérique de valeurs à représenter. L'option freq=FALSE permet de tracer des densités de probabilité au lieu de fréquences. L'option breaks= contrôle le nombre de bacs.
# Simple Histogram
hist(mtcars$mpg)
# Colored Histogram with Different Number of Bins
hist(mtcars$mpg, breaks=12, col="red")
# Add a Normal Curve (Thanks to Peter Dalgaard)
x <- mtcars$mpg
h<-hist(x, breaks=10, col="red", xlab="Miles Per Gallon",
main="Histogram with Normal Curve")
xfit<-seq(min(x),max(x),length=40)
yfit<-dnorm(xfit,mean=mean(x),sd=sd(x))
yfit <- yfit*diff(h$mids[1:2])*length(x)
lines(xfit, yfit, col="blue", lwd=2)
Les histogrammes peuvent être une mauvaise méthode pour déterminer la forme d'une distribution, car ils sont fortement influencés par le nombre de cellules utilisées.
Graphiques de densité du noyau
Les diagrammes de densité de noyau constituent généralement un moyen beaucoup plus efficace de visualiser la distribution d'une variable. Créez le graphique en utilisant plot(density(x)) où x est un tableau numérique.
# Kernel Density Plot
d <- density(mtcars$mpg) # returns the density data
plot(d) # plots the results
# Filled Density Plot
d <- density(mtcars$mpg)
plot(d, main="Kernel Density of Miles Per Gallon")
polygon(d, col="red", border="blue")
Comparaison des groupes Densité du noyau VIA
La fonction sm.density.compare( ) du paquet sm</a ></strong > vous permet de superposer les courbes de densité de deux groupes ou plus. Le format est sm.density.compare(x , factor) où x est un tableau numérique et factor est la variable de regroupement.
# Compare MPG distributions for cars with
#
4,6, or 8 cylinders
library(sm)
attach(mtcars)
# create value labels
cyl.f <- factor(cyl, levels= c(4,6,8),
labels = c("4 cylinder", "6 cylinder", "8 cylinder"))
# plot densities
sm.density.compare(mpg, cyl, xlab="Miles Per Gallon")
title(main="MPG Distribution by Car Cylinders")
# add legend via mouse click
colfill<-c(2:(2+length(levels(cyl.f))))
legend(locator(1), levels(cyl.f), fill=colfill)