cassionAnalyse de données

Retour à la leçonLeçon 3 sur 8L'adaptation est une séquence, non un score

Un ménage est classé par sa pire stratégie

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 / 25

    Ce que couvre cette leçon

    • Le module, et pourquoi ce n'est pas un indice de plus
    • Sans objet n'est pas non
    • Le district où la distinction a été perdue
    • Le module partiel
    • Pourquoi l'adaptation se mesure à part de la consommation
    • La suite
    Notes du présentateur
    Dix stratégies, trois phases de sévérité, et la règle est le maximum plutôt que la somme. 18,2 % de ces ménages ont employé une stratégie d'urgence, et la façon dont un district a traité « sans objet » rend ses prévalences fausses tout en laissant sa classification intacte.
  2. Diapositive 2 / 25

    Le module, et pourquoi ce n'est pas un indice de plus

    PhaseStratégiesCe qu'elles ont en commun
    StressVente de biens du ménage, épargne épuisée, emprunt, vente d'animaux au-delà de l'habitudeRéduisent la capacité à absorber un choc futur ; réversibles
    CriseVente d'actifs productifs, retrait des enfants de l'école, coupe des dépenses de santéRéduisent la productivité future ; difficiles à inverser
    UrgenceVente de la maison ou de la terre, mendicité, vente des dernières femelles reproductricesRéduisent la productivité future et sont quasi irréversibles
    Notes du présentateur
    Le module des stratégies d'adaptation aux moyens d'existence demande si un ménage a employé l'une de dix stratégies au cours des trente derniers jours. Chaque stratégie est classée à l'avance dans une phase de sévérité, avant toute collecte, et le ménage est ensuite classé par la stratégie la plus sévère qu'il a employée.
  3. Diapositive 3 / 25

    Le module, et pourquoi ce n'est pas un indice de plus

    • La classification est un maximum, non une somme, et non un décompte — Un ménage qui a vendu une fois ses dernières…
    Notes du présentateur
    La classification est un maximum, non une somme, et non un décompte. Un ménage qui a vendu une fois ses dernières reproductrices est plus mal en point qu'un ménage qui a emprunté quatre fois, et toute arithmétique qui additionne les deux dit le contraire.
  4. Diapositive 4 / 25

    Le module, et pourquoi ce n'est pas un indice de plus — En Python (suite)

    import pandas as pd
    
    coping = pd.read_csv("livelihood-coping-2024.v1.csv")
    
    PHASE = {
        "sold_household_assets": "stress",
        "spent_savings": "stress",
        "borrowed_money": "stress",
        "sold_more_animals_than_usual": "stress",
        "sold_productive_assets": "crisis",
        "withdrew_children_from_school": "crisis",
        "reduced_health_expenditure": "crisis",
        "sold_house_or_land": "emergency",
        "begged": "emergency",
        "sold_last_female_animals": "emergency",
    }
  5. Diapositive 5 / 25

    Le module, et pourquoi ce n'est pas un indice de plus — En Python (suite)

    RANK = {"none": 0, "stress": 1, "crisis": 2, "emergency": 3}
    
    used = coping[list(PHASE)].eq("yes")
    severity = pd.Series("none", index=coping.index)
    for strategy, phase in PHASE.items():
        higher = used[strategy] & (severity.map(RANK) < RANK[phase])
        severity[higher] = phase
    
    print((severity.value_counts(normalize=True) * 100).round(1))
  6. Diapositive 6 / 25

    Le module, et pourquoi ce n'est pas un indice de plus — En R

    library(dplyr)
    
    phase <- c(sold_household_assets = "stress", spent_savings = "stress",
               borrowed_money = "stress", sold_more_animals_than_usual = "stress",
               sold_productive_assets = "crisis",
               withdrew_children_from_school = "crisis",
               reduced_health_expenditure = "crisis",
               sold_house_or_land = "emergency", begged = "emergency",
               sold_last_female_animals = "emergency")
    rank <- c(none = 0, stress = 1, crisis = 2, emergency = 3)
  7. Diapositive 7 / 25

    Le module, et pourquoi ce n'est pas un indice de plus

    ClassificationMénagesPart
    Aucune33916,0 %
    Stress75435,5 %
    Crise64230,3 %
    Urgence38618,2 %
  8. Diapositive 8 / 25

    Le module, et pourquoi ce n'est pas un indice de plus

    • 48,5 % ont employé une stratégie de crise ou d'urgence — Ce seul chiffre est ce que le tableau de preuves IPC retient…
    Notes du présentateur
    48,5 % ont employé une stratégie de crise ou d'urgence. Ce seul chiffre est ce que le tableau de preuves IPC retient de ce module, et c'est une image très différente des 7,3 % à consommation alimentaire pauvre.
  9. Diapositive 9 / 25

    Sans objet n'est pas non — En Python

    answers = coping["sold_last_female_animals"].value_counts()
    print(answers)
    
    applicable = coping["sold_last_female_animals"].isin(["yes", "no"])
    print(f"prevalence among applicable: "
          f"{coping.loc[applicable, 'sold_last_female_animals'].eq('yes').mean():.1%}")
    print(f"prevalence if n/a counted as no: "
          f"{coping['sold_last_female_animals'].eq('yes').mean():.1%}")
    Notes du présentateur
    Un ménage sans animaux ne peut pas vendre sa dernière femelle reproductrice. Le module l'enregistre comme not-applicable, et c'est une troisième réponse et non une variante de non.
  10. Diapositive 10 / 25

    Sans objet n'est pas non — En R

    coping |> count(sold_last_female_animals)
    
    coping |>
      filter(sold_last_female_animals %in% c("yes", "no")) |>
      summarise(prevalence = mean(sold_last_female_animals == "yes"), n = n())
  11. Diapositive 11 / 25

    Sans objet n'est pas non

    StratégieParmi les ménages concernésSi « sans objet » compté comme non
    Vente d'animaux au-delà de l'habitude37,4 %27,5 %
    Vente d'actifs productifs19,8 %17,3 %
    Retrait des enfants de l'école19,7 %16,5 %
    Vente des dernières femelles8,6 %5,8 %
  12. Diapositive 12 / 25

    Sans objet n'est pas non

    • Dix points d'écart sur la première ligne — Le dénominateur d'une prévalence par stratégie est l'ensemble des ménages…
    • La classification au niveau du ménage y survit et la prévalence par stratégie non — car un maximum sur des valeurs…
    Notes du présentateur
    Dix points d'écart sur la première ligne. Le dénominateur d'une prévalence par stratégie est l'ensemble des ménages auxquels la stratégie est ouverte, et compter les autres comme non-utilisateurs sous-estime chacune d'elles. La classification au niveau du ménage y survit et la prévalence par stratégie non, car un maximum sur des valeurs yes ne se soucie pas de savoir si les autres valent no ou not-applicable. Cette asymétrie mérite d'être connue : c'est pourquoi un même fichier peut porter une classification juste et un tableau de prévalences faux sur la même page.
  13. Diapositive 13 / 25

    Le district où la distinction a été perdue — En Python

    by_district = coping.groupby("district")["sold_last_female_animals"].agg(
        yes=lambda s: (s == "yes").sum(),
        applicable=lambda s: s.isin(["yes", "no"]).sum(),
        not_applicable=lambda s: (s == "not-applicable").sum(),
    )
    by_district["correct"] = by_district["yes"] / by_district["applicable"]
    by_district["naive"] = by_district["yes"] / coping.groupby("district").size()
    print((by_district[["correct", "naive"]] * 100).round(1))
  14. Diapositive 14 / 25

    Le district où la distinction a été perdue — En R

    coping |>
      summarise(yes = sum(sold_last_female_animals == "yes"),
                applicable = sum(sold_last_female_animals %in% c("yes", "no")),
                n = n(), .by = district) |>
      mutate(correct = yes / applicable, naive = yes / n)
  15. Diapositive 15 / 25

    Le district où la distinction a été perdue

    DistrictBon dénominateurTous les ménages
    Nord-Ouest12,3 %6,8 %
    Artibonite9,7 %5,3 %
    Sud7,5 %4,5 %
    Centre6,5 %6,4 %
  16. Diapositive 16 / 25

    Le district où la distinction a été perdue — En Python

    print(coping.groupby("district")[list(PHASE)]
          .apply(lambda block: (block == "not-applicable").sum().sum()))
    Notes du présentateur
    Les deux colonnes de Centre sont presque identiques, celles de tous les autres districts non. La raison est dans les données brutes : Centre n'a aucune cellule not-applicable, parce que ses enquêteurs les ont toutes enregistrées comme no.
  17. Diapositive 17 / 25

    Le district où la distinction a été perdue — En R

    coping |> summarise(across(all_of(names(phase)),
                        ~ sum(.x == "not-applicable")), .by = district)
  18. Diapositive 18 / 25

    Le district où la distinction a été perdue

    • Sur le bon dénominateur, Nord-Ouest vaut presque le double de Centre. Sur le mauvais, les deux sont identiques — Une…
    Notes du présentateur
    Sur le bon dénominateur, Nord-Ouest vaut presque le double de Centre. Sur le mauvais, les deux sont identiques. Une comparaison de districts bâtie sur la colonne naïve conclurait que la vente de détresse du bétail est uniforme dans la zone de réponse, et lirait l'habitude de saisie d'une équipe.
  19. Diapositive 19 / 25

    Le module partiel — En Python

    emergency = [s for s, phase in PHASE.items() if phase == "emergency"]
    partial = coping[emergency].eq("").all(axis=1) | coping[emergency].isna().all(axis=1)
    print(f"{partial.sum()} households cannot be classified above crisis")
    Notes du présentateur
    Cinquante-huit ménages ont les trois questions d'urgence vides.
  20. Diapositive 20 / 25

    Le module partiel — En R

    coping |> filter(if_all(c(sold_house_or_land, begged, sold_last_female_animals),
                            ~ is.na(.x))) |> nrow()
    Notes du présentateur
    Un maximum calculé sur ce qui est présent les classe au pire en crise. Les 18,2 % en urgence sont donc une borne inférieure, et le rapport honnête le dit plutôt que de la présenter comme l'estimation. L'alternative — les supprimer — fait de la part en urgence une estimation non biaisée d'une population légèrement différente. Les deux sont défendables ; trancher en silence ne l'est pas.
  21. Diapositive 21 / 25

    Pourquoi l'adaptation se mesure à part de la consommation — En Python

    survey = pd.read_csv("food-security-survey-2024.v1.csv")
    merged = survey.merge(coping, on="household_id", how="left", indicator=True)
    print(merged["_merge"].value_counts())
    Notes du présentateur
    Les instruments ne se recouvrent pas comme on l'attend.
  22. Diapositive 22 / 25

    Pourquoi l'adaptation se mesure à part de la consommation — En R

    survey |> left_join(coping, by = "household_id") |>
      summarise(matched = sum(!is.na(district.y)), n = n())
  23. Diapositive 23 / 25

    Pourquoi l'adaptation se mesure à part de la consommation

    • C'est l'argument pour mesurer les deux, et la leçon suivante est ce qui arrive quand on le fait
    Notes du présentateur
    Les ménages recourent aux stratégies d'adaptation avant que leur consommation ne baisse — c'est l'objet même de l'adaptation. Un ménage qui vend des actifs pour continuer à manger a une consommation intacte et une base d'actifs qui s'effondre, et une analyse qui ne lit que le SCA l'enregistre comme en sécurité alimentaire jusqu'au jour où les actifs manquent. C'est l'argument pour mesurer les deux, et la leçon suivante est ce qui arrive quand on le fait. Deux choses à vérifier sur la jointure. Neuf ménages figurent dans le module et pas dans l'enquête, car le module a été administré à partir d'une liste distincte — une jointure interne les supprime sans un mot. Et les douze ménages enquêtés deux fois n'apparaissent qu'une fois dans le module, si bien que la jointure n'est pas un-à-un.
  24. Diapositive 24 / 25

    La suite

    • Quatre instruments existent désormais sur ces ménages : consommation, faim, comportements de survie et stratégies d'adaptation.
    Notes du présentateur
    Quatre instruments existent désormais sur ces ménages : consommation, faim, comportements de survie et stratégies d'adaptation. La leçon suivante demande lesquels s'accordent sur qui est en insécurité alimentaire, et la réponse est l'essentiel de la raison d'être de l'IPC.
  25. Diapositive 25 / 25

    La suite

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