cassionAnalyse de données

Retour à la leçonLeçon 7 sur 8Des graphiques qui ne peuvent pas dériver

Un écart d'un demi-point, remplissant la moitié du graphique

Le même diaporama que les téléchargements, rendu sous forme de page. Lancez le diaporama pour le présenter en plein écran — les flèches ou un clic avancent d'une diapositive, Échap quitte.

Diapositives · PDFDiapositives · PowerPoint

  1. Diapositive 1 / 24

    Ce que couvre cette leçon

    • Les deux mêmes nombres, quatre graphiques
    • La règle, et l'exception
    • Quand la troncature est le choix honnête
    • Cinq autres décisions d'axe qui changent la lecture
    • Le piège des données manquantes, qui est un problème d'axe
    • Rapportez-le en entier
    • La suite
    Notes du présentateur
    Les garçons sont présents à 88,77 % et les filles à 88,21 %. Sur un axe partant de zéro, cet écart occupe 0,6 % du graphique. Tronquez l'axe à 88-89 et il en occupe 55,7 %, un grossissement de cent fois, sans qu'aucun nombre cesse d'être juste.
  2. Diapositive 2 / 24

    Les deux mêmes nombres, quatre graphiques — En Python

    import matplotlib.pyplot as plt
    
    rates = {"Boys": 0.8877, "Girls": 0.8821}
    gap = (rates["Boys"] - rates["Girls"]) * 100
    
    for lo, hi in [(0, 100), (80, 95), (87.5, 89.5), (88, 89)]:
        share = gap / (hi - lo) * 100
        print(f"axis {lo}-{hi}: the gap fills {share:.1f}% of the chart height")
    Notes du présentateur
    Le cours de statistiques a établi que l'écart de présence entre garçons et filles vaut 0,56 point de pourcentage — significatif à p = 0,023 sur 68 267 pointages, et égal à environ un tiers de journée scolaire par enfant et par trimestre.
  3. Diapositive 3 / 24

    Les deux mêmes nombres, quatre graphiques — En R

    # Same data, four y-limits, four different stories.
  4. Diapositive 4 / 24

    Les deux mêmes nombres, quatre graphiques

    AxeL'écart occupeGrossissement
    0 à 1000,6 % du graphique×1
    80 à 953,7 %×7
    87,5 à 89,527,8 %×50
    88 à 8955,7 %×100
  5. Diapositive 5 / 24

    Les deux mêmes nombres, quatre graphiques

    • Chacun de ces graphiques est exact — Les barres sont au bon endroit, l'axe est étiqueté, les nombres sont justes
    • Tronquer l'axe d'un diagramme en barres est la façon la plus efficace d'induire en erreur avec des données justes — et…
    Notes du présentateur
    Chacun de ces graphiques est exact. Les barres sont au bon endroit, l'axe est étiqueté, les nombres sont justes. Le dernier montre une différence sur laquelle aucun programme n'agirait en train de remplir plus de la moitié de la zone de tracé. Tronquer l'axe d'un diagramme en barres est la façon la plus efficace d'induire en erreur avec des données justes, et cela se fait bien plus souvent par accident que par dessein.
  6. Diapositive 6 / 24

    La règle, et l'exception

    • L'axe des valeurs d'un diagramme en barres part de zéro. Toujours — Une barre encode sa quantité par une longueur, et…
    • L'axe d'un graphique en ligne n'y est pas tenu — Une ligne encode l'évolution par la pente, et le lecteur compare des…
    Notes du présentateur
    L'axe des valeurs d'un diagramme en barres part de zéro. Toujours. Une barre encode sa quantité par une longueur, et une longueur mesurée depuis une origine mobile n'est pas une quantité. Ce n'est pas une convention à exceptions ; c'est ce qui rend une barre lisible. L'axe d'un graphique en ligne n'y est pas tenu. Une ligne encode l'évolution par la pente, et le lecteur compare des points entre eux plutôt qu'à l'origine. Une série de températures partant de zéro degré est une ligne plate et un graphique gâché.
  7. Diapositive 7 / 24

    La règle, et l'exception — En Python

    fig, (a, b) = plt.subplots(1, 2, figsize=(9, 3))
    a.bar(rates.keys(), rates.values())         # must include zero
    a.set_ylim(0, 1)
    b.plot(months, completeness)                # need not include zero
    b.set_ylim(0.25, 1.0)
  8. Diapositive 8 / 24

    La règle, et l'exception — En R

    # geom_col() + expand_limits(y = 0). geom_line() + coord_cartesian(ylim = ...).
  9. Diapositive 9 / 24

    La règle, et l'exception

    • Et quand vous tronquez l'axe d'une ligne, dites-le sur l'axe — Une marque de rupture, ou une étiquette d'axe qui…
    Notes du présentateur
    Et quand vous tronquez l'axe d'une ligne, dites-le sur l'axe. Une marque de rupture, ou une étiquette d'axe qui commence visiblement au-dessus de zéro, ou une note. Le lecteur qui suppose zéro et se trompe a lu le graphique à l'envers.
  10. Diapositive 10 / 24

    Quand la troncature est le choix honnête

    Complétude mensuelle des rapports contre le plancher de 70 %. La complétude s'effondre à 28,9 % en août et remonte à 94,7 % en octobre, ce qui est une défaillance de notification et non un changement de l'épidémie.
    Complétude mensuelle des rapports contre le plancher de 70 %. La complétude s'effondre à 28,9 % en août et remonte à 94,7 % en octobre, ce qui est une défaillance de notification et non un changement de l'épidémie.
    Notes du présentateur
    La figure de complétude en est le cas, et il vaut la peine de préciser pourquoi.
  11. Diapositive 11 / 24

    Quand la troncature est le choix honnête — En Python

    values = [.921, .816, .737, .868, .842, .868, .816, .289, .447, .947, .763, .868]
    print(f"range {min(values):.1%} to {max(values):.1%}")
  12. Diapositive 12 / 24

    Quand la troncature est le choix honnête — En R

    range(values)
  13. Diapositive 13 / 24

    Quand la troncature est le choix honnête

    • La complétude va de 28,9 % à 94,7 % — une étendue de 65,8 points sur un axe de 100 points — Les données emploient les…
    • La règle à appliquer est : la troncature change-t-elle l'ampleur apparente de la variation ? — Ici, à peine, il n'y a…
    Notes du présentateur
    La complétude va de 28,9 % à 94,7 % — une étendue de 65,8 points sur un axe de 100 points. Les données emploient les deux tiers de la hauteur disponible, si bien qu'un axe partant de zéro ne gaspille presque rien et que la forme reste entièrement lisible. La règle à appliquer est : la troncature change-t-elle l'ampleur apparente de la variation ? Ici, à peine, il n'y a donc aucun argument pour elle. Là où une troncature grossirait un écart d'un demi-point jusqu'à la moitié d'un graphique, la réponse n'est pas de tronquer plus soigneusement — c'est qu'un diagramme en barres était la mauvaise marque et que le nombre a sa place dans une phrase.
  14. Diapositive 14 / 24

    Cinq autres décisions d'axe qui changent la lecture

    • Les axes inversés — Un taux où plus bas vaut mieux — mortalité, abandon, retard de croissance — tracé avec la pire…
    • Les échelles logarithmiques — Légitimes pour une courbe épidémique couvrant trois ordres de grandeur, et lues comme…
    • Les axes de pourcentage au-delà de 100 — Le taux brut de scolarisation atteint 109,2 % dans les données du cours…
    • Les axes temporels à espacement irrégulier — Douze points mensuels tracés à espacement régulier alors que deux mois…
    • Le rapport hauteur-largeur — La même ligne à hauteur double paraît deux fois plus pentue
    Notes du présentateur
    Les axes inversés. Un taux où plus bas vaut mieux — mortalité, abandon, retard de croissance — tracé avec la pire valeur en haut se lit comme un succès. Dites quelle direction est bonne dans l'étiquette d'axe : « Taux d'abandon (%), plus bas vaut mieux ». Les échelles logarithmiques. Légitimes pour une courbe épidémique couvrant trois ordres de grandeur, et lues comme linéaires par presque tout public non technique. Si vous en employez une, étiquetez-la et annotez un doublement. Les axes de pourcentage au-delà de 100. Le taux brut de scolarisation atteint 109,2 % dans les données du cours d'éducation, et un axe plafonné à 100 rogne la barre et cache le constat. Les axes temporels à espacement irrégulier. Douze points mensuels tracés à espacement régulier alors que deux mois manquent trace une droite à travers un trou. Tracez les dates, non la séquence. Le rapport hauteur-largeur. La même ligne à hauteur double paraît deux fois plus pentue. Il n'existe pas de choix neutre, choisissez-en donc un et employez-le pour chaque graphique du rapport, ce qui les rend au moins comparables entre eux.
  15. Diapositive 15 / 24

    Cinq autres décisions d'axe qui changent la lecture — En Python

    fig.set_size_inches(6.5, 4)      # every figure in the report, the same shape
  16. Diapositive 16 / 24

    Cinq autres décisions d'axe qui changent la lecture — En R

    # ggsave(width = 6.5, height = 4) as a project default.
  17. Diapositive 17 / 24

    Le piège des données manquantes, qui est un problème d'axe

    • Un mois sans rapports tracé comme zéro est une affirmation que rien ne s'est passé — Un mois sans rapports retiré…
    Notes du présentateur
    La figure de complétude existe à cause de cela et il vaut la peine de le dire directement. Un mois sans rapports tracé comme zéro est une affirmation que rien ne s'est passé. Un mois sans rapports retiré entièrement de la série est une affirmation que le temps ne s'est pas écoulé. Ni l'une ni l'autre n'est vraie, et le graphique honnête montre le trou.
  18. Diapositive 18 / 24

    Le piège des données manquantes, qui est un problème d'axe — En Python

    series = series.reindex(all_months)          # missing months become NaN
    ax.plot(series.index, series.values)          # matplotlib breaks the line at NaN
  19. Diapositive 19 / 24

    Le piège des données manquantes, qui est un problème d'axe — En R

    # Do not tidyr::replace_na(0). A gap is data about the reporting system.
  20. Diapositive 20 / 24

    Le piège des données manquantes, qui est un problème d'axe

    • Les 28,9 % d'août sont une défaillance de notification, non une défaillance épidémiologique — Le cours d'épidémiologie…
    Notes du présentateur
    Les 28,9 % d'août sont une défaillance de notification, non une défaillance épidémiologique. Le cours d'épidémiologie y a consacré une leçon, et le travail du graphique est de le faire ressembler à ce que c'est — un trou dans le dénominateur — plutôt qu'à une baisse des cas.
  21. Diapositive 21 / 24

    Rapportez-le en entier — Exemple

    Figure axis conventions
    
      Bar charts use zero-based value axes without exception. Where a difference
      is too small to be visible on a zero-based axis, it is reported as a
      sentence rather than as a chart.
    
      Line charts may use a truncated axis where the data range justifies it; the
      axis is labelled so the truncation is visible.
    
      Indicators where lower is better carry "lower is better" in the axis label.
    
      Months with no data are drawn as gaps, never as zero. Completeness is
      reported alongside any indicator whose denominator varies by month.
    
      All figures in this report are drawn at 6.5 by 4 inches, so vertical
      changes are comparable between charts.
  22. Diapositive 22 / 24

    Rapportez-le en entier

    • Le premier paragraphe vaut d'être adopté tel quel — « Rapportez-le comme une phrase plutôt que comme un graphique » est…
    Notes du présentateur
    Le premier paragraphe vaut d'être adopté tel quel. « Rapportez-le comme une phrase plutôt que comme un graphique » est la décision qui aurait empêché le graphique 88-à-89, et c'est une décision d'honnêteté plutôt que de conception.
  23. Diapositive 23 / 24

    La suite

    • Chaque règle de ce cours est une règle que quelqu'un doit se rappeler le jour où il fait le graphique.
    Notes du présentateur
    Chaque règle de ce cours est une règle que quelqu'un doit se rappeler le jour où il fait le graphique. La dernière leçon supprime le fait de s'en souvenir, en produisant la figure depuis le jeu de données — c'est ainsi que chaque graphique de cette plateforme est construit et la raison pour laquelle aucun ne peut dériver de la phrase qui l'accompagne.
  24. Diapositive 24 / 24

    La suite

    Lire la leçon complète, avec le code exécutable Retour à la leçon