From ec20a7ff8f08fda4656398dd5c83c961085ed925 Mon Sep 17 00:00:00 2001 From: c7634a79930dd347a380ff9c518b6ce2 Date: Thu, 24 Feb 2022 19:35:14 +0000 Subject: [PATCH] Update exercice_fr.Rmd --- module3/exo3/exercice_fr.Rmd | 213 ++++++++++++++++++++++++++++++++--- 1 file changed, 196 insertions(+), 17 deletions(-) diff --git a/module3/exo3/exercice_fr.Rmd b/module3/exo3/exercice_fr.Rmd index 7eece5e..0bc4d4e 100644 --- a/module3/exo3/exercice_fr.Rmd +++ b/module3/exo3/exercice_fr.Rmd @@ -1,33 +1,212 @@ --- -title: "Votre titre" -author: "Votre nom" -date: "La date du jour" -output: html_document +title: "MOOC Recherche reproductible - Latence et de la capacité d’une connexion" +author: "Clément Bienvenu" +date: "23/02/2022" +output: + pdf_document: + toc: true --- - ```{r setup, include=FALSE} -knitr::opts_chunk$set(echo = TRUE) +knitr::opts_chunk$set(echo = TRUE , warning = FALSE , fig.height = 3 ) +library(stringr) +library(dplyr) +library(ggplot2) +``` + +```{r , eval = FALSE , echo = FALSE} +setwd("D:/Cesure/MOOC/RR") + +# Téléchargement des données +temp <- tempfile(pattern = "liglab2" , tmpdir = "D:\\Cesure\\MOOC\\RR") +download.file("http://mescal.imag.fr/membres/arnaud.legrand/teaching/2014/RICM4_EP_ping/liglab2.log.gz" , temp) +courte <- read.table(gzfile(temp) , header = T , sep = " " , dec = "." , fill = T) +unlink(temp) + +temp <- tempfile(pattern = "liglab2" , tmpdir = "D:\\Cesure\\MOOC\\RR") +download.file("http://mescal.imag.fr/membres/arnaud.legrand/teaching/2014/RICM4_EP_ping/liglab2.log.gz" , temp) +longue <- read.table(gzfile(temp) , header = T , sep = " " , dec = "." , fill = T) +unlink(temp) + + +# On enlève les colonnes inutiles +courte <- courte[,-c(3:8,10)] +longue <- longue[,-c(3:8,10)] + +# On renomme les colonne avec des noms explicites +names(courte) <- c("date","taille","temps") +names(longue) <- c("date","taille","temps") + +# On transforme tout en chiffres +courte$date <- str_sub(courte$date , start = 2 , end = -2) +longue$date <- str_sub(longue$date , start = 2 , end = -2) + +courte$temps <- str_sub(courte$temps, start = 6) +longue$temps <- str_sub(longue$temps, start = 6) + +courte$date <- as.numeric(courte$date) +courte$taille <- as.numeric(courte$taille) +courte$temps <- as.numeric(courte$temps) + +longue$date <- as.numeric(longue$date) +longue$taille <- as.numeric(longue$taille) +longue$temps <- as.numeric(longue$temps) + +# On enlève les NAs +courte <- courte %>% na.omit() +longue <- longue %>% na.omit() + + +# Vérification des données +summary(courte) +summary(longue) + +# sauvegarde d'une copie locale +write.table(courte , "connexion_courte.csv" , dec = "." , sep = ",") +write.table(longue , "connexion_longue.csv" , dec = "." , sep = ",") +``` + + +```{r , echo=FALSE} +setwd("D:/Cesure/MOOC/RR") +``` + +\newpage +Les données ont été récupérées aux adresses suivantes : \ +Connexion courte : http://mescal.imag.fr/membres/arnaud.legrand/teaching/2014/RICM4_EP_ping/liglab2.log.gz \ +Connexion longue : http://mescal.imag.fr/membres/arnaud.legrand/teaching/2014/RICM4_EP_ping/liglab2.log.gz + + +# Travail sur la connexion courte + +```{r} +courte <- read.table("connexion_courte.csv" , sep = "," , dec = "." , header = T) +``` + +## graphiques + +On commence par représenter l'évolution de temps de transmission au cours du temps et l'évolution de la taille des messages au cours du temps. + +```{r} +ggplot(data = courte , mapping = aes(x = date , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la date") +ggplot(data = courte , mapping = aes(x = date , y = taille)) + geom_point() + labs(title = "taille du message en fonction de la date") +``` + +Il est difficile de voir si le temps de transmission est liée à la taille du message avec ces graphs. + + + +```{r} +ggplot(data = courte , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") +``` + +on voit une rupture vers 1480 bytes. + + +En dessous de cette rupture : + +```{r} +ggplot(data = subset(courte , taille < 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") +``` + +Au dessus de cette rupture : + +```{r} +ggplot(data = subset(courte , taille >= 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") +``` + + +## Régression + +On fait donc deux régressions : une avec les messages en dessouss de 1480 bytes et une avec les messages au dessus. +```{r} +dessous <- lm(temps~taille , data = subset(courte , taille < 1480)) + +dessus <- lm(temps~taille , data = subset(courte , taille >= 1480)) +``` + +En dessous de 1480 bytes : \ +On estime L à `r dessous$coefficient[1]`, et C à `r 1/dessous$coefficient[2]` + +```{r} +ggplot(data = subset(courte , taille < 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") + geom_smooth(method = "lm" , col = "red") ``` -## Quelques explications -Ceci est un document R markdown que vous pouvez aisément exporter au format HTML, PDF, et MS Word. Pour plus de détails sur R Markdown consultez . +Au dessus : \ +On estime L à `r dessus$coefficient[1]`, et C à `r 1/dessus$coefficient[2]` -Lorsque vous cliquerez sur le bouton **Knit** ce document sera compilé afin de ré-exécuter le code R et d'inclure les résultats dans un document final. Comme nous vous l'avons montré dans la vidéo, on inclue du code R de la façon suivante: +```{r} +ggplot(data = subset(courte , taille >= 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") + geom_smooth(method = "lm" , col = "red") +``` + +Expliquer le temps d'envoi avec la taille du message ne semble pas être pertinent pour la connexion courte. + +\ +\ + +# Travail sur la connexion longue + +```{r} +longue <- read.table("connexion_longue.csv" , sep = "," , dec = "." , header = T) +``` + +## graphiques + +On commence par représenter l'évolution de temps de transmission au cours du temps et l'évolution de la taille des messages au cours du temps. -```{r cars} -summary(cars) +```{r} +ggplot(data = longue , mapping = aes(x = date , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la date") +ggplot(data = longue , mapping = aes(x = date , y = taille)) + geom_point() + labs(title = "taille du message en fonction de la date") ``` -Et on peut aussi aisément inclure des figures. Par exemple: +Il est difficile de voir si le temps de transmission est liée à la taille du message avec ces graphs. + + -```{r pressure, echo=FALSE} -plot(pressure) +```{r} +ggplot(data = longue , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") ``` -Vous remarquerez le paramètre `echo = FALSE` qui indique que le code ne doit pas apparaître dans la version finale du document. Nous vous recommandons dans le cadre de ce MOOC de ne pas utiliser ce paramètre car l'objectif est que vos analyses de données soient parfaitement transparentes pour être reproductibles. +on voit une rupture vers 1480 bytes. + + +En dessous de cette rupture : + +```{r} +ggplot(data = subset(longue , taille < 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") +``` + +Au dessus de cette rupture : + +```{r} +ggplot(data = subset(longue , taille >= 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") +``` + + +## Régression + +On fait donc deux régressions : une avec les messages en dessouss de 1480 bytes et une avec les messages au dessus. +```{r} +dessous <- lm(temps~taille , data = subset(longue , taille < 1480)) + +dessus <- lm(temps~taille , data = subset(longue , taille >= 1480)) +``` + +En dessous de 1480 bytes : \ +On estime L à `r dessous$coefficient[1]`, et C à `r 1/dessous$coefficient[2]` + +```{r} +ggplot(data = subset(longue , taille < 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") + geom_smooth(method = "lm" , col = "red") +``` + + +Au dessus : \ +On estime L à `r dessus$coefficient[1]`, et C à `r 1/dessus$coefficient[2]` + +```{r} +ggplot(data = subset(longue , taille >= 1480) , mapping = aes(x = taille , y = temps)) + geom_point() + labs(title = "temps de transmissions en fonction de la taille du message") + geom_smooth(method = "lm" , col = "red") +``` -Comme les résultats ne sont pas stockés dans les fichiers Rmd, pour faciliter la relecture de vos analyses par d'autres personnes, vous aurez donc intérêt à générer un HTML ou un PDF et à le commiter. +Expliquer le temps d'envoi avec la taille du message ne semble pas être pertinent pour la connexion longue. -Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel. -- 2.18.1