Update exercice_fr.Rmd

parent d2c09a7a
---
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 <http://rmarkdown.rstudio.com>.
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.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment