“L5GEABIM Analyses bivariées et multivariées”
| Num.cours | date | thème | outil | exercice..nb.pts. |
|---|---|---|---|---|
| 1 | 15/09/25 | statistique univariée : base | tableur | 1 |
| 2 | 22/09/25 | statistique univariée : indicateurs | 2 | |
| 3 | 29/09/25 | bivariée : base + régression début | 2 | |
| 4 | 06/10/25 | régression fin + khi début (tableau de contingence) | 2 | |
| 5 | 13/10/25 | khi2 | 2 | |
| 6 | 20/10/25 | initiation R | R | NA |
| NA | 27/10/25 | CONGES | NA | |
| 7 | 03/11/25 | initiation R / boite à moustaches | 1 | |
| 8 | 10/11/25 | initiation R / variance + sujet DM | NA | |
| 9 | 17/11/25 | multivariée : régression linéaire multiple | NA | |
| 10 | 24/11/25 | multivariée : analyse factorielle | NA | |
| 11 | 01/12/25 | multivariée : classification | NA | |
| 12 | 08/12/25 | questions autour du devoir maison. Devoir à rendre le 12 au plus tard. | NA | |
| 13 | 15/12/25 | révisions | NA | |
| 14 | Entre 6 et 16 janvier | partiel | NA |
Au départ les données sur les finances des communes
https://www.data.gouv.fr/datasets/comptes-des-communes-2017-2024/
23 millions d’observations au total, un fichier de 6 G°de données
voir la source
originale
Portail données
https://data.ofgl.fr/explore/dataset/
Comptes consolidées, sur le département choisi
data <- read.csv2("data/ofgl-base-communes-consolidee.csv")
names(data)
head(data)
# combien d'enregistrement par ville et par exercice ?
table(data$Code.Insee.2024.Commune, data$Exercice)
# filtre sur l'année
data <- data [ data$Exercice == 2024,]
# sauvegarde de la donnée
write.csv(data [,c(16,20,21,28)], "data/data93_2024.csv", fileEncoding = "UTF-8")
table(data$Agrégat)Portail cartographie
Il est plus facile d’utiliser l’outil proposé par l’Observatoire des finances et de la gestion publique locale.
Les questions posées sont sur le passé / présent / futur des étudiants, leur appétence en stats
etudiant <- read.csv("data/TD3_stats_2025.csv", fileEncoding = "UTF-8")
etudiant2 <- read.csv("data/tdLundi.csv", fileEncoding = "UTF-8")
names(etudiant)## [1] "prenom" "adresse.mail"
## [3] "groupe" "appetence"
## [5] "code.insee.commune.choisie" "passé"
## [7] "futur"
## [1] "X"
## [2] "adresse.mail"
## [3] "groupe"
## [4] "appetence.stats..1...4..un.peu..passionnément."
## [5] "code.insee.commune.choisie"
## [6] "passé"
## [7] "présent"
## [8] "futur"
names(etudiant2)[1] <- 'prenom'
names(etudiant2)[4] <- 'appetence'
etudiant2 <- etudiant2 [, names(etudiant)]
etudiant <- rbind(etudiant, etudiant2)
etudiant <- etudiant [!is.na(etudiant$prenom),]
table(etudiant$groupe, useNA = "always")##
## 1 2 3 <NA>
## 29 31 21 5
etudiant <- read.csv("data/etudiantModifie.csv", fileEncoding = "UTF-8")
png("img/quisontils.png", width = 10000, height = 10000, res=1000)
#par(mar = c(2,16,2,4))
par(mfrow = c(2,2))
for (i in c(3,4,6,7)){
(mar = c(2,30,2,4))
barplot(table(etudiant [,i]), border = NA,
horiz = T, las = 2, cex.names = 0.8,
main = names (etudiant) [i])
}
dev.off()## png
## 2

| Cours | TD1 | TD2 | TD3 |
|---|---|---|---|
| C1 | 30 | 31 | 22 |
| C2 | 22 | 25 | 24 |
| C3 | 23 | 27 | 19 |
| C4 | 19 | 29 | 13 |
| C5 | 25 | 23 | 18 |
| C6 | NA | NA | NA |
| C7 | NA | NA | NA |
| C8 | NA | NA | NA |
| C9 | NA | NA | NA |
| C10 | NA | NA | NA |
| C11 | NA | NA | NA |
| C12 | NA | NA | NA |
| C13 | NA | NA | NA |
presence <- presence [c(1:5),]
par(mfrow = c(3,1))
barplot(presence$TD1~presence$Cours, col="chartreuse", beside = T, main = "Evolution de la présence groupe 1", xlab = "cours", ylab = "nb"
, border = NA, legend = F)
barplot(presence$TD2~presence$Cours, col = "cyan", beside = T, main = "Evolution de la présence groupe 2", xlab = "cours", ylab = "nb"
, border = NA, legend = F)
barplot(presence$TD3~presence$Cours, col="darkorange",beside = T, main = "Evolution de la présence groupe 3", xlab = "cours", ylab = "nb"
, border = NA, legend = F)
# Sur le même graphique
par(mfrow = c(1,1))
rownames(presence) <- presence [,1]
presence <- presence [,-1]
presence <- as.matrix(presence)
library(RColorBrewer)
pal <- brewer.pal(5, "Set1")
# graph
barplot(presence, beside = T, col = pal, border = NA, main = "Evolution de la présence des 3 groupes")
data <- read.csv("data/notesDM1_4.csv", na.strings = "-", fileEncoding = "UTF-8")
data <- data [, c(2:6)]
names(data)## [1] "Devoir.MAISON.2...Valeurs.centrales.et.dispersion..Brut."
## [2] "Devoir.MAISON.4...contingence.agrégats.communes..Brut."
## [3] "Devoir.MAISON.5...khi2..Brut."
## [4] "Devoir.MAISON.3...régression.entre.2.agrégats.financiers..Brut."
## [5] "Devoir.MAISON.1...Dénombrement..Brut."
data <- data [, c(5,1,4,2,3)]
titre <- c("1_distribution", "2_univarié", "3_regression", "4_contingence", "5_khi2")
png("img/rendu.png", width = 600, height = 600, res = 100)
par( mfrow = c(2,3))
tot <- length(data)
i <-1
for (i in c(1:tot)){
tmp <- table(data [,i])
barplot(tmp, cex.names = 0.8, las = 1,
main = paste0(titre [i], " (", sum(tmp), " observations)"), border = NA, col = "wheat")
}
dev.off()## png
## 2

le nom du fichier
le temps du rendu (avant la limite)
Attention à la consigne !
note <- read.csv("data/noteFinales.csv", fileEncoding = "UTF-8", na.strings = c("EN ATTENTE", "NA","-"), dec = ",")
summary(note)
png("img/noteFin.png")
hist(note$NOTE.FINALE, main = "Etalement note finale - 64 obs", freq = T, border = NA)
abline(v = mean(note$NOTE.FINALE, na.rm = T), col = "red")
abline(v = median(note$NOTE.FINALE, na.rm=T), col = "blue")
dev.off()
2 cours universitaires disponibles sur internet
Pour R, la base de tout est
R et espace (https://archives.framabook.org/r-et-espace/index.html)
L5GEABIM Analyses bivariées et multivariées