5  Agriculture, élevage et pêche

Ce chapitre analyse les activités agricoles, d’élevage, de chasse et de pêche des ménages des deux observatoires. Le chapitre sur les revenus présente déjà les contributions de ces activités au revenu total ; ici nous nous intéressons aux pratiques, aux facteurs de production et aux performances.

WarningTravail de vérification en cours

Les résultats présentés ci-dessous sont provisoires, et sont susceptibles de faire l’objet de corrections.

5.1 Agriculture

5.1.1 Riziculture

La riziculture est l’activité agricole dominante dans les deux observatoires.

Dans l’Alaotra, 58.3 % des ménages pratiquent la riziculture. Les riziculteurs exploitent en moyenne 1.4 parcelles (superficie moyenne de 57 ares).

A Marovoay, 73.6 % des ménages pratiquent la riziculture. Les riziculteurs exploitent en moyenne 1.7 parcelles (superficie moyenne de 68 ares).

Code
res_r1 |>
  summarise(
    `Nb ménages` = n(),
    `Pratiquent (nb)` = sum(r1a == 1, na.rm = TRUE),
    `Pratiquent (%)` = round(sum(r1a == 1, na.rm = TRUE) / n() * 100, 1),
    .by = Observatory
  ) |>
  gt() |>
  tab_header(title = "Pratique de la riziculture")
Table 5.1: Pratique de la riziculture par observatoire (% des ménages)
Pratique de la riziculture
Observatory Nb ménages Pratiquent (nb) Pratiquent (%)
Alaotra 507 295 58.2
Marovoay 519 382 73.6
📥 Télécharger par hameau et par observatoire

5.1.1.1 Mode de faire valoir et accès à l’eau

La location et le métayage, qui témoignent d’un marché foncier actif, sont plus ou moins répandus selon l’observatoire.

Dans l’Alaotra, le mode de faire valoir dominant est le faire valoir direct (59.7 % des parcelles).

A Marovoay, le mode de faire valoir dominant est le faire valoir direct (46.5 % des parcelles).

Code
res_r |>
  filter(!is.na(r4)) |>
  mutate(Tenure = factor(as.character(r4), levels = names(tenure_labs), labels = tenure_labs)) |>
  count(Observatory, Tenure) |>
  mutate(pct = round(n / sum(n) * 100, 1), .by = Observatory) |>
  expand_sites_for_profile() |>
  make_bar_obs(x = Tenure, y_label = "% des parcelles")
Figure 5.1: Mode de faire valoir des parcelles rizicoles par observatoire
📥 Télécharger par hameau et par observatoire

La gestion de l’eau est un enjeu central de la riziculture.

Code
res_r |>
  filter(!is.na(r11b)) |>
  mutate(Probleme = factor(as.character(r11b), levels = names(eau_labs), labels = eau_labs)) |>
  count(Observatory, Probleme) |>
  mutate(pct = round(n / sum(n) * 100, 1), .by = Observatory) |>
  expand_sites_for_profile() |>
  make_bar_obs(x = Probleme, y_label = "% des parcelles")
Figure 5.2: Problèmes de maîtrise de l’eau sur les parcelles rizicoles
📥 Télécharger par hameau et par observatoire

5.1.1.2 Techniques culturales et intrants

Le choix de la technique est étroitement lié aux conditions hydrologiques, à la topographie et à l’accès aux intrants.

Dans l’Alaotra, la technique culturale prédominante est le repiquage traditionnel (56 % des parcelles).

A Marovoay, la technique culturale prédominante est le repiquage traditionnel (97 % des parcelles).

Code
res_r |>
  filter(!is.na(r13)) |>
  mutate(Technique = factor(as.character(r13), levels = names(tech_labs), labels = tech_labs)) |>
  count(Observatory, Technique) |>
  mutate(pct = round(n / sum(n) * 100, 1), .by = Observatory) |>
  expand_sites_for_profile() |>
  make_bar_obs(x = Technique, y_label = "% des parcelles")
Figure 5.3: Technique de culture rizicole par observatoire
📥 Télécharger par hameau et par observatoire
Code
res_r |>
  filter(!is.na(r40)) |>
  mutate(Engrais = factor(as.character(r40), levels = names(fert_labs), labels = fert_labs)) |>
  count(Observatory, Engrais) |>
  mutate(pct = round(n / sum(n) * 100, 1), .by = Observatory) |>
  expand_sites_for_profile() |>
  make_bar_obs(x = Engrais, y_label = "% des parcelles")
Figure 5.4: Utilisation d’engrais sur les parcelles rizicoles
📥 Télécharger par hameau et par observatoire
📥 Télécharger par hameau et par observatoire

Mode de travail du sol sur les parcelles rizicoles
📥 Télécharger par hameau et par observatoire

5.1.1.3 Rendements et production

Le rendement rizicole reflète à la fois les conditions agro-écologiques locales et le degré d’intensification des pratiques.

Dans l’Alaotra, le rendement rizicole médian s’établit à 2.5 t/ha (hors 5 % des valeurs extrêmes).

A Marovoay, le rendement rizicole médian s’établit à 1.2 t/ha (hors 5 % des valeurs extrêmes).

Perception des rendements rizicoles
📥 Télécharger par hameau et par observatoire
Code
res_r |>
  filter(!is.na(r23), r23 > 0, !is.na(r1d), r1d > 0) |>
  mutate(rendement_tha = (r23 / r1d) * 100 / 1000) |>
  filter(rendement_tha < quantile(rendement_tha, 0.95, na.rm = TRUE)) |>
  expand_sites_for_profile() |>
  ggplot(aes(x = Observatory, y = rendement_tha, fill = Observatory)) +
  geom_boxplot(alpha = 0.7) +
  facet_wrap(~Observatory) +
  labs(x = NULL, y = "Rendement (t/ha)", fill = "Observatoire") +
  theme_ror() +
  theme(legend.position = "none")
Figure 5.5: Distribution des rendements rizicoles (t/ha) par observatoire
📥 Télécharger par hameau et par observatoire
Code
res_r |>
  filter(!is.na(r23), r23 > 0) |>
  expand_sites_for_profile() |>
  ggplot(aes(x = r23)) +
  geom_histogram(fill = "#2c7bb6", bins = 40) +
  facet_wrap(~Observatory) +
  scale_x_continuous(
    labels = label_comma(),
    limits = c(0, quantile(res_r[["r23"]][res_r[["r23"]] > 0], 0.95, na.rm = TRUE))
  ) +
  labs(x = "Production de paddy (kg)", y = "Nombre de parcelles") +
  theme_ror()
Figure 5.6: Distribution de la production de paddy par parcelle (kg)
📥 Télécharger par hameau et par observatoire

5.1.1.4 Topographie et saison de culture

La position topographique de la parcelle (bas-fond, plaine, tanety) détermine en grande partie les possibilités de maîtrise de l’eau et le calendrier cultural. La répartition des saisons de culture reflète les stratégies d’adaptation des riziculteurs à la variabilité pluviométrique.

Code
res_r |>
  filter(!is.na(r10x)) |>
  mutate(Topographie = factor(as.character(r10x), levels = names(topo_labs), labels = topo_labs)) |>
  count(Observatory, Topographie) |>
  mutate(pct = round(n / sum(n) * 100, 1), .by = Observatory) |>
  expand_sites_for_profile() |>
  make_bar_obs(x = Topographie, y_label = "% des parcelles")
Figure 5.7: Topographie des parcelles rizicoles
📥 Télécharger par hameau et par observatoire
Code
saison_labs <- c(
  "1" = "Saison principale", "2" = "Contre saison", "3" = "Saison intermédiaire"
)

res_r |>
  filter(!is.na(r42)) |>
  mutate(Saison = factor(as.character(r42), levels = names(saison_labs), labels = saison_labs)) |>
  count(Observatory, Saison) |>
  mutate(pct = round(n / sum(n) * 100, 1), .by = Observatory) |>
  expand_sites_for_profile() |>
  ror_bar_v(x = Saison, y_label = "% des parcelles")
Figure 5.8: Saison de culture rizicole
📥 Télécharger par hameau et par observatoire
Code
origine_semence |>
  make_bar_obs(x = Origine, y_label = "% des parcelles")
Figure 5.9: Origine des semences de riz
📥 Télécharger par hameau et par observatoire

5.1.1.5 Ventes de riz

La commercialisation du paddy est une source de revenu majeure. Le calendrier et le prix de vente sont déterminants pour le revenu rizicole net.

Dans l’Alaotra, 41.7 % des ménages déclarent avoir vendu du riz au cours de la campagne.

A Marovoay, 44.2 % des ménages déclarent avoir vendu du riz au cours de la campagne.

Code
res_dc20 |>
  summarise(
    `Nb ménages` = n(),
    `Ont vendu (nb)` = sum(dcva == 1, na.rm = TRUE),
    `Ont vendu (%)` = round(sum(dcva == 1, na.rm = TRUE) / n() * 100, 1),
    .by = Observatory
  ) |>
  gt() |>
  tab_header(title = "Vente de riz (paddy ou blanc)")
Table 5.2: Taux de vente de riz par observatoire
Vente de riz (paddy ou blanc)
Observatory Nb ménages Ont vendu (nb) Ont vendu (%)
Alaotra 507 208 41.0
Marovoay 519 228 43.9
📥 Télécharger par hameau et par observatoire
Code
res_dc21 |>
  filter(!is.na(dc21), dc21 >= 1, dc21 <= 12) |>
  count(Observatory, Mois = dc21) |>
  mutate(
    Mois_lab = factor(Mois, levels = 1:12, labels = mois_labs),
    pct = round(n / sum(n) * 100, 1),
    .by = Observatory
  ) |>
  expand_sites_for_profile() |>
  ror_bar_v(x = Mois_lab, y_label = "% des transactions")
Figure 5.10: Répartition mensuelle des ventes de riz
📥 Télécharger par hameau et par observatoire
Code
res_dc21 |>
  filter(!is.na(dc24), dc24 > 0, dc24 < quantile(dc24, 0.98, na.rm = TRUE)) |>
  expand_sites_for_profile() |>
  ggplot(aes(x = dc24)) +
  geom_histogram(fill = "#2c7bb6", bins = 30) +
  facet_wrap(~Observatory) +
  labs(x = "Prix du paddy (Ar/kg)", y = "Nombre de transactions") +
  theme_ror()
Figure 5.11: Distribution du prix de vente du paddy (Ar/kg)
📥 Télécharger par hameau et par observatoire

5.1.1.6 Bilan rizicole du ménage

Le bilan rizicole reconstitue les flux de paddy au niveau du ménage : stock initial, production, transactions (achat, vente, rente, dons), autoconsommation alimentaire, utilisation en semences, et stock final.

📥 Télécharger par hameau et par observatoire

Bilan rizicole moyen par ménage (kg de paddy)
📥 Télécharger par hameau et par observatoire

5.1.2 Autres cultures

La diversification culturale est un enjeu central pour la résilience alimentaire et économique des ménages.

Dans l’Alaotra, au-delà du riz, 52 % des ménages pratiquent au moins une culture non rizicole.

A Marovoay, au-delà du riz, 28.8 % des ménages pratiquent au moins une culture non rizicole.

Code
res_c0 |>
  summarise(
    `Nb ménages` = n(),
    `Pratiquent (nb)` = sum(c1a == 1, na.rm = TRUE),
    `Pratiquent (%)` = round(sum(c1a == 1, na.rm = TRUE) / n() * 100, 1),
    .by = Observatory
  ) |>
  gt() |>
  tab_header(title = "Pratique des cultures non rizicoles")
Table 5.3: Pratique des cultures non rizicoles
Pratique des cultures non rizicoles
Observatory Nb ménages Pratiquent (nb) Pratiquent (%)
Alaotra 507 262 51.7
Marovoay 519 149 28.7
📥 Télécharger par hameau et par observatoire

5.1.2.1 Diversification et principales cultures

Le portefeuille de cultures reflète les opportunités de marché et les conditions pédoclimatiques propres à chaque observatoire.

Dans l’Alaotra, les ménages cultivent un nombre médian de 1 cultures non rizicoles.

A Marovoay, les ménages cultivent un nombre médian de 1 cultures non rizicoles.

Code
res_c |>
  filter(c0 != "", !is.na(c0)) |>
  distinct(j5, Observatory, c0) |>
  count(j5, Observatory, name = "nb_cultures") |>
  expand_sites_for_profile() |>
  count(Observatory, nb_cultures, name = "n_men") |>
  mutate(pct = round(n_men / sum(n_men) * 100, 1), .by = Observatory) |>
  ror_bar_v(x = nb_cultures, y_label = "% des ménages")
Figure 5.12: Nombre de cultures non rizicoles par ménage
📥 Télécharger par hameau et par observatoire
Code
top_cultures_plot |>
  make_bar_obs(x = Culture, y_label = "% des ménages")
Figure 5.13: Cultures non rizicoles les plus fréquentes (nb de ménages pratiquant)
📥 Télécharger par hameau et par observatoire

5.1.2.2 Fertilisation et production des autres cultures

L’accès aux engrais (organiques et chimiques) est un facteur déterminant de la productivité des cultures non rizicoles. Les pratiques de fertilisation diffèrent sensiblement entre les deux observatoires en raison de l’accessibilité et du coût des intrants.

Code
res_c |>
  filter(c0 != "", !is.na(c0), !is.na(c36)) |>
  mutate(Engrais = factor(as.character(c36), levels = names(fert_c_labs), labels = fert_c_labs)) |>
  count(Observatory, Engrais) |>
  mutate(pct = round(n / sum(n) * 100, 1), .by = Observatory) |>
  expand_sites_for_profile() |>
  make_bar_obs(x = Engrais, y_label = "% des parcelles")
Figure 5.14: Utilisation d’engrais sur les parcelles de cultures non rizicoles
📥 Télécharger par hameau et par observatoire
Code
res_c |>
  filter(c0 != "", !is.na(c0), !is.na(c2), c2 > 0) |>
  mutate(Culture = str_to_title(c0)) |>
  summarise(
    `Nb parcelles` = n(),
    `Production moy. (kg)` = round(mean(c2, na.rm = TRUE)),
    `% vendu (moy.)` = round(mean(c4a, na.rm = TRUE), 1),
    `Montant vente moy. (Ar)` = round(mean(c6b[c6b > 0], na.rm = TRUE)),
    .by = c(Observatory, Culture)
  ) |>
  filter(`Nb parcelles` >= 5) |>
  arrange(Observatory, desc(`Nb parcelles`)) |>
  gt() |>
  tab_header(title = "Production et ventes des principales cultures non rizicoles") |>
  fmt_number(columns = c(`Production moy. (kg)`, `Montant vente moy. (Ar)`),
             use_seps = TRUE, decimals = 0)
Table 5.4: Production et ventes des principales cultures non rizicoles
Production et ventes des principales cultures non rizicoles
Observatory Culture Nb parcelles Production moy. (kg) % vendu (moy.) Montant vente moy. (Ar)
Alaotra Tsaramaso 145 105 62.3 234,486
Alaotra Mangahazo, Bala 94 253 27.0 113,707
Alaotra Katsaka 93 140 24.8 199,969
Alaotra Voanjo, Kapika 26 167 47.8 192,875
Alaotra Vomanga, Tsoman 14 160 27.1 39,429
Alaotra Soja 12 83 86.5 174,182
Alaotra Voanjobory 8 324 60.8 570,000
Alaotra Fary 7 1,629 87.9 354,286
Alaotra Voanemba 7 45 69.9 106,333
Alaotra Manga 6 410 15.8 540,000
Alaotra Paraky 6 148 66.0 80,000
Marovoay Katsaka 93 351 29.2 390,936
Marovoay Mangahazo, Bala 38 272 39.0 201,771
Marovoay Voanjo, Kapika 23 366 56.7 327,621
Marovoay Fary 8 1,582 90.8 272,750
Marovoay Lojy 6 354 55.7 682,500
Marovoay Vomanga, Tsoman 6 7,146 36.7 5,260,000
📥 Télécharger par hameau et par observatoire

5.1.2.3 Perception des rendements

Au-delà des mesures quantitatives, la perception subjective des rendements par les agriculteurs constitue un indicateur complémentaire de la performance de la campagne. Elle reflète à la fois les résultats objectifs et les attentes des producteurs.

Code
perc <- res_c0 |>
  filter(c1a == 1, !is.na(c20)) |>
  mutate(Perception = safe_to_char(c20)) |>
  count(Observatory, Perception) |>
  mutate(pct = round(n / sum(n) * 100, 1), .by = Observatory) |>
  select(-n) |>
  pivot_wider(names_from = Observatory, values_from = pct, values_fill = 0) |>
  mutate(Indicateur = "Rendement cette campagne", .before = 1) |>
  rename(Modalite = Perception)

evol <- res_c0 |>
  filter(c1a == 1, !is.na(c21)) |>
  mutate(Evolution = safe_to_char(c21)) |>
  count(Observatory, Evolution) |>
  mutate(pct = round(n / sum(n) * 100, 1), .by = Observatory) |>
  select(-n) |>
  pivot_wider(names_from = Observatory, values_from = pct, values_fill = 0) |>
  mutate(Indicateur = "Par rapport a l'an dernier", .before = 1) |>
  rename(Modalite = Evolution)

bind_rows(perc, evol) |>
  gt() |>
  tab_header(title = "Perception des rendements des cultures non rizicoles (% des pratiquants)")
Table 5.5: Perception des rendements des cultures non rizicoles
Perception des rendements des cultures non rizicoles (% des pratiquants)
Indicateur Modalite Alaotra Marovoay
Rendement cette campagne Bon 35.1 20.1
Rendement cette campagne Mauvais 46.7 53.0
Rendement cette campagne Très bon 2.7 0.7
Rendement cette campagne Très mauvais 15.4 26.2
Par rapport a l'an dernier Augmenté 24.4 8.2
Par rapport a l'an dernier Diminué 54.3 49.7
Par rapport a l'an dernier Inchangé 21.3 41.5
Par rapport a l'an dernier 4 0.0 0.7
📥 Télécharger par hameau et par observatoire

5.1.3 Jardins potagers et cueillette

Les jardins potagers et la cueillette de produits sauvages complètent les activités agricoles des ménages. Ils jouent un rôle important dans la diversification alimentaire, en particulier pendant la période de soudure.

Code
pct_oui(res_jpchphef, "jpa", "Jardin potager") |>
  bind_rows(pct_oui(res_jpchphef, "efa", "Exploitation forestière")) |>
  gt() |>
  tab_header(title = "Taux de pratique (% des ménages)") |>
  cols_label(Item = "Activité")
Table 5.6: Pratique du jardin potager et de la cueillette
Taux de pratique (% des ménages)
Activité Alaotra Marovoay Total
Jardin potager 70 46 58
Exploitation forestière 54 36 45
📥 Télécharger par hameau et par observatoire
Code
top_jardin_plot |>
  make_bar_obs(x = Produit, y_label = "% des ménages")
Figure 5.15: Produits de jardin / cueillette les plus fréquents
📥 Télécharger par hameau et par observatoire

5.1.4 Exploitation forestière

L’exploitation des ressources forestières (bois de chauffe, charbon, bois d’œuvre, plantes médicinales) constitue une activité complémentaire pour de nombreux ménages. Les produits forestiers sont essentiels à la fois comme source d’énergie domestique et comme revenu d’appoint.

Code
produits_foret |>
  make_bar_obs(x = Produit, y_label = "% des ménages")
Figure 5.16: Principaux produits de l’exploitation forestière
📥 Télécharger par hameau et par observatoire

5.2 Élevage

5.2.1 Pratique de l’élevage

L’élevage remplit des fonctions multiples : épargne sur pied, force de travail, autoconsommation et source de revenu.

Dans l’Alaotra, L’élevage est pratiqué par 65.4 % des ménages.

A Marovoay, L’élevage est pratiqué par 72.3 % des ménages.

Code
res_el2 |>
  summarise(
    `Nb ménages` = n(),
    `Pratiquent (nb)` = sum(el2 == 1, na.rm = TRUE),
    `Pratiquent (%)` = round(sum(el2 == 1, na.rm = TRUE) / n() * 100, 1),
    .by = Observatory
  ) |>
  gt() |>
  tab_header(title = "Pratique de l'élevage")
Table 5.7: Taux de pratique de l’élevage
Pratique de l'élevage
Observatory Nb ménages Pratiquent (nb) Pratiquent (%)
Alaotra 507 331 65.3
Marovoay 519 374 72.1
📥 Télécharger par hameau et par observatoire

5.2.2 Espèces élevées

Le choix des espèces reflète les conditions agro-écologiques, les traditions locales et les opportunités de marché.

Dans l’Alaotra, L’espèce la plus élevée est le Kisoa.

A Marovoay, L’espèce la plus élevée est le Omby Miasa.

Code
especes_elevage |>
  make_bar_obs(x = Espece, y_label = "% des ménages")
Figure 5.17: Espèces élevées (% des ménages pratiquant)
📥 Télécharger par hameau et par observatoire

5.2.3 Objectifs de l’élevage

L’élevage répond à trois objectifs principaux : l’épargne/assurance (constitution d’un capital mobilisable en cas de choc), l’autoconsommation (lait, œufs, viande) et la vente. La hiérarchie de ces objectifs varie selon l’espèce.

Code
obj_labs <- c(ele5a = "Épargne / assurance", ele5b = "Autoconsommation", ele5c = "Vente")

res_ele |>
  filter(ele_lig0 != "", !is.na(ele_lig0)) |>
  mutate(Espece = str_to_title(ele_lig0)) |>
  pivot_longer(cols = c(ele5a, ele5b, ele5c), names_to = "Objectif_code", values_to = "val") |>
  filter(val == 1) |>
  mutate(Objectif = obj_labs[Objectif_code]) |>
  count(Espece, Objectif) |>
  ggplot(aes(x = reorder(Espece, n), y = n, fill = Objectif)) +
  geom_col(position = "fill") +
  coord_flip() +
  scale_y_continuous(labels = percent) +
  labs(x = NULL, y = "Répartition des objectifs", fill = "Objectif") +
  theme_ror()
Figure 5.18: Objectifs de l’élevage par espèce (% des ménages éleveurs)
📥 Télécharger par hameau et par observatoire

5.2.4 Ventes et pertes d’animaux

La dynamique du cheptel dépend des entrées (naissances, achats) et des sorties (ventes, pertes, abattages). Les pertes d’animaux, liées aux maladies, au vol ou aux catastrophes naturelles, représentent un risque économique majeur pour les éleveurs.

Code
res_ele |>
  filter(!is.na(ele_i1), ele_i1 > 0, ele_lig0 != "", !is.na(ele_lig0)) |>
  mutate(Espece = str_to_title(ele_lig0)) |>
  summarise(
    `Nb transactions` = n(),
    `Nb animaux vendus` = sum(ele_i1, na.rm = TRUE),
    `Valeur totale (Ar)` = sum(ele_i2, na.rm = TRUE),
    .by = c(Observatory, Espece)
  ) |>
  arrange(Observatory, desc(`Valeur totale (Ar)`)) |>
  gt() |>
  tab_header(title = "Ventes d'animaux par espèce et observatoire") |>
  fmt_number(columns = c(`Nb animaux vendus`, `Valeur totale (Ar)`),
             use_seps = TRUE, decimals = 0)
Table 5.8: Ventes d’animaux par observatoire
Ventes d'animaux par espèce et observatoire
Observatory Espece Nb transactions Nb animaux vendus Valeur totale (Ar)
Alaotra Gisa 29 269 89,771
Alaotra Kisoa 50 80 25,625
Alaotra Akoho 112 948 22,055
Alaotra Omby Miasa 4 7 9,930
Alaotra Gana 17 341 6,763
Alaotra Ondry 7 33 3,936
Alaotra Omby Vavy 2 3 2,580
Alaotra Voron-Tsiloza 1 25 1,875
Alaotra Omby Hafa 2 2 1,550
Marovoay Akoho 112 778 60,200
Marovoay Omby Miasa 21 37 45,650
Marovoay Kisoa 43 102 36,995
Marovoay Gana 90 1,319 19,398
Marovoay Omby Vavy 7 11 9,400
Marovoay Omby Hafa 3 5 3,859
Marovoay Ondry 6 30 3,080
Marovoay Voron-Tsiloza 3 34 1,260
Marovoay Osy 2 10 1,000
Marovoay Gisa 2 10 290
📥 Télécharger par hameau et par observatoire
Code
pertes_elevage |>
  make_bar_obs(x = Espece, y = n, show_pct = FALSE,
          y_label = "Nb ménages ayant subi des pertes")
Figure 5.19: Ménages ayant subi des pertes de bétail
📥 Télécharger par hameau et par observatoire

5.2.5 Produits de l’élevage

Outre la vente d’animaux sur pied, l’élevage génère des produits dérivés (lait, œufs, miel, fumier) qui contribuent à l’alimentation et aux revenus du ménage.

📥 Télécharger par hameau et par observatoire

Produits de l’élevage déclarés par les ménages
📥 Télécharger par hameau et par observatoire

5.3 Chasse et pêche

La chasse et la pêche constituent des activités complémentaires, souvent saisonnières, qui contribuent à la diversification alimentaire et au revenu, en particulier dans les zones proches des plans d’eau.

Dans l’Alaotra, Ces activités sont pratiquées par 18.3 % des ménages.

A Marovoay, Ces activités sont pratiquées par 34.5 % des ménages.

Code
pct_oui(res_jpchphef, "chapha", "Chasse / Pêche") |>
  gt() |>
  tab_header(title = "Pratique de la chasse et de la pêche (% des ménages)") |>
  cols_label(Item = "Activité")
Table 5.9: Taux de pratique de la chasse et de la pêche
Pratique de la chasse et de la pêche (% des ménages)
Activité Alaotra Marovoay Total
Chasse / Pêche 18 34 27
📥 Télécharger par hameau et par observatoire
Code
chasse_especes |>
  make_bar_obs(x = Espece, y = n, show_pct = FALSE,
          y_label = "Nombre de mentions")
Figure 5.20: Principales espèces chassées/pêchées
📥 Télécharger par hameau et par observatoire
Code
chasse_raison |>
  make_bar_obs(x = Raison, y_label = "% des mentions")
Figure 5.21: Raisons de la chasse/pêche par observatoire
📥 Télécharger par hameau et par observatoire

5.3.1 Fréquence et saisonnalité

La fréquence de pêche et son calendrier saisonnier dépendent du régime hydrologique local. Les périodes de hautes eaux correspondent généralement à une activité de pêche plus intense.

Code
frequence_peche |>
  make_bar_obs(x = Frequence, y_label = "% des mentions")
Figure 5.22: Fréquence de la chasse/pêche
📥 Télécharger par hameau et par observatoire
Code
chph6_cols <- paste0("chph6_", sprintf("%02d", 1:12))
chph6_cols <- chph6_cols[chph6_cols %in% names(res_chph)]

if (length(chph6_cols) > 0) {
  res_chph |>
    filter(chph_lib != "", !is.na(chph_lib)) |>
    select(j5, Observatory, all_of(chph6_cols)) |>
    pivot_longer(all_of(chph6_cols), names_to = "mois_code", values_to = "val") |>
    filter(val == 1) |>
    mutate(Mois = factor(
      as.integer(str_extract(mois_code, "\\d+$")),
      levels = 1:12, labels = mois_labs
    )) |>
    count(Observatory, Mois) |>
    expand_sites_for_profile() |>
    ror_bar_v(x = Mois, y = n, show_pct = FALSE,
              y_label = "Nombre de mentions")
}
Figure 5.23: Saisonnalité de la chasse/pêche (% de mentions par mois)
📥 Télécharger par hameau et par observatoire

5.4 Main d’oeuvre agricole

5.4.1 Emploi de main d’oeuvre

L’ampleur du recours à la main d’œuvre extérieure dépend de la superficie cultivée, du type de culture et de la disponibilité de main d’œuvre familiale.

Dans l’Alaotra, Le recours à la main d’œuvre extérieure (salariée ou par entraide) concerne 46.8 % des ménages.

A Marovoay, Le recours à la main d’œuvre extérieure (salariée ou par entraide) concerne 58.8 % des ménages.

Code
mo_np <- pct_oui(res_mp0, "mora", "Main d'oeuvre non permanente")

mp0_col <- intersect(c("mp0", "mp0a"), names(res_mp0))[1]

if (!is.na(mp0_col)) {
  mo_p <- pct_oui(res_mp0, mp0_col, "Main d'oeuvre permanente")
  bind_rows(mo_np, mo_p) |>
    gt() |>
    tab_header(title = "Recours à la main d'oeuvre agricole (% des ménages)") |>
    cols_label(Item = "Type")
} else {
  mo_np |>
    gt() |>
    tab_header(title = "Recours à la main d'oeuvre non permanente (% des ménages)") |>
    cols_label(Item = "Type")
}
Table 5.10: Recours à la main d’oeuvre agricole
Recours à la main d'oeuvre agricole (% des ménages)
Type Alaotra Marovoay Total
Main d'oeuvre non permanente 47 59 53
Main d'oeuvre permanente 7 4 5
📥 Télécharger par hameau et par observatoire

5.4.2 Opérations nécessitant de la main d’oeuvre salariée

Les trois opérations rizicoles principales (travail du sol, sarclage, moisson) mobilisent des volumes de main d’œuvre différents. Le salaire journalier et le recours à l’entraide varient sensiblement selon l’opération et l’observatoire.

Code
op_names <- c("Asa tany" = "Travail du sol", "Mijinja" = "Sarclage", "Manetsa" = "Moisson")

tbl_mo <- res_mor |>
  filter(mo1_lib != "", !is.na(mo1_lib)) |>
  mutate(
    Operation = if_else(mo1_lib %in% names(op_names), op_names[mo1_lib], mo1_lib)
  ) |>
  summarise(
    Salariee_pct = round(sum(mor1 == 1, na.rm = TRUE) / sum(!is.na(mor1)) * 100, 1),
    Entraide_pct = round(sum(mor2 == 1, na.rm = TRUE) / sum(!is.na(mor2)) * 100, 1),
    Salaire_moy = round(mean(mor12[mor1 == 1], na.rm = TRUE)),
    .by = c(Observatory, Operation)
  ) |>
  arrange(Operation, Observatory)

tbl_mo |>
  gt() |>
  cols_label(
    Salariee_pct = "Salariee (%)",
    Entraide_pct = "Entraide (%)",
    Salaire_moy = "Salaire moyen (Ar)"
  ) |>
  fmt_number(columns = Salaire_moy, use_seps = TRUE, decimals = 0)
Table 5.11: Main d’œuvre salariée et entraide par opération agricole
Observatory Operation Salariee (%) Entraide (%) Salaire moyen (Ar)
Alaotra Moisson 79.5 14.7 216,171
Marovoay Moisson 91.1 8.9 182,954
Alaotra Sarclage 64.7 21.6 229,960
Marovoay Sarclage 84.6 7.2 150,626
Alaotra Travail du sol 69.2 15.8 194,315
Marovoay Travail du sol 79.0 6.9 193,831
📥 Télécharger par hameau et par observatoire

5.4.3 Main d’oeuvre permanente

Le recours à la main d’œuvre permanente (salariés employés à l’année) reste minoritaire et concerne principalement les exploitations les plus grandes. Les conditions d’emploi (salaire, logement, nourriture) reflètent le marché du travail agricole local.

Code
act_labs <- c(
  mp3a = "Riziculture", mp3b = "Autres cultures",
  mp3c = "Élevage", mp3d = "Autres activités", mp3e = "Aide ménagère"
)

res_mp |>
  filter(!is.na(mp41) | !is.na(mp42)) |>
  mutate(Sexe = safe_to_char(mp7)) |>
  pivot_longer(cols = c(mp3a, mp3b, mp3c, mp3d, mp3e),
               names_to = "act_code", values_to = "val") |>
  filter(val == 1) |>
  mutate(Activite = act_labs[act_code]) |>
  summarise(
    `Nb employés` = n_distinct(j5, mp_lig),
    `Salaire moyen argent (Ar)` = round(mean(mp41, na.rm = TRUE)),
    `Salaire moyen nature (Ar)` = round(mean(mp42, na.rm = TRUE)),
    .by = c(Observatory, Activite)
  ) |>
  arrange(Observatory, desc(`Nb employés`)) |>
  gt() |>
  tab_header(title = "Main d'œuvre permanente par type d'activité") |>
  fmt_number(columns = c(`Salaire moyen argent (Ar)`, `Salaire moyen nature (Ar)`),
             use_seps = TRUE, decimals = 0)
Table 5.12: Caractéristiques de la main d’oeuvre permanente
Main d'œuvre permanente par type d'activité
Observatory Activite Nb employés Salaire moyen argent (Ar) Salaire moyen nature (Ar)
Alaotra Élevage 27 434,839 245,286
Alaotra Riziculture 18 713,368 557,625
Alaotra Aide ménagère 18 306,000 426,667
Alaotra Autres cultures 15 707,111 380,000
Alaotra Autres activités 6 1,166,000 NaN
Marovoay Élevage 15 252,500 285,714
Marovoay Aide ménagère 4 445,000 0
Marovoay Autres activités 4 907,500 0
Marovoay Autres cultures 1 250,000 NaN
📥 Télécharger par hameau et par observatoire

5.4.4 Cultures non rizicoles par quintile de revenu

Les ménages les plus aisés cultivent-ils des cultures différentes ? On croise ici les familles de cultures avec les quintiles de revenu courant du ménage.

Code
# Calcul des revenus pour 2025
source("utils/calc_incomes_all_years.R")
inc_agro <- compute_income_year(2025) |>
  mutate(j5 = as.character(j5))

# Quintiles de revenu courant par observatoire
quintiles <- inc_agro |>
  left_join(res_deb |> select(j5, Observatory), by = "j5") |>
  mutate(
    Quintile = ntile(revcou, 5),
    Quintile = paste0("Q", Quintile),
    .by = Observatory
  ) |>
  select(j5, Observatory, Quintile)

# Fonction de regroupement en familles de cultures
crop_family <- function(code) {
  code <- as.integer(code)
  case_when(
    code %in% 102:199 ~ "Autres céréales",
    code %in% 200:299 ~ "Tubercules",
    code %in% 300:399 ~ "Légumes",
    code %in% 400:499 ~ "Légumineuses",
    code %in% 500:599 ~ "Fruits",
    code %in% 600:799 ~ "Cultures industrielles / rente",
    TRUE ~ "Autre"
  )
}

# Croisement cultures × quintile
cult_quint <- res_c |>
  filter(!is.na(c1)) |>
  mutate(j5 = as.character(j5), Famille = crop_family(c1)) |>
  left_join(quintiles |> select(j5, Quintile), by = "j5") |>
  filter(!is.na(Quintile)) |>
  expand_sites_for_profile() |>
  count(Observatory, Quintile, Famille) |>
  mutate(pct = round(n / sum(n) * 100, 1), .by = c(Observatory, Quintile))

cult_quint |>
  filter(Famille != "Autre") |>
  ggplot(aes(x = Quintile, y = pct, fill = Famille)) +
  geom_col() +
  facet_wrap(~Observatory) +
  labs(x = "Quintile de revenu courant", y = "% des parcelles cultivées", fill = "Famille") +
  theme_ror() +
  theme(legend.position = "top")
Figure 5.24: Familles de cultures non rizicoles pratiquées selon le quintile de revenu
📥 Télécharger par hameau et par observatoire
Code
res_c |>
  filter(!is.na(c1)) |>
  mutate(j5 = as.character(j5)) |>
  count(j5, name = "nb_cultures") |>
  left_join(quintiles, by = "j5") |>
  filter(!is.na(Quintile)) |>
  summarise(
    n_men = n(),
    nb_cult_moy = round(mean(nb_cultures), 1),
    .by = c(Observatory, Quintile)
  ) |>
  pivot_wider(names_from = Quintile, values_from = c(n_men, nb_cult_moy)) |>
  gt() |>
  tab_header(title = "Diversification des cultures non rizicoles selon le quintile de revenu")
Table 5.13: Nombre moyen de cultures non rizicoles par ménage et quintile de revenu
Diversification des cultures non rizicoles selon le quintile de revenu
Observatory n_men_Q5 n_men_Q1 n_men_Q4 n_men_Q2 n_men_Q3 nb_cult_moy_Q5 nb_cult_moy_Q1 nb_cult_moy_Q4 nb_cult_moy_Q2 nb_cult_moy_Q3
Alaotra 67 46 58 52 43 2.0 1.5 1.9 1.5 1.8
Marovoay 39 30 29 28 26 1.6 1.4 1.2 1.2 1.3
📥 Télécharger par hameau et par observatoire

5.5 Évolution des indicateurs agricoles (1995–2025)

Les fichiers rizicoles (res_r) et d’élevage (res_el2) couvrent la quasi-totalité des campagnes depuis 1995. On retrace ici l’évolution de la production rizicole moyenne par ménage, du rendement (lorsque la surface est disponible) et du taux de pratique de l’élevage.

Code
if ("prod_moy" %in% names(agro_trends)) {
  ggplot(mapping = aes(x = year, y = prod_moy, colour = Observatory)) +
    geom_line(data = agro_solid |> filter(!is.na(prod_moy)), linewidth = 0.8) +
    geom_line(data = agro_gap |> filter(!is.na(prod_moy)), linewidth = 0.8, linetype = "31") +
    geom_point(data = agro_trends |> filter(!is.na(prod_moy)), size = 2) +
    scale_x_continuous(breaks = seq(1995, 2025, 5)) +
    scale_y_continuous(labels = scales::label_comma()) +
    labs(x = NULL, y = "Production rizicole moyenne (kg/ménage)", colour = "Observatoire") +
    theme_ror()
}

Évolution de la production rizicole moyenne par ménage (kg/ménage/an)
Code
if ("rdt_moy" %in% names(agro_trends)) {
  rdt_data <- agro_trends |> filter(!is.na(rdt_moy))
  if (nrow(rdt_data) > 1) {
    rdt_solid <- rdt_data |> filter(year <= 2015)
    rdt_gap   <- rdt_data |> filter(year %in% c(2015, 2025))
    ggplot(mapping = aes(x = year, y = rdt_moy, colour = Observatory)) +
      geom_line(data = rdt_solid, linewidth = 0.8) +
      geom_line(data = rdt_gap, linewidth = 0.8, linetype = "31") +
      geom_point(data = rdt_data, size = 2) +
      scale_x_continuous(breaks = seq(1995, 2025, 5)) +
      labs(x = NULL, y = "Rendement moyen (kg/are)", colour = "Observatoire") +
      theme_ror()
  }
}

Évolution du rendement rizicole moyen (kg/are) — années avec données de surface
Code
if ("pct_elevage" %in% names(agro_trends)) {
  el_data <- agro_trends |> filter(!is.na(pct_elevage))
  el_solid <- el_data |> filter(year <= 2015)
  el_gap   <- el_data |> filter(year %in% c(2015, 2025))
  ggplot(mapping = aes(x = year, y = pct_elevage, colour = Observatory)) +
    geom_line(data = el_solid, linewidth = 0.8) +
    geom_line(data = el_gap, linewidth = 0.8, linetype = "31") +
    geom_point(data = el_data, size = 2) +
    scale_x_continuous(breaks = seq(1995, 2025, 5)) +
    scale_y_continuous(limits = c(0, 100)) +
    labs(x = NULL, y = "% de ménages pratiquant l'élevage", colour = "Observatoire") +
    theme_ror()
}

Évolution du taux de pratique de l’élevage (1998–2025)

Les séries longues mettent en évidence des tendances structurelles : évolution de la production rizicole par ménage, variation des rendements en lien avec les aléas climatiques et l’intensification des pratiques, et évolution du taux de pratique de l’élevage. La rupture de série entre 2015 et 2025 (représentée en pointillés) invite à la prudence dans l’interprétation.

5.6 Pistes d’analyse complémentaires

Les données collectées offrent des possibilités d’analyse supplémentaires qui n’ont pas été développées dans ce chapitre, faute de certitude sur leur pertinence ou par manque de recul sur la qualité des variables concernées. On peut notamment mentionner :

  • Détail des ventes de riz (res_dc20) : les variables vs1 à vs3 semblent décomposent les usages du riz vendu (semence, consommation, paiement de main d’œuvre), mais leur codage est un peu complexe/à préciser.
  • Forme des produits vendus (cultures non rizicoles, c37) : la variable indique si le produit est vendu brut, transformé ou autre — potentiellement utile pour un tableau croisé avec les types de culture.
  • Coûts détaillés de la main d’œuvre par opération rizicole (res_mor, mor12) : le salaire total par opération (Asa tany, Mijinja, Manetsa) pourrait être présenté sous forme de tableau comparatif, mais les valeurs présentent une forte dispersion.
  • Pratiques de nourriture de la main d’oeuvre (res_mor, mor3) : la variable indique si les salariés ou l’entraide sont nourris pendant le travail.
  • Effectifs et variations du cheptel (res_ele) : les variables ele1 (effectif début), ele2 (naissances), ele3 (achats), ele_i1 (ventes), ele_p3 (pertes) permettraient de reconstituer un bilan démographique du cheptel par espèce (difficile à exploiter à première vue).