1 Intitulé et déroulé du cours

“L5GEABIM Analyses bivariées et multivariées”

data <- read.csv("data/presentation.csv", encoding = "UTF-8", header = F)
knitr::kable(data, col.names = c("groupe", "heures", "enseignant") )
groupe heures enseignant
Gr. 1 8h - 9h30 Béatrice MARANGET
Gr. 2 9h30 - 11h Béatrice MARANGET
Gr. 3 14h - 15h30 Béatrice MARANGET
data <- read.csv("data/deroule2023.csv", encoding = "UTF-8")
knitr::kable(data)
Num.cours date thème outil exercice..nb.pts.
1 18/09/23 statistique univariée : base tableur 1
2 25/09/23 statistique univariée : indicateurs 2
3 02/10/23 bivariée : base + contingence 2
4 09/10/23 Khi 2 2
5 16/10/23 régression 2
6 23/10/23 devoir sur table NA
NA 30/10/23 CONGES NA
7 06/11/23 initiation R R 1
8 13/11/23 initiation R / boite à moustaches NA
9 20/11/23 initiation R / variance NA
10 27/11/23 multivariée : analyse factorielle, classification + sujet DM NA
11 04/12/23 multivariée : analyse factorielle et classification NA
12 11/12/23 questions autour du devoir maison. Devoir à rendre le 13 au plus tard. NA
13 18/12/23 rendu du devoir maison et bilan formation NA

2 La donnée

2.1 Où les trouver ?

Au départ les données sur les élections disponibles

https://www.data.gouv.fr/fr/pages/donnees-des-elections/

intérêt de la maille du bureau de vote

Chercher REU au niveau de la zone de recherche de data.gouv, quelles perspectives pour les chercheurs ?

2.2 Préparer les données

On utilise pour le cours le fichier par bureau de vote des présidentielles 2022

Cet exercice permet d’utiliser dans le tableur :

  • l’ouverture d’un fichier txt pour le transformer en csv
  • la suppression de colonne
  • les 3 raccourcis clavier : CTRL + * , CTRL + C, CTRL + V
  • Touche de sélection et de déplacement
  • tri
  • filtre

L’objectif est que chaque étudiant choisisse une ville (avec au moins 5 bureaux de vote)

Pour 2022, on rajoute les étiquettes des colonnes manquantes

# 2022
data2022 <- read.csv("data/gros/resultats-par-niveau-burvot-t1-france-entiere.csv", fileEncoding = "UTF-8", header = T)
bondy2022 <- data2022 [ data2022$Libellé.de.la.commune == "Bondy",]
str(bondy2022)
write.csv(bondy2022, "data/bondy2022.csv", fileEncoding = "UTF-8")
# 2002
data2002 <- read.csv2("data/gros/PR02_BVot_T1T2.csv", fileEncoding= "Latin1",header=F,skip=18)
str(data2002)
data2002 <- data2002 [, c(4,5,6:8,10,13)]
var <- c("ville","bv"   ,"inscrits" ,"votants", "exprimes", "nom",  "nb")
names(data2002) <- var
str(data2002)
bondy2002 <- data2002 [ data2002$ville == "Bondy",]
write.csv(bondy2002, "data/bondy2002.csv", fileEncoding = "UTF-8")

2.3 Recodage des variables

2.3.1 Créer des tables de référence

2.3.2 Formule rechercheV

2.3.3 Résultat sur les écarts à la moyenne 2002

3 Présentation rapide (vous êtes nombreux !)

3.1 Qui sont les étudiants ?

  • 74 étudiants sur 3 cours

Les questions posées sont sur le passé / présent / futur des étudiants, leur appétence en stats et le nombre d’années depuis le dernier apprentissage.

etudiant <-  read.csv("data/cours1.csv", fileEncoding = "UTF-8")
names(etudiant)
##  [1] "X"                                                
##  [2] "presence"                                         
##  [3] "prénom"                                           
##  [4] "nom"                                              
##  [5] "passé"                                            
##  [6] "présent"                                          
##  [7] "futur"                                            
##  [8] "appétence.stats..passionnément.4...pas.du.tout.1."
##  [9] "dernière.année.apprentissage.stats..en.nb.années."
## [10] "groupe"
names(etudiant)[8:9] <- c("appétence", "nb d'années")
png("img/quisontils.png", width = 10000, height = 10000, res=1800)
#par(mar = c(2,16,2,4))
par(mfrow = c(2,3))
for (i in 5:9){
  (mar = c(2,16,2,4))
  barplot(sort(table(etudiant [,i])), border = NA,
          horiz = T, las = 2, cex.names = 0.8, 
          main = names (etudiant) [i])
}
dev.off()
## png 
##   2

3.2 Présence et rendu des devoirs : chiffres clés

3.2.1 Effectif et cours

fic <- list.files("data/", pattern = "^cours")
fic
##  [1] "cours1.csv"  "cours10.csv" "cours11.csv" "cours2.csv"  "cours3.csv" 
##  [6] "cours4.csv"  "cours5.csv"  "cours6.csv"  "cours7.csv"  "cours8.csv" 
## [11] "cours9.csv"
# on recherche le fichier le plus haut
nb <- max(as.integer(substring(fic, 6,7)))
tmp <- NULL
tab <- NULL
i <-  1
for (i in 1:nb) {
  print(i)
  nomFic <- paste0("data/cours", i, ".csv")
  data <- read.csv(nomFic, fileEncoding = "UTF-8")
  data <- data [data [,2] == "oui",]
  tmp <- table(data$groupe)
  tab <- rbind(tab , tmp)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10
## [1] 11
tab
##      1  2  3
## tmp 18 28 26
## tmp 17 24 24
## tmp 18 22 18
## tmp 21 21 20
## tmp 21 21 21
## tmp 17 17 21
## tmp 18 21 21
## tmp 16 15 22
## tmp 15 18 24
## tmp 16 18 18
## tmp 13 16 18
row.names(tab) <- paste0("cours ",seq(1,nb, by = 1))
paste0("cours ",seq(1,nb, by = 1))
##  [1] "cours 1"  "cours 2"  "cours 3"  "cours 4"  "cours 5"  "cours 6" 
##  [7] "cours 7"  "cours 8"  "cours 9"  "cours 10" "cours 11"
knitr::kable(tab)
1 2 3
cours 1 18 28 26
cours 2 17 24 24
cours 3 18 22 18
cours 4 21 21 20
cours 5 21 21 21
cours 6 17 17 21
cours 7 18 21 21
cours 8 16 15 22
cours 9 15 18 24
cours 10 16 18 18
cours 11 13 16 18
# Graphique
p <- barplot(tab, beside = T, main = "nombre d'étudiants par groupe et par cours", xlab = "groupe", ylab = "nb", col = terrain.colors(nb) 
        , border = NA, legend =  F)

3.2.2 Les rendus d’exercices

rendu <- c(56,59, 56, 45,58,49)
titre <- c("distribution", "univarié", "contingence", "khi2", "regression", "1er script")
par(mar = c(8,6,6,6))
p <- barplot(rendu, names = titre, cex.names = 0.8, las = 2, main = "rendu devoirs (effectif 75 étudiants environ)", border = NA)
text(p, y = rendu - 1, labels = rendu )

3.2.2.1 Les notes des exercices

  • Le critère externe : des points faciles ?

le nom du fichier le temps du rendu (avant la limite)

  • Distribution des totaux
res <- read.csv("data/exo.csv",  na.strings = '-', fileEncoding = "UTF-8")
names(res)
## [1] "X5_regression" "X1_Univarié.1" "X2_Univarié.2" "X3_khi2"      
## [5] "X4_Khi2.2"     "X6_R"
res <- res [, c(2:5,1,6)]
# recodage : si note 2, alors note1 = 0 si NA
res$X1_Univarié.1 [is.na(res$X1_Univarié.1 )& !is.na(res$X2_Univarié.2)] <- 0
res$X1_Univarié.1 [ is.na(res$X2_Univarié.2)] <- NA
# graphique
par(mfrow= c(2,3))
for (i in (1:length(res))){
  p <-barplot(table(res[,i]), main = names(res)[i])
}

3.3 Notes finales

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()

4 Ressources autre que la bibliographie officielle

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