Laurence-Olivier M. Foisy POL-2000 · séance 8 · jeu 22 oct

POL-2000 · Méthodologie quantitative

La régression linéaire multiple


Séance 8 · jeudi 22 octobre 2026

Université Laval Département de science politique
Faculté des sciences sociales
Automne 2026
Où on en est POL-2000 · séance 8 · jeu 22 oct
lecturevous êtes ici13 sept210 sept317 sept424 sept51 oct68 oct715 oct822 oct95 nov1012 nov1119 nov1226 nov133 déc1410 déc1 · Concepts de base2 · Régression3 · Inférence causale
08 jeudi 22 octobre · partie 2 · Régression

La régression linéaire multiple

Plusieurs variables explicatives à la fois.

Travail de mi-session à remettre mercredi 28 octobre.

YX₁X₂X₃
Aujourd’hui POL-2000 · séance 8 · jeu 22 oct

Aujourd’hui

1 Zotero
2 Ajouter des variables à la régression
3 Pratique dans R
Zotero POL-2000 · séance 8 · jeu 22 oct

Zotero


Pourquoi citer, Google Scholar, puis Zotero.

Zotero POL-2000 · séance 8 · jeu 22 oct

« Stand on the shoulders of giants »

Pourquoi Google Scholar écrit-il ça sur sa page d’accueil ?

Zotero · pourquoi citer POL-2000 · séance 8 · jeu 22 oct

Pourquoi citer ?

Crédibilité scientifiqueMise en contexteReproductibilitéPropriété intellectuellePrévention du plagiatRéduction des biaisSavoir cumulatif
Zotero · Google Scholar POL-2000 · séance 8 · jeu 22 oct

Deux trucs de Google Scholar

Une seule fois ☰ Menu→Paramètres→Liens vers des bibliothèques→Université Laval, Bibliothèque – Obtenir@ULaval→Enregistrer

Winning, Losing and Satisfaction with Democracy

A Blais, F Gélineau · Political Studies, 2007

Obtenir@ULaval

☆ Enregistrer❝ CiterCité par …Autres articles

Obtenir@ULaval : le texte intégral, avec votre IDUL

Cité par : qui l’a lu et cité depuis. La littérature, vers l’avant.

schéma d’un résultat de Google Scholar

Zotero POL-2000 · séance 8 · jeu 22 oct

Zotero : du DOI à la bibliographie

  1. 1 Trouver le DOI
  2. Zotero 2 L’ajouter à Zotero
  3. Word 3 Citer dans Word
  4. Word 4 Produire la bibliographie

Political Studies · 2007 · vol. 55, 425-441

Winning, Losing and Satisfaction with Democracy

André Blais et François Gélineau

doi : 10.1111/j.1467-9248.2007.00659.x

Zotero
Identifiant 10.1111/j.1467-9248.2007.00659.x
TitreCréateurAnnée
Winning, Losing and Satisfaction with DemocracyBlais et Gélineau2007
Word travail.docx
AccueilInsertion Zotero
Ajouter/Modifier
une citation
Ajouter/Modifier
la bibliographie
APA

Les perdants sont moins satisfaits de la démocratie (Blais et Gélineau, 2007).

Références

Blais, A. et Gélineau, F. (2007). Winning, losing and satisfaction with democracy. Political Studies, 55(2), 425-441. https://doi.org/10.1111/j.1467-9248.2007.00659.x

schéma · zotero.org, gratuit, en français

La semaine passée POL-2000 · séance 8 · jeu 22 oct

Rappel : la régression multiple de la séance 7

Intérêt pour la politique
(0 à 1)
Modèle 1Modèle 2
Scolarité0,203***0,187***
(0 à 1)(0,032)(0,032)
Âge0,349***
(0 = 18 ans, 1 = 96 ans)(0,034)
Femme−0,091***
(0 = non, 1 = oui)(0,015)
Revenu0,085**
(8 tranches, de 0 à 1)(0,031)
Québec0,002
(0 = non, 1 = oui)(0,018)
Constante0,540***0,415***
(0,021)(0,030)
N981877
R²0,040,18
*** p < 0,001 · ** p < 0,01 · * p < 0,05
Erreurs types entre parenthèses.

Ajouter des variables POL-2000 · séance 8 · jeu 22 oct

Deux chemins entre scolarité et intérêt

?à âge égalscolaritéintérêtâgemoins de scolaritéplus d’intérêtcontrôléschéma · aucune donnée
Ajouter des variables · quels contrôles POL-2000 · séance 8 · jeu 22 oct

Deux règles pour choisir les contrôles

1

Ne pas contrôler un descendant de X

une variable que X cause

scolaritéXintérêtYlecture desnouvellesune partie del’effet perdue

ne pas la contrôler

2

Bloquer les chemins par la porte arrière

les causes de la cause

scolaritéXintérêtYâge

contrôler l’âge

Arel-Bundock (2021), chapitre 6 · schéma, aucune donnée

Ajouter des variables POL-2000 · séance 8 · jeu 22 oct

Sortir une variable du bruit

le modèlele bruitle revenula région…intérêtscolaritéle sexel’âgeschéma
Ajouter des variables · le sexe POL-2000 · séance 8 · jeu 22 oct

Le sexe entre dans le modèle

00,51intérêt pour la politiqueSecondairenon terminéSecondaireCollégialUniversité1er cycleMaîtrisedoctorattout le mondehommesfemmeshommesfemmesécart : 0,10● femmes● hommespente+0,19la mêmepour les deuxNotre sondage de la séance 7 · 877 personnes · gros points : intérêt moyen par niveau et par sexe
Ajouter des variables · l’âge POL-2000 · séance 8 · jeu 22 oct

L’âge entre dans le modèle

01intérêt pour la politiqueSecondairenon terminéSecondaireCollégialUniversité1er cycleMaîtrisedoctorat50 ans80 anspente +0,22pente +0,22pente +0,22ordonnéeà l’origine0,550,40scolarité seule18 anspente+0,19+0,22avec l’âgela même à tout âgeNotre sondage de la séance 7 · les mêmes 877 personnes
Ajouter des variables · à âge égal POL-2000 · séance 8 · jeu 22 oct

La part propre de la scolarité

intérêtscolaritéâgevarie d’unepersonne à l’autrela part communela régression simpleà quil’attribuer ?mis de côtépartagé avec l’âgeà âge égalle coefficientde la scolaritéUn schéma, pas des données · d’après Arel-Bundock (2021), figure 5.5
Ajouter des variables POL-2000 · séance 8 · jeu 22 oct

Pourquoi ajouter des variables ?

1 Moins de biais on sort une variable de ε
2 Plus de précision des erreurs de prédiction plus petites
Ajouter des variables POL-2000 · séance 8 · jeu 22 oct

Une variable à la fois

YXles contrôlescoefficient de la scolarité0,100,150,200,250,30intérêt~scolarité0,194intérêt~scolarité+âge0,217intérêt~scolarité+âge+femme0,211intérêt~scolarité+âge+femme+revenu0,187intérêt~scolarité+âge+femme+revenu+Québec0,187Notre sondage de la séance 7 · les mêmes 877 personnes dans les cinq modèles · trait : intervalle de confiance à 95 %
Ajouter des variables · lire POL-2000 · séance 8 · jeu 22 oct

On n’interprète pas les variables de contrôle

Intérêt pour la politique
(1)
Constante0,415***
(0,030)
Scolarité (0 à 1)0,187***
(0,032)
Âge (0 à 1)0,349***
(0,034)
Femme−0,091***
(0,015)
Revenu (0 à 1)0,085**
(0,031)
Québec0,002
(0,018)
Num.Obs.877
R20,182

+ p < 0,1, * p < 0,05, ** p < 0,01, *** p < 0,001

Notre sondage de la séance 7

La variable d’intérêt

Scolarité : on l’interprète.

Âge, femme, revenu, Québec

Des contrôles : on ne les interprète pas.

Ils sont là pour que la comparaison soit juste pour la scolarité.

tenue égalescolaritéâgeintérêt0,349

0,349 : l’âge, à scolarité égale. Pas l’effet de l’âge.

schéma · Arel-Bundock (2021), chap. 6 · « le piège du tableau 2 », Westreich et Greenland (2013)

Ajouter des variables · les limites POL-2000 · séance 8 · jeu 22 oct

Ce que contrôler ne règle pas

intérêt des parentspas dans la basescolaritéintérêt

Une cause non mesurée

On ne contrôle que ce qu’on a mesuré.

biais par variable omiseséance 13

milieu socialune seule questionscolaritéintérêt

Un contrôle mal mesuré

Le chemin ne se ferme qu’en partie.

erreur de mesureséance 13

?scolaritéintérêt

Le sens de la causalité

Ajouter des variables ne dit pas qui cause qui.

simultanéitéséance 13

?nouvellesscolaritéintérêt

Cause commune ou conséquence

Le tableau ne montre pas le sens de cette flèche.

biais post-traitementséance 11

Schémas · vocabulaire d’Arel-Bundock (2021)

Pratique dans R POL-2000 · séance 8 · jeu 22 oct
  1. 1Question
  2. 2Littérature
  3. 3Hypothèse
  4. 4Données
  5. 5Pertinence
  6. 6Contribution
  7. 7Vous

Blais et Gélineau (2007)

Blais et Gélineau (2007), page 425
Blais et Gélineau (2007), page 426
Blais et Gélineau (2007), page 427
Blais et Gélineau (2007), page 428
L’article

Blais, A., & Gélineau, F. (2007). Winning, losing and satisfaction with democracy. Political Studies, 55(2), 425–441. https://doi.org/10.1111/j.1467-9248.2007.00659.x

Blais et Gélineau (2007), Political Studies, 55(2), p. 425

Leur TP 1 · étape 7 POL-2000 · séance 8 · jeu 22 oct
  1. 1Question
  2. 2Littérature
  3. 3Hypothèse
  4. 4Données
  5. 5Pertinence
  6. 6Contribution
  7. 7Vous

Pourquoi ce sujet ?

Blais et Gélineau (2007) · tableau 1/2 POL-2000 · séance 8 · jeu 22 oct

Gagner une élection rend-il plus satisfait de la démocratie ?

Le tableau 1 de l’article, en anglais : la satisfaction moyenne avant l’élection, après l’élection, la différence et le nombre de personnes, pour cinq groupes. Gagnants partout : 0,645 avant, 0,738 après. Perdants partout : 0,526 avant, 0,579 après. N’a pas voté : 0,493 avant, 0,577 après. Tous les groupes augmentent. ▲ déjà plus satisfaits ▲ les cinq groupes montent après l’élection
son vote au paysgouvernement libéral dans sa circonscriptionson candidat
libéral gagné gagné
libéral gagné perdu
autre parti perdu gagné
autre parti perdu perdu
abstention
Blais et Gélineau (2007), tableau 1, p. 431 · CES 1997 · satisfaction de 0 (pas du tout) à 1 (très satisfait)
Blais et Gélineau (2007) · tableau 2/2 POL-2000 · séance 8 · jeu 22 oct
Le tableau 2 de l’article, en anglais : deux modèles, une vingtaine de variables et leurs coefficients. Dans le modèle 2, perdre au pays et dans sa circonscription : −0,447, trois étoiles. 1 922 répondants. sans gagner / perdre avec gagner / perdre leur X · comparé à « gagner partout » le reste : des contrôles, on ne les lit pas satisfaction avant l’élection : contrôlée
Perdre au pays et dans sa circonscription moins satisfait que gagner partout, à satisfaction égale avant l’élection
1 922 répondants la légende des étoiles
Blais et Gélineau (2007), tableau 2, p. 432 · CES 1997 probit ordonné : on lit le signe et les étoiles
Blais et Gélineau (2007) POL-2000 · séance 8 · jeu 22 oct

Leur conclusion

À satisfaction égale avant l’élection, les gagnants deviennent plus satisfaits que les perdants.

Blais et Gélineau, en 2025 POL-2000 · séance 8 · jeu 22 oct

Deux façons de contribuer

1 Vérifier

1997 → 2025 : leur résultat tient-il encore ?

2 Faire mieux

Répondre à une faiblesse qu’ils reconnaissent eux-mêmes

Votre TP 1, étape 6 : la contribution. Les deux comptent.

Blais et Gélineau, en 2025 POL-2000 · séance 8 · jeu 22 oct

Notre question

Après l’élection du 28 avril 2025, les gagnants sont-ils plus satisfaits de la démocratie que les perdants ?

Hypothèse : oui, à satisfaction égale avant l’élection.

Hypothèse nulle : aucune différence.

Blais et Gélineau, en 2025 · faire mieux POL-2000 · séance 8 · jeu 22 oct

Ils y avaient pensé

La note 1 de l’article, en anglais : l’élection précédente pourrait influencer la satisfaction; leur modèle contrôle déjà la satisfaction avant l’élection, qui capte cette influence; et le souvenir du vote passé est peu fiable (Himmelweit et al., 1978). 1 2
Blais et Gélineau (2007), Political Studies, 55(2), p. 439, note 1
L’idée

L’élection d’avant pourrait compter : perdre deux fois de suite rend plus critique.

1 Leur raison

La satisfaction avant l’élection la « capte » déjà.

En 2025, on peut le tester.

2 Leur raison

Le souvenir du vote passé est douteux.

Vrai aussi en 2025.

Blais et Gélineau, en 2025 · trois modèles POL-2000 · séance 8 · jeu 22 oct

Trois modèles

Modèle 1 L’écart brut
lm(apres ~ gagnant)

Les gagnants sont-ils plus satisfaits après l’élection ?

Modèle 2 Leur modèle vérifier
lm(apres ~ gagnant + avant)

… à satisfaction égale avant l’élection

Modèle 3 Le nôtre faire mieux
lm(apres ~ gagnant + avant + gagnant_2021)

… et à vote de 2021 égal (leur note 1)

Y = apres, la satisfaction après l’élection · X = gagnant

Blais et Gélineau, en 2025 · trois modèles POL-2000 · séance 8 · jeu 22 oct

Du modèle 1 au modèle 3

satisfactionavantgagneren 2021gagneren 2025XsatisfactionaprèsY
Modèle 1 · l’écart brut lm(apres ~ gagnant)

0,266

coefficient de gagnant

Tout l’écart passe pour l’effet de gagner.

Blais et Gélineau, en 2025 · le plan POL-2000 · séance 8 · jeu 22 oct

Planifions notre code

seance8.R
# 1. La régression qu'on veut, au bout du compte
#    lm(apres ~ gagnant + avant + gagnant_2021, data = df_clean)
# 2. Charger les données
# 3. Créer df_clean
# 4. Quelles variables ? Comment les nettoyer ?
# 5. Nettoyer chacune
# 6. Faire chaque modèle de régression
# 7. Interpréter les résultats
# 8. Créer le tableau
# 9. Sortir le tableau (Word)
# 10. Sauvegarder df_clean

D’abord les commentaires. Le code vient ensuite, sous chacun.

Blais et Gélineau, en 2025 · regarder POL-2000 · séance 8 · jeu 22 oct

1997 et 2025

1997avantaprès0,650,740,530,580,490,582025avantaprès0,710,75 gagnants0,510,48 perdants0,540,52 abstention1997 : Blais et Gélineau (2007), tableau 1 · 2025 : CES, mêmes personnes avant et après · satisfaction de 0 à 1
Blais et Gélineau, en 2025 · lire POL-2000 · séance 8 · jeu 22 oct

Lire le tableau : le coefficient de Gagnant

Le tableau de modelsummary : Gagnant seul, 0,266 trois étoiles. À satisfaction égale avant, Gagnant 0,144 trois étoiles, satisfaction avant l’élection 0,617 trois étoiles. 11 796 et 11 632 observations.
CES 2025 · Y = satisfaction envers la démocratie après l’élection (0 à 1)
Blais et Gélineau, en 2025 · faire mieux POL-2000 · séance 8 · jeu 22 oct

Vérifié. Maintenant, faire mieux

1 ✓ Vérifier

1997 → 2025 : leur résultat tient-il encore ?

2 Faire mieux

Répondre à une faiblesse qu’ils reconnaissent eux-mêmes

Votre TP 1, étape 6 : la contribution. Les deux comptent.

Blais et Gélineau, en 2025 · faire mieux POL-2000 · séance 8 · jeu 22 oct

Lire le tableau : Gagnant, encore

Le tableau de modelsummary : leur modèle, Gagnant 0,144 trois étoiles; avec gagnant en 2021, Gagnant 0,122 trois étoiles. 11 632 et 10 046 observations.
CES 2025 · Y = satisfaction envers la démocratie après l’élection (0 à 1)
Avant le 5 novembre POL-2000 · séance 8 · jeu 22 oct

Trois choses

20 % Mi-session à remettre mercredi 28 octobre, 23h59
5 % Datacamp · 1re partie à remettre dimanche 25 octobre, 23h59
Datacamp Datacamp Introduction to Data Visualization with ggplot2 · Geometries · Themes
Avant le 5 novembre POL-2000 · séance 8 · jeu 22 oct

Jeudi 5 novembre


De la question au tableau de régression.

Laurence-Olivier M. Foisy POL-2000 · séance 8 · jeu 22 oct

Merci.


Université Laval Département de science politique
Faculté des sciences sociales
POL-2000 · Automne 2026
Annexe POL-2000 · séance 8 · jeu 22 oct

Annexe : tout le code


Blais et Gélineau en 2025, étape par étape. À refaire chez vous, ligne par ligne.

Annexe · code POL-2000 · séance 8 · jeu 22 oct

Avant de commencer, dans Positron

Dans votre projet Positron :

seance8.R
# un nouveau fichier : seance8.R
install.packages(c("modelsummary", "pandoc"))   # une seule fois

ces2025.rds doit être dans le dossier du projet (séance 2).

Annexe · charger POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux

Charger, et préparer df_clean

> library(dplyr)
> library(haven)

haven : pour lire les codes de la CES

> df_raw <- readRDS("ces2025.rds")

ces2025.rds, sauvegardé à la séance 2

> nrow(df_raw)
[1] 20180

vous devriez voir 20 180

> df_clean <- data.frame(id = 1:nrow(df_raw))

df_raw ne change jamais

> ▍
Annexe · Y POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux

Y : satisfait de la démocratie, après l’élection ?

> table(as_factor(df_raw$pes25_dem_sat))
                   1. Very satisfied                  2. Fairly satisfied 
                                2671                                 6847 
               3. Not very satisfied              4. Not satisfied at all 
                                2619                                 1454 
5. Don't know / Prefer not to answer 
                                 484 

pes25 : le sondage après l’élection, aux mêmes personnes

> ▍
Annexe · Y POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux

Y : de 0 (pas du tout) à 1 (très)

> df_clean$apres <- case_when(
  df_raw$pes25_dem_sat == 1 ~ 1,      # très satisfait
  df_raw$pes25_dem_sat == 2 ~ 0.67,   # plutôt satisfait
  df_raw$pes25_dem_sat == 3 ~ 0.33,   # peu satisfait
  df_raw$pes25_dem_sat == 4 ~ 0       # pas du tout satisfait
)

la recette de la séance 4

> table(df_clean$apres, useNA = "ifany")
   0 0.33 0.67    1 <NA> 
1454 2619 6847 2671 6589 

NA : pas de réponse après l’élection, ou « ne sait pas »

> ▍
Annexe · X POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux

X : pour qui avez-vous voté ?

> table(as_factor(df_raw$pes25_votechoice2025))
                    1. Liberal Party                2. Conservative Party 
                                5773                                 4006 
                              3. NDP                    4. Bloc Québécois 
                                 960                                  907 
                      5. Green Party                    6. People's Party 
                                 218                                  101 
          7. Another party (specify)                 8. I spoiled my vote 
                                  43                                   39 
9. Don't know / Prefer not to answer 
                                 519 

les libéraux ont formé le gouvernement

> ▍
Annexe · X POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux

X : gagnant (1) ou perdant (0)

> df_clean$gagnant <- case_when(
  df_raw$pes25_votechoice2025 == 1 ~ 1,          # les libéraux ont gagné
  df_raw$pes25_votechoice2025 %in% 2:7 ~ 0       # un autre parti
  # 8 (vote annulé), 9 (ne sait pas) : aucune ligne, donc NA
)
> table(df_clean$gagnant, useNA = "ifany")
   0    1 <NA> 
6235 5773 8172 

NA : n’a pas voté, vote annulé, ne sait pas

> ▍
Annexe · contrôle POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux

Le contrôle : la même question, avant

> df_clean$avant <- case_when(
  df_raw$cps25_demsat == 1 ~ 1,
  df_raw$cps25_demsat == 2 ~ 0.67,
  df_raw$cps25_demsat == 3 ~ 0.33,
  df_raw$cps25_demsat == 4 ~ 0
)

cps25 : la même question, pendant la campagne

> table(df_clean$avant, useNA = "ifany")
    0  0.33  0.67     1  <NA> 
 1594  4313 10576  2971   726 
> ▍
Annexe · regarder POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux

Avant, après : leur tableau 1, en 2025

> df_clean |>
  filter(!is.na(gagnant), !is.na(apres), !is.na(avant)) |>
  group_by(gagnant) |>
  summarise(avant = mean(avant), apres = mean(apres), n = n())
# A tibble: 2 × 4
  gagnant avant apres     n
    <dbl> <dbl> <dbl> <int>
1       0 0.513 0.481  5998
2       1 0.709 0.746  5634

le tableau 1 de l’article, en 2025

> ▍
Annexe · modéliser POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux

Deux modèles : seul, puis à satisfaction égale avant

> modele1 <- lm(apres ~ gagnant, data = df_clean)
> modele2 <- lm(apres ~ gagnant + avant, data = df_clean)

à satisfaction égale avant l’élection

> nobs(modele1)
[1] 11796

vous devriez voir 11 796

> nobs(modele2)
[1] 11632
> ▍
Annexe · tableau POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux
library(modelsummary)
options(OutDec = ",")
noms <- c("(Intercept)" = "Constante", "gagnant" = "Gagnant",
  "avant" = "Satisfaction avant l'élection")
modeles <- list("Gagnant seul" = modele1, "À satisfaction égale avant" = modele2)
modelsummary(modeles, stars = TRUE, coef_rename = noms,
  gof_map = c("nobs", "r.squared"))

deux modèles = deux colonnes

Le tableau de modelsummary : le modèle « gagnant seul » et le modèle à satisfaction égale avant l’élection, côte à côte, avec Num.Obs. et R2.
Annexe · Word POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux

Le même tableau, dans Word

seance8.R
modelsummary(modeles, stars = TRUE, coef_rename = noms,
  gof_map = c("nobs", "r.squared"), output = "gagnants2025.docx")

gagnants2025.docx apparaît dans le dossier du projet. Copiez-le dans votre travail.

Si R se plaint de pandoc : pandoc::pandoc_install(), une seule fois.

seance8.R
# 10. Sauvegarder df_clean, pour ne pas tout refaire
saveRDS(df_clean, "df_clean.rds")
Annexe · faire mieux POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux

Pour qui avez-vous voté en 2021 ?

> table(as_factor(df_raw$cps25_vote_2021))
                   1. Liberal Party               2. Conservative Party 
                               6144                                4247 
                             3. NDP                   4. Bloc Québécois 
                               2408                                1317 
                     5. Green Party   6. Another party (please specify) 
                                519                                 268 
7. Don't know/ Prefer not to answer 
                               1000 

cps25 : demandé pendant la campagne, avant le résultat de 2025. Les libéraux avaient aussi gagné en 2021

> ▍
Annexe · faire mieux POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux

gagnant_2021 : gagnant (1) ou perdant (0) en 2021

> df_clean$gagnant_2021 <- case_when(
  df_raw$cps25_vote_2021 == 1 ~ 1,          # les libéraux avaient gagné en 2021
  df_raw$cps25_vote_2021 %in% 2:6 ~ 0       # un autre parti
  # 7 (ne sait pas) ou pas voté en 2021 : NA
)
> table(df_clean$gagnant_2021, useNA = "ifany")
   0    1 <NA> 
8759 6144 5277 

NA : n’a pas voté en 2021, n’avait pas l’âge, ne sait pas

> ▍
Annexe · faire mieux POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux

Leur modèle, plus le vote de 2021

> modele3 <- lm(apres ~ gagnant + avant + gagnant_2021, data = df_clean)

une seule variable de plus

> nobs(modele3)
[1] 10046

vous devriez voir 10 046 : moins de monde

> ▍
Annexe · faire mieux POL-2000 · séance 8 · jeu 22 oct
  1. 1Charger
  2. 2Y : après
  3. 3X : gagnant
  4. 4Contrôle : avant
  5. 5Modéliser
  6. 6Tableau
  7. 7Faire mieux
noms <- c(noms, "gagnant_2021" = "Gagnant en 2021")
modeles <- list("Leur modèle" = modele2, "+ gagnant en 2021" = modele3)
modelsummary(modeles, stars = TRUE, coef_rename = noms,
  gof_map = c("nobs", "r.squared"))

leur modèle, puis le nôtre

Le tableau de modelsummary : leur modèle et le même avec le vote de 2021, côte à côte, avec Num.Obs. et R2.
Annexe · X mesuré avant le résultat POL-2000 · séance 8 · jeu 22 oct

Et si X était mesuré avant le résultat ?

> table(as_factor(df_raw$cps25_votechoice))
                   1. Liberal Party               2. Conservative Party 
                               6528                                4644 
                             3. NDP                   4. Bloc Québécois 
                               1258                                1011 
                     5. Green Party   6. Another party (please specify) 
                                317                                  82 
7. Don't know/ Prefer not to answer                   8. People's Party 
                               1887                                 182 

cps25 : pendant la campagne. Attention, d’autres codes : 7 = ne sait pas, 8 = PPC

> ▍
Annexe · X mesuré avant le résultat POL-2000 · séance 8 · jeu 22 oct

gagnant_campagne : l’intention de vote

> df_clean$gagnant_campagne <- case_when(
  df_raw$cps25_votechoice == 1 ~ 1,             # pensait voter libéral
  df_raw$cps25_votechoice %in% c(2:6, 8) ~ 0    # un autre parti (8 : le PPC)
  # 7 (ne sait pas) : NA
)
> modele4 <- lm(apres ~ gagnant_campagne + avant, data = df_clean)

à la place de gagnant : une seule chose change

> round(coef(modele4), 3)
     (Intercept) gagnant_campagne            avant 
           0,167            0,137            0,618 

gagnant_campagne : presque la même chose que gagnant

> ▍
1 / 55