95 lines
2.8 KiB
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'])
|