efrei/probabilites-statistiques/tp_r/tp3.r

95 lines
2.8 KiB
R

cats <- read.csv("cats.csv", sep="", stringsAsFactors=TRUE)
# Exercice 1
# 1. Quels sont les noms de variables ?
names(cats)
# 2. Combien de variables et d'observations contient le jeu de données ?
nrow(cats)
# 3. Quel est le sexe et le poids du coeur du chat n°6 ?
head(cats, 10)
# Exercice 2
attach(cats)
# 1.
# moyenne
mean(Bwt)
# médiane (= quartile d'ordre 2)
quantile(Bwt, 0.5)
# 1er quartile
quantile(Bwt, 0.25)
# 2e quartile
quantile(Bwt, 0.5)
# 3e quartile
quantile(Bwt, 0.75)
# variance
var(Bwt)
# ecart-type
sd(Bwt)
# etendue
diff(range(Bwt))
# etendue inter-quartile
IQR(Bwt)
summary(Bwt)
# Exercice 3
# on a le max (trait supérieur), le min (trait inférieur)
# le haut de la boite est le 3 quartile, le bas est le 1er quartile
# le trait noir au milieu (médiane) montre la symmétrie
boxplot(Bwt)
# le max est inférieur aux deux valeurs abérantes modélisées par des
# petits cercles
boxplot(Hwt)
hist(Bwt, freq=FALSE)
# Exercice 4
# utiliser différent nombre de classes
hist(Bwt, breaks=2)
hist(Bwt, breaks=20)
hist(Bwt, breaks=200)
hist(Bwt, breaks=2000)
# il n'y a que 144 chats, donc on ne peut pas utiliser plus de 144 classe
histo <- hist(Bwt)
histo$breaks
histo$counts
class(Sex)
levels(Sex)
table(Sex)
# Exercice 5 et 6
# donne la répartition des variables, leur somme étant égale au total
barplot(table(Sex))
# affiche un boxplot en fonction d'une classe
boxplot(Bwt ~ Sex)
pie(table(Sex))
# On remarque que le poids du coeur et le poids du corps sont globalement
# plus élevés pour les mâles que pour les femelles. Avant de conclure il
# faudrait établir le lien entre le poids du coeur et le poids du corps.
# S'il y a une correlation, on pourra peut-être établir une relation entre
# le sexe et le poids.
# Cette analyse est importante pour toute étape d'inférence.
# Exercice 7
# Nous allons tracer un nuage de points pour établir la relation entre les
# poids
plot(Bwt, Hwt)
# Malgré la forte dispersion des variables, on peut tout de suite dire que
# la relation est linéaire. Si le poids du corps augmente, le poids du coeur
# augmente.
# cor(x, y) = cov(x, y) / sigma_x * sigma_y
# avec sigma_x = sqrt(var_x) et sigma_y = sqrt(var_y)
# le coef est compris entre [-1, 1]
# - si coef proche de -1 ou 1 : forte correlation
# - si coef proche de 0 : x et y sont "indépendants"
# - si coef > 0 : x et y augmentent dans le même sens
# - si coef < 0 : x et y augmentent en sens inverse
cov(Bwt, Hwt)
cor(Bwt, Hwt) # la correlation est forte, de 80%
# Afficher le nuage des points avec des couleurs différentes en fonction du
# sexe, pour visualiser son impact.
#help(plot)
plot(Bwt[Sex=='F'], Hwt[Sex=='F'], col="red", xlim=c(1.9,4), ylim=c(6.2,21), xlab="Bwt", ylab="Hwt")
points(Bwt[Sex=='M'], Hwt[Sex=='M'], col="blue")
cor(Hwt[Sex=='F'], Bwt[Sex=='F'])
cor(Hwt[Sex=='M'], Bwt[Sex=='M'])