Ce devoir maison est à envoyer par mail (aude.sportisse@upmc.fr) pour le vendredi 25 septembre (soir) en format .Rmd et .html.
Il comporte deux exercices, on pourra s'appuyer de les fiches 2 et 3 pour le réaliser.
Nous allons nous intéresser au jeux de données decathlon. Ce jeu de données comprend les performances des athlètes pour les dix épreuves du décathlon (10 premières colonnes), le classement des athlètes (colonne 11), les points obtenus (colonne 12) et la compétition où cela s'est déroulé (colonne 13).
data=read.table("https://audesportisse.github.io/files/decathlon.csv",sep=";",header=TRUE,row.names=1)
Dans la suite, n'oubliez pas de donner un titre à vos graphiques et de bien vérifier que les titres des axes sont indicatifs.
library(ggplot2)
ggplot(data) + aes(x=Points, y=Longueur) + geom_point()
ggplot(data) + aes(x=Points, y=Longueur, colour=Competition) + geom_point()
ggplot(data) + aes(x=Points, y=Longueur, colour=Competition) + geom_point() + scale_colour_manual(values=c("magenta", "orange"))
ggplot(data) + aes(x=Points, y=Longueur, colour=Competition, shape=Competition) + geom_point() + scale_shape_manual(values=c(21, 25))
ggplot(data) + aes(x=Points, y=Longueur, colour=Competition, group=Competition) + geom_point() + geom_smooth( method="loess")
## `geom_smooth()` using formula 'y ~ x'
ggplot(data) + aes(x=Competition, y=Longueur) + geom_boxplot()
ggplot(data) + aes(x=Competition, y=X100m, fill=Competition) + geom_boxplot()
ggplot(data) + aes(x = Competition) + geom_bar()
ggplot(data) + aes(x = Longueur, y= ..density..) + geom_histogram(bins=10) + geom_line(stat = "density") + ggtitle("Distribution des poids")
\[\left[\bar{X}_n-\frac{q\hat\sigma}{\sqrt{n}}\ ;\ \bar{X}_n+\frac{q\hat\sigma}{\sqrt{n}}\right] \]
avec \(q\) le quantile d'ordre \((1-\alpha/2)\) d'une gaussienne centrée réduite, \(\hat\sigma\) l'écart-type empirique et \(\bar{X}\) la moyenne empirique de \(X\). Ecrire une fonction qui prend en entrée \(X\) et \(\alpha\) et qui renvoie l'intervalle de confiance.
A l'aide de votre fonction, calculer un intervalle de confiance de niveau 95% et 90% de la Longueur. Retrouver le résultat avec la fonction t.test. Expliquer "à la main" lequel et pourquoi des intervalles de confiances est le plus petit.
intervalle_confiance <- function(X,alpha){
n <- length(X)
IC <- c(mean(X) - qnorm(1-alpha/2)*sd(X)/sqrt(n), mean(X) + qnorm(1-alpha/2)*sd(X)/sqrt(n))
return(IC)
}
X <- data$Longueur
intervalle_confiance(X,0.05)
## [1] 7.163151 7.356849
intervalle_confiance(X,0.1)
## [1] 7.178722 7.341278
t.test(data$Longueur)
##
## One Sample t-test
##
## data: data$Longueur
## t = 146.92, df = 40, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 7.160131 7.359869
## sample estimates:
## mean of x
## 7.26
Au Tour de France, plusieurs classements importent dont le classement général pour le maillot jaune (qui récompense le meilleur coureur) et le classement par équipes (qui récompense la meilleure équipe).
Le classement individuel a largement été dominé par l'équipe Ineos Grenadiers (alias Sky) de 2012 à 2019 (victoire tous les ans d'un coureur de l'équipe sauf en 2014). Pourtant, Ineos n'a remporté qu'une seule fois le classement par équipes, alors que la Movistar l'a remporté 4 fois de 2012 à 2019.
Pour être bien classé au Tour de France (sans rêver du maillot jaune, rêvons d'abord du top 10...), vaut-il mieux avoir un contrat avec Ineos ou avec la Movistar, ou n'y a-t-il pas de différence ?
Le but de l'exercice est de tester l'indépendance entre deux variables qualitatives, le classement individuel d'un joueur (top 10, 11ième à 50ième, + de 50ième) et son appartenance à l'équipe Ineos/Movistar.
Top10 | 11-50 | +50 | |
---|---|---|---|
Ineos | 11 | 22 | 28 |
Movistar | 12 | 17 | 31 |
tab <- matrix(c(11,22,28,12,17,31), ncol = 3, byrow = T)
rownames(tab) <- c("Ineos", "Movistar")
colnames(tab) <- c("Top10", "11-50", "+50")
tab
## Top10 11-50 +50
## Ineos 11 22 28
## Movistar 12 17 31
Pour tester l’indépendance de deux variables qualitatives, on teste l'hypothèse nulle \(H_0\): "les deux variables sont indépendantes" contre l'hypothèse alternative \(H_1\) : "les deux variables ne sont pas indépendantes". Pour cela, on construit la statistique de test suivante : \[T_n=\sum_{i=1}^I\sum_{j=1}^J\frac{(N_{ij}-\frac{N_{i\bullet}N_{\bullet j}}{n})^2}{\frac{N_{i\bullet}N_{\bullet j}}{n}},\] où
On peut montrer que, sous l'hypothèse \(H_0\), \[T_n\xrightarrow[n\to\infty]{\cal L}\chi_{(I-1)\times(J-1)}^2,\] tandis que, sous \(H_1\), \[T_n\xrightarrow[n\to\infty]{p.s.}+\infty.\] On rejette donc \(H_0\) si l'observation \(t_n=T_n(\omega)\) de la statistique de test prend une grande valeur.
Pour effectuer le test "à la main", il suffit de calculer la double somme donnant la statistique de test :
tab1 <- matrix(rep(apply(tab, 1, sum), 3), ncol = 3)
tab2 <- matrix(rep(apply(tab, 2, sum), 2), ncol = 3, byrow = T)
n <- sum(tab)
tab3 <- tab1*tab2/n
T <- sum((tab - tab3)^2/tab3)
alpha <- 0.05
q <- qchisq(1 - alpha, df = 3)
T < q
## [1] TRUE
q
## [1] 7.814728
Au niveau 5%, on ne rejette donc pas \(H_0\) : le classement final individuel ne dépend pas du fait d'être dans l'équipe Movistar ou Ineos.
##
## Pearson's Chi-squared test
##
## data: tab
## X-squared = 0.82884, df = 2, p-value = 0.6607
Pour retrouver cette p-value à la main :
## [1] 0.8425576