Skip to content

Présidentielles - format de données #35

@rlouf

Description

@rlouf

Ce document décrit le format de données utilisé pour enregistrer les résulats des élections présidentielles ainsi que les sondages qui les concernent.

Résultats d'élections

Le format de données ne devrait pas être sujet à controverse. Le fichier est, au niveau 0 de la hiérarchie, une map qui lie une année à la structure suivante:

"premier_tour" : {
    "source": str  # lien vers la source de la donnée
    "inscrits": int,
    "votants": int,
    "exprimes": int,
    "resultats": Dict[str, int]
},
"second_tour": {}  # idem premier_tour
  • Comment prendre en compte les différents échelons auxquel les résultats sont donnés?

Sondages d'intentions de vote

On remplit d'abord pour chaque sondage quelques informations de base:

  • nom court AAAAMMJJ_<nom de l'institut>
  • nom de l'institut institut
  • date de debut de l'enquete date_debut
  • date de fin de l'enquete date_fin
  • date a laquelle on rentre les resultats du sondage
  • source utilisée pour remplir les donées (lien vers la notice habituellement) source
  • la méthode utilisée pour réaliser le sondage methode
  • nombre de personnes interrogees interroges

Puis les résultats

  • Les intentions pour le premier tour premier_tour
  • Les intentions pour le second tour second_tour
  • Les reports premier tour/second tour reports
  • L'estimation de la participation participation

La participation

[A COMPLETER]

Les instituts estiment et communiquent la participation de deux manière différentes:

  • Un chiffre brut
  • Un histogramme qui donne la % de gens qui pensent aller voter avec une certitude de 10, 9,... 1.

Intentions pour le premier et le second tour

Echantillon, base, etc

Interrogés

Toutes les notices donnent le nombre d'interrogés qui sont inscrits sur les liste électorales. Pas besoin de donner le nombre de personnes interrogées car cela n'apporte aucune information. Ici, interroges voudra dire interrogé et inscrit sur les listes électorales.

Base

La plupart du temps les résultats ne sont pas communiqués sur la base des inscrits mais sur un ensemble plus restreint. On a recensé les bases suivantes:

  • Inscrits, que l'on notera I
  • Inscrits sûrs de voter, que l'on notera SV
  • Inscrits sûrs de voter et sûrs de leur choix, que l'on notera SVC

Parmi les gens interrogés tout le monde n'exprime pas d'opinion. On note le nombre de personnes qui expriment une opinion intentions_exprimees. On note le pourcentage de personnes ne s'étant pas prononcées nspp.

Gérer plusieurs hypothèses

Options pour les résultats avec plusieurs hypothèses. Il est pratique de donner un nom à chaque hypothèse pour pouvoir les retrouver plus facilement par la suite. Les résultats correspond à une hypothèse ont donc la structure suivante:

premier_tour: {
    "machin": {
        hypothese: "Machin candidat du centre-centre-centre droit",
        base: str,
        nspp: float
        intentions_exprimees: int
        intentions: Dict[str, float]
    }
}

Mais ce format a des difficultés dès lors qu'il n'y a plus qu'un scénario testé. Il vaut donc peut-être mieux utiliser une liste à la place. Lorsqu'il n'y a qu'un scénario, le champ hypothese est null:

premier_tour: [
    {
        hypothese: null,
        base: str,
        nspp: float
        intentions_exprimees: int
        intentions: Dict[str, float]
    }
]

La sûreté du vote

Il est primordial de noter la sûreté du vote car c'est un facteur important dans l'incertitude du modèle. Il y a plusieurs cas de figure:

  1. La sûreté est donnée pour chaque candidat;
  2. La sûreté moyenne est donnée;
  3. La sûreté n'est donnée que pour certains candidats.

On suivra le format suivant:

certitude: {
    ensemble: Optional[float],
    detail: Optional[Dict[str, float]]
}

Lorsque la certitude est donnée pour chaque candidat, detail est un dictionnaire candidat -> certitude. Si un candidat est absent il n'apparaît pas dans le dictionnaire. Si une certitude globale est donnée, elle va dans le champ ensemble. Si rien n'est donné, les deux champs sont null.

Reports du premier au second tour

Les reports de voix du premier au second tour sont une information importante pour le modèle. Pour éviter de répéter les noms des candidats on donnera à ce champ la structure suivante:

{
    "hypothese": Optional[str]
    "candidats_premier_tour": List[str]
    "candidats_second_tour": List[str]
    "reports": List[List[float]]
}

`

Les candidats

Il peut être utile de recenser tous les candidats et certaines informations à leur sujet (parti, nuance politiques). Pour éviter de multiples répétitions les informations sont enregistrées séparémment des sondages, à la fin du fichier:

{
    sondages: {}
    candidats: {}
}

Accessoirement, cela évite d'avoir à rentrer le nom des candidats en dur dans le script de validation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationsondage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions