...
 
Commits (13)
test # Partie 1
\ No newline at end of file ## Sous-partie 1 : texte
Voici une phrase normale
*Voici une phrase en italique.*
**Voici un phrase en gras**
Voici un lien vers [fun-mooc.fr] (https://www.fun-mooc.fr/)
`Voici un ligne de code en Markdown`
## Sous-partie 2 : Listes
### Liste à puce
- Premier item
- Sous-item A
- Sous-item B
- Deuxième item
- Troisième item
### Liste numérotée
1. Premier élément
2. Deuxième élément
3. Troisième élément
## Sous partie 3 : code
print("Bonjour tout le monde !")
# Partie 1
## Sous-partie 1 : texte
Voici une phrase normale
*Voici une phrase en italique.*
**Voici un phrase en gras**
Voici un lien vers [fun-mooc.fr] (https://www.fun-mooc.fr/)
`Voici un ligne de code en Markdown`
## Sous-partie 2 : Listes
### Liste à puce
- Premier item
- Sous-item A
- Sous-item B
- Deuxième item
- Troisième item
### Liste numérotée
1. Premier élément
2. Deuxième élément
3. Troisième élément
## Sous partie 3 : code
print("Bonjour tout le monde !")
--- ---
title: "Votre titre" title: "Exercice 2"
author: "Votre nom" author: "Caroline"
date: "La date du jour" date: "08/11/2025"
output: html_document output: html_document
--- ---
# À propos du calcul de π
**Arnaud Legrand**
25 juin 2018
## En demandant à la lib maths
Mon ordinateur m’indique que π vaut approximativement :
```r
pi
#> [1] 3.141593
**En utilisant la méthode des aiguilles de Buffon**
set.seed(42)
N <- 100000
x <- runif(N)
theta <- pi/2 * runif(N)
2 / (mean(x + sin(theta) > 1))
#> [1] 3.14327
**Avec un argument « fréquentiel » de surface (Méthode de Monte Carlo)**
set.seed(42)
N <- 1000
df <- data.frame(X = runif(N), Y = runif(N))
df$Accept <- (df$X^2 + df$Y^2 <= 1)
# Visualisation
library(ggplot2)
ggplot(df, aes(x = X, y = Y, color = Accept)) +
geom_point(alpha = .2) +
coord_fixed() +
theme_bw()
**d’obtenir une approximation (pas terrible) de π**
4 * mean(df$Accept)
#> [1] 3.156
```{r setup, include=FALSE} ```{r setup, include=FALSE}
......
--- ---
title: "Votre titre" title: "Exercice 2"
author: "Votre nom" author: "Caroline"
date: "La date du jour" date: "08/11/2025"
output: html_document output: html_document
--- ---
valeurs <- c(
14.0, 7.6, 11.2, 12.8, 12.5, 9.9, 14.9, 9.4, 16.9, 10.2,
14.9, 18.1, 7.3, 9.8, 10.9, 12.2, 9.9, 2.9, 2.8, 15.4,
15.7, 9.7, 13.1, 13.2, 12.3, 11.7, 16.0, 12.4, 17.9, 12.2,
16.2, 18.7, 8.9, 11.9, 12.1, 14.6, 12.1, 4.7, 3.9, 16.9,
16.8, 11.3, 14.4, 15.7, 14.0, 13.6, 18.0, 13.6, 19.9, 13.7,
17.0, 20.5, 9.9, 12.5, 13.2, 16.1, 13.5, 6.3, 6.4, 17.6,
19.1, 12.8, 15.5, 16.3, 15.2, 14.6, 19.1, 14.4, 21.4, 15.1,
19.6, 21.7, 11.3, 15.0, 14.3, 16.8, 14.0, 6.8, 8.2, 19.9,
20.4, 14.6, 16.4, 18.7, 16.8, 15.8, 20.4, 15.8, 22.4, 16.2,
20.3, 23.4, 12.1, 15.5, 15.4, 18.4, 15.7, 10.2, 8.9, 21.0
)
# Calculs demandés
mean(valeurs) # Moyenne
sd(valeurs) # Écart-type
min(valeurs) # Minimum
median(valeurs) # Médiane
max(valeurs) # Maximum
# Résumé général
summary(valeurs)
> mean(valeurs)
[1] 14.486
> sd(valeurs)
[1] 4.550
> min(valeurs)
[1] 2.8
> median(valeurs)
[1] 14.6
> max(valeurs)
[1] 23.4
> summary(valeurs)
Min. 1st Qu. Median Mean 3rd Qu. Max.
2.80 11.90 14.60 14.49 17.00 23.40
```{r setup, include=FALSE} ```{r setup, include=FALSE}
......
#+TITLE: Votre titre #+TITLE: Exercice 3
#+AUTHOR: Votre nom #+AUTHOR: Caroline
#+DATE: La date du jour #+DATE: 08/11/2025
#+LANGUAGE: fr #+LANGUAGE: fr
# #+PROPERTY: header-args :eval never-export # #+PROPERTY: header-args :eval never-export
# Données
valeurs <- c(
14.0, 7.6, 11.2, 12.8, 12.5, 9.9, 14.9, 9.4, 16.9, 10.2,
14.9, 18.1, 7.3, 9.8, 10.9, 12.2, 9.9, 2.9, 2.8, 15.4,
15.7, 9.7, 13.1, 13.2, 12.3, 11.7, 16.0, 12.4, 17.9, 12.2,
16.2, 18.7, 8.9, 11.9, 12.1, 14.6, 12.1, 4.7, 3.9, 16.9,
16.8, 11.3, 14.4, 15.7, 14.0, 13.6, 18.0, 13.6, 19.9, 13.7,
17.0, 20.5, 9.9, 12.5, 13.2, 16.1, 13.5, 6.3, 6.4, 17.6,
19.1, 12.8, 15.5, 16.3, 15.2, 14.6, 19.1, 14.4, 21.4, 15.1,
19.6, 21.7, 11.3, 15.0, 14.3, 16.8, 14.0, 6.8, 8.2, 19.9,
20.4, 14.6, 16.4, 18.7, 16.8, 15.8, 20.4, 15.8, 22.4, 16.2,
20.3, 23.4, 12.1, 15.5, 15.4, 18.4, 15.7, 10.2, 8.9, 21.0
)
# Créer une fenêtre graphique avec deux zones
par(mfrow = c(2, 1))
# 1 Séquence des valeurs (plot)
plot(valeurs, type = "l", col = "blue", xlab = "", ylab = "",
main = "Séquence des valeurs")
# 2 Histogramme des valeurs
hist(valeurs, col = "blue", border = "black",
main = "Histogramme des valeurs", xlab = "", ylab = "")
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> #+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
......
...@@ -2,22 +2,56 @@ ...@@ -2,22 +2,56 @@
title: "Analyse de l'incidence du syndrôme grippal" title: "Analyse de l'incidence du syndrôme grippal"
author: "Konrad Hinsen" author: "Konrad Hinsen"
output: output:
pdf_document: # --- Import des données : copie locale réplicable ---
toc: true
html_document: # URL d’origine (traçabilité uniquement)
toc: true origin_url <- "http://www.sentiweb.fr/datasets/incidence-PAY-3.csv"
theme: journal
documentclass: article # Répertoire local où sauvegarder la copie
classoption: a4paper local_dir <- "module3/exo1/data"
header-includes: dir.create(local_dir, showWarnings = FALSE, recursive = TRUE)
- \usepackage[french]{babel}
- \usepackage[upright]{fourier} # Nom du fichier local
- \hypersetup{colorlinks=true,pagebackref=true} local_csv <- file.path(local_dir, "incidence_fr_metropolitaine.csv")
---
# 1) Télécharger si la copie locale n’existe pas
if (!file.exists(local_csv)) {
message("Téléchargement depuis le Réseau Sentinelles…")
utils::download.file(origin_url, destfile = local_csv, mode = "wb", quiet = TRUE)
}
# 2) Lire la copie locale
data <- read.csv(local_csv,
skip = 1,
na.strings = c("-", "", "NA"),
stringsAsFactors = FALSE)
names(data) <- trimws(tolower(names(data)))
if (!"inc" %in% names(data) && "inc100" %in% names(data)) {
data$inc <- data$inc100
}
stopifnot(all(c("week", "inc") %in% names(data)))
head(data)
# MODIFICATION DU CODE : Exercice 03 (1re partie)
#
# Dans la version initiale du document, les données du Réseau Sentinelles
# étaient téléchargées directement depuis l’URL à chaque exécution.
# Cela posait plusieurs problèmes :
# - nécessité d’une connexion Internet ;
# - lenteur due au téléchargement ;
# - absence de garantie sur la stabilité du format et du contenu des données.
#
# Pour rendre l’analyse réplicable et traçable, j’ai modifié le code de façon à :
# 1. vérifier si une copie locale du fichier CSV existe ;
# 2. sinon, télécharger les données depuis l’URL officielle et les sauvegarder ;
# 3. lire ensuite systématiquement la copie locale.
#
# Ce choix assure que le document reste exécutable même sans Internet,
# et que les résultats obtenus correspondent exactement aux données utilisées
# au moment de l’analyse.
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Préparation des données ## Préparation des données
......
--- ---
title: "Votre titre" title: "Exercice 3 p2"
author: "Votre nom" author: "Caroline"
date: "La date du jour" date: "08/11/2025"
output: html_document output: html_document
--- ---
# Exercice 03 (2e partie) – Analyse de l'incidence de la varicelle
#
# Objectif :
# Adapter l'analyse du syndrome grippal pour étudier la varicelle.
# Nous utilisons ici une copie locale du fichier CSV téléchargé depuis
# le site du Réseau Sentinelles (France métropolitaine).
#
# L’année épidémiologique est définie du 1er septembre (année N–1)
# au 1er septembre (année N), conformément à l’énoncé de l’exercice.
# --- Import des données locales ---
# Le fichier a été téléchargé manuellement depuis le site du Réseau Sentinelles.
# (menu : Surveillance continue → Base de données → Accès aux données → Télécharger)
# Fichier local : inc-7-PAY-ds2.csv (incidence de la varicelle)
data <- read.csv("module3/exo2/inc-7-PAY-ds2.csv",
skip = 1,
na.strings = c("-", "", "NA"),
stringsAsFactors = FALSE)
names(data) <- trimws(tolower(names(data)))
if (!"inc" %in% names(data) && "inc100" %in% names(data)) {
data$inc <- data$inc100
}
# --- Conversion des numéros de semaine ISO en dates ---
library(parsedate)
convert_week <- function(w) {
ws <- paste(w)
iso <- paste0(substring(ws, 1, 4), "-W", substring(ws, 5, 6))
as.character(parse_iso_8601(iso))
}
data$date <- as.Date(convert_week(data$week))
data <- data[order(data$date), ]
# --- Calcul de l’incidence annuelle ---
pic_annuel <- function(annee) {
debut <- paste0(annee - 1, "-09-01")
fin <- paste0(annee, "-09-01")
semaines <- data$date > debut & data$date <= fin
sum(data$inc[semaines], na.rm = TRUE)
}
annees <- seq(1986, as.numeric(format(Sys.Date(), "%Y")) - 1)
inc_annuelle <- data.frame(
annee = annees,
incidence = sapply(annees, pic_annuel)
)
# --- Visualisation (optionnelle) ---
plot(inc_annuelle, type = "b", col = "darkgreen",
xlab = "Année", ylab = "Incidence annuelle (cas / 100 000 hab.)",
main = "Incidence annuelle de la varicelle en France métropolitaine")
# --- Résultats : années extrêmes ---
max_year <- inc_annuelle$annee[which.max(inc_annuelle$incidence)]
min_year <- inc_annuelle$annee[which.min(inc_annuelle$incidence)]
cat("Année avec l’épidémie la plus forte :", max_year, "\n")
cat("Année avec l’épidémie la plus faible :", min_year, "\n")
# Résultats attendus :
# 1 Année la plus forte : 2022
# 2 Année la plus faible : 1986
```{r setup, include=FALSE} ```{r setup, include=FALSE}
......