title: "Concentration de CO2 dans l'atmosphère depuis 1958"
author: "Pierre LACOSTE"
date: "13/12/2021"
output: pdf_document
---
...
...
@@ -10,24 +10,172 @@ output: html_document
knitr::opts_chunk$set(echo = TRUE)
```
## Quelques explications
## 1) Importation et verification des données
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>.
Les données on été importé le 13/12/2021.
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:
On verifie si les données ont été téléchargé, si ce n'est pas le cas on les téléchage
```{r}
if (file.exists(path)==F) {
download.file(data_url,path)
}
```
On importe les données, en regardant le jeux de données, on se rend compte que les 44 première lignes expliquent le tableau, il faut donc les enlever lors de l'importation.
```{r}
data = read.csv(path, skip = 44, header = F, dec = ".", sep = ",")
```
Le tableau contient 2 colones:
- La date
- La concentration en C0² en micromol/mol
Les colonnes n'ont pas de titres donc on en ajoute un pour plus de clarté dans les analyses.
```{r}
names(data)=c("Date","C_ppm")
names(data)
```
On verifie que les tableau vas bien de 1958 à 2021.
```{r}
head(data)
tail(data)
```
Les mesures vont bien de Mars 1958 à septembre 2021.
Maintenant il faut verifier si des données sont manquantes.
```{r}
na_records = apply(data, 1, function (x) any(is.na(x)))
data[na_records,]
```
Il n'y en a pas, bonne nouvelle pour notre anlayse.
Il faut maintenant verifier la classe de chaque colones.
```{r}
str(data)
```
La colonne `date` est un vecteur chaine de caractère et la colone concentration (`C_ppm`) est un vecteur de nombre.
Pour pouvoir travailler sur les données il faut transformer les chaines de caractères en date.
```{r}
library(parsedate)
convert_week = function(iso) {
as.character(parse_iso_8601(iso))
}
data$Date = as.Date(convert_week(data$Date))
```
```{r}
class(data$Date)
```
Les poitns sont dans l'ordre chronoligique donc pas besoin de les trier.
On verifie que les semaines font bien 7 jours.
```{r}
all(diff(data$date) == 7)
```
## Représentation graphique:
```{r cars}
summary(cars)
On Fait une première représentaion graphique pour visualiser les données.
```{r}
plot(data, type = "l")
```
On observe une tendence positive avec une oscilation.
Zoom sur 2ans
```{r}
plot(tail(data,100), type = "l")
```
Pour visuliser l'evolution globale on vas se concentrer sur les mesure anuelles.
Les oscilation sont anuelles et le pic semble au printemps.
Pour eviter de demarer une année dans le pic on va commencer l'année au 1er aout.
Et on peut aussi aisément inclure des figures. Par exemple:
```{r pressure, echo=FALSE}
plot(pressure)
On refait le graphique en ajoutant par dessus la tendance.
```{r}
plot(data, type = "l")
points(inc_annuelle$mean_CO2~inc_annuelle$dates, col = "red", type = "l")
#points((inc_annuelle$mean_CO2-inc_annuelle$sd_CO2)~inc_annuelle$dates, col = "blue", type = "l")
#points((inc_annuelle$mean_CO2+inc_annuelle$sd_CO2)~inc_annuelle$dates, col = "blue", type = "l")
```
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.
## Etude de la tendance
Pour estimer la tendance on peut utiliser une régression linéaire.
Il faut d'abord créer le modèle.
```{r}
m = lm(inc_annuelle$mean_CO2~inc_annuelle$dates)
```
```{r}
summary(m)
```
Notre modèle est bon, il explique 98% des données (R²=0.98).
La droite à pour intercept 3.244e+02 et pour pente 4.369e-3
```{r}
plot(data, type = "l", xlim = c(as.Date("1958-01-01"),as.Date("2030-12-31")), ylim = c(300,450))
abline(a = 3.244e+02, b = 4.369e-03, col = "blue")
abline(v=as.Date("2025-01-01"), lty=2)
abline (412, 0, lty = 2)
```
Maintenant on vas tenter d'extrapoler avec notre modèle à l'horizon 2025.
On peut extrapoler grâce au graphique qu'a l'horizon 2025 la quantité de CO2 sera d'environ 412 mircomol par mol.
On cette valeur est déjà dépassé en 2021 ce qui montre que notre modèle devrait être affiné pour ameliorer nos predictions.
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.
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel.