- Professeure associée à l’Université Western Ontario
- Doctorat en science politique à l’Université de Pennsylvanie
- Data Scientist au City Lab Berlin (2019-2022)
- Prototypes & analyse de données
- Programmation: R, Python, JavaScript
Été 2022
| Auteur(e) | VI | VD |
|---|---|---|
| Bodet et al. (2013) | Parti au pouvoir à Ottawa | Dépenses gouvernementales |
| Campana (2014) | Manque de coordination politique | Incidents terroristes au Caucase du Nord |
| Duchesne et al. (2007) | Normes démocratiques | Intervention étrangère en cas de sécession |
| Dufresne et al. (2019) | Age et cohorte générationnelle | Appui à l’indépendance du Québec |
| Paquin et al. (2014) | Attaques du 11 septembre 2001 | Normes de défense en Amérique du Nord |
# Créer un vecteur (une variable) avec le nombre de minutes d'étude min_etude <- c(90,120,60,125,100,60,95,80) # Créer un vecteur (une variable) avec les notes obtenues à l'examen notes <- c(80,95,75,99,82,60,92,80) # Corrélation entre les deux variables cor(min_etude,notes)
## [1] 0.9011517
# Visualiser la relation entre minutes d'étude et la note obtenue plot(min_etude,notes,pch=16,col="steelblue",xlab="Minutes d'étude",ylab="Note obtenue")
plot(min_etude,notes,pch=16,col="steelblue",xlab="Minutes d'étude",ylab="Note obtenue") abline(lm(notes ~ min_etude), col = "red", lwd = 2, lty=2) # visualiser la corrélation
# vac_pop <- read.csv(".../vac_data.csv") # importer le jeu de données
dim(vac_pop) # dimensions du data frame
## [1] 8485000 2
colnames(vac_pop) # nom des variables
## [1] "temperature" "vaccin_24h"
table(vac_pop$vaccin_24h) # montrer combien ont reçu un vaccin dans la population
## ## 0 1 ## 8400000 85000
hist(vac_pop$temperature, breaks=100, col="steelblue",
main="Température corporelle des Québécois (3 janvier 2022)",
xlab="Température corporelle", ylab="Nombre de personnes")
mean(vac_pop$temperature) # moyenne de température corporelle dans la population
## [1] 36.50994
library(dplyr) # pour utiliser "sample_n" vac_echant <- sample_n(vac_pop,size=1000) # sélectioner 1000 observations aléatoirement table(vac_echant$vaccin_24h) # montrer combien ont reçu un vaccin dans l'échantillon
## ## 0 1 ## 983 17
hist(vac_echant$temperature, breaks=100, col="steelblue",
main="Température corporelle dans l'échantillon (3 janvier 2022)",
xlab="Température corporelle", ylab="Nombre de personnes")
vac_echant_ontRecuVac <- vac_echant[vac_echant$vaccin_24h==1,] # créer un subset
hist(vac_echant_ontRecuVac$temperature, breaks=5, col="steelblue",
main="Température corporelle dans le sous-échantillon (3 janvier 2022)",
xlab=" ", ylab="Nombre de personnes")
# t-test pour connaître la différence moyenne de température
# corporelle entre les récemment vaccinés et le reste de l'échantillon
t.test(vac_echant$temperature[vac_echant$vaccin_24h==0], # non-vaccinés (==0)
vac_echant$temperature[vac_echant$vaccin_24h==1]) # vaccinés (==1)
## ## Welch Two Sample t-test ## ## data: vac_echant$temperature[vac_echant$vaccin_24h == 0] and vac_echant$temperature[vac_echant$vaccin_24h == 1] ## t = -12.166, df = 17.631, p-value = 5.223e-10 ## alternative hypothesis: true difference in means is not equal to 0 ## 95 percent confidence interval: ## -1.258571 -0.887426 ## sample estimates: ## mean of x mean of y ## 36.47908 37.55207
37.55207-36.47908 # différence moyenne de température corporelle
## [1] 1.07299
# Autrement dit: l'effet du vaccin sur la température corporelle 37.55207 # estimateur du paramètre dans la population (vaccinés)
## [1] 37.55207
36.47908 # estimateur du paramètre dans la population (non-vaccinés)
## [1] 36.47908
sim_data <- rnorm(1000,168,6) # générer 1000 observations provenant d'une distribution # normale avec paramètres 168 comme moyenne et 6 comme d.s. sim_data[1:5] # cinq premières observations
## [1] 164.6371 166.6189 177.3522 168.4231 168.7757
mean(sim_data) # moyenne de sim_data
## [1] 168.0968
sd(sim_data) # déviation standard de sim_data
## [1] 5.95017
| Pas gagné | Gagné | |
|---|---|---|
| Score de bonheur moyen | 5.3 | 5.6 |
| Vaccin A | Vaccin B | Vaccin C | |
|---|---|---|---|
| Température corporelle moyenne | 36.3 | 36.6 | 37.1 |
# Si le vaccin est attribué de manière aléatoire...
# t-test pour connaître la différence moyenne de température
# corporelle entre les récemment vaccinés et le reste de l'échantillon
t.test(vac_echant$temperature[vac_echant$vaccin_24h==0], # non-vaccinés (==0)
vac_echant$temperature[vac_echant$vaccin_24h==1]) # vaccinés (==1)
## ## Welch Two Sample t-test ## ## data: vac_echant$temperature[vac_echant$vaccin_24h == 0] and vac_echant$temperature[vac_echant$vaccin_24h == 1] ## t = -12.166, df = 17.631, p-value = 5.223e-10 ## alternative hypothesis: true difference in means is not equal to 0 ## 95 percent confidence interval: ## -1.258571 -0.887426 ## sample estimates: ## mean of x mean of y ## 36.47908 37.55207
# Créer notre data frame
experience <- data.frame(note = c(10, 4, 5, 3, 3, 7, 2, 6, 2, 8, 5),
groupe = factor(c("c", "a", "b", "a",
"b", "b", "a", "b",
"a", "c", "c")))
fit <- aov(note ~ groupe, experience) # Analyse de variance
summary(fit) # Montrer les résultats
## Df Sum Sq Mean Sq F value Pr(>F) ## groupe 2 41.83 20.917 6.924 0.018 * ## Residuals 8 24.17 3.021 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Il y a une différence significative (p < 0.05), mais on ne sait pas laquelle
TukeyHSD(fit)
## Tukey multiple comparisons of means ## 95% family-wise confidence level ## ## Fit: aov(formula = note ~ groupe, data = experience) ## ## $groupe ## diff lwr upr p adj ## b-a 2.500000 -1.011771 6.011771 0.1660413 ## c-a 4.916667 1.123521 8.709813 0.0147588 ## c-b 2.416667 -1.376479 6.209813 0.2236276
# Il y a une différence significative (p < 0.05) entre le groupe A et le groupe C
| Traitement | Contrôle | |
|---|---|---|
| 10 ans | 1 | 0 |
| 10 ans | 1 | 0 |
| 20 ans | 1 | 0 |
| 20 ans | 1 | 0 |
| 30 ans | 0 | 1 |
| 30 ans | 0 | 1 |
| 40 ans | 0 | 1 |
| 40 ans | 0 | 1 |
| Traitement | Contrôle | |
|---|---|---|
| 10 ans | 1 | 0 |
| 10 ans | 0 | 1 |
| 20 ans | 1 | 0 |
| 20 ans | 0 | 1 |
| 30 ans | 1 | 0 |
| 30 ans | 0 | 1 |
| 40 ans | 1 | 0 |
| 40 ans | 0 | 1 |