library(data.table)
library(dplyr)
library(ggplot2)
library(knitr)
require(tidymodels)
aa <- fread("DAN-P4-FAO/aide_alimentaire.csv", encoding = 'UTF-8', colClasses = c('character', 'integer', 'character', 'numeric' ))
da <- fread("DAN-P4-FAO/dispo_alimentaire.csv", encoding = 'UTF-8')
pop <-fread("DAN-P4-FAO/population.csv", encoding = 'UTF-8')
sn <- fread("DAN-P4-FAO/sous_nutrition.csv", encoding = 'UTF-8', colClasses = c(Année = 'factor'), na.strings = "")
Dans la table sn sont présents des intervalles d’années, dont la chiffre correspondante dans la colonne Valeur correspond à la moyennes sur les trois années, on peut donc résumer ces intervalles par l’année centrale (e.g. 2012-2014 -> 2013):
levels(sn$Année) = c(2013,2014,2015,2016,2017,2018)
sn[, Année := as.numeric(as.character(Année))]
On est obligé a substituer les valeurs <0.1 par de NA en absence de données plus précises. Même si on gardait la valeur 0.1 cela pourrait fausser le taux de malnutrition calculé pour des pays avec populations du même ordre (~ 100.000).
#20 lignes avec valeurs '<0.1'
sn[Valeur == '<0.1' & Année == 2017, .N,Zone]
## Zone N
## 1: Arménie 1
## 2: Barbade 1
## 3: Belize 1
## 4: Cabo Verde 1
## 5: Chine - RAS de Macao 1
## 6: Chypre 1
## 7: Dominique 1
## 8: Fidji 1
## 9: Guyana 1
## 10: Îles Salomon 1
## 11: Kiribati 1
## 12: Macédoine du Nord 1
## 13: Maurice 1
## 14: Nouvelle-Calédonie 1
## 15: Polynésie française 1
## 16: Saint-Vincent-et-les Grenadines 1
## 17: Sao Tomé-et-Principe 1
## 18: Suriname 1
## 19: Trinité-et-Tobago 1
## 20: Vanuatu 1
sn[, Valeur:= as.numeric(ifelse(Valeur == '<0.1', NA ,Valeur))]
Nous allons joindre les table sn17 et pop17 qui contiennent les valeurs de population et nombre de personnes en état de malnutrition pour l’année 2017. Dans le dataframe ainsi obtenu, nous allons renommer le colonnes et convertir la population en millions:
sn17 = sn[Année == 2017]
pop17 = pop[Année == 2017, .(Zone, Année, Pop = Valeur*1000)]
sn_pop_17 = sn17[pop17, on = .(Zone)][,.(Zone, Année, Pop, Pmaln = Valeur*10^6)]
sn_pop_17
## Zone Année Pop Pmaln
## 1: Afghanistan 2017 36296113 10500000
## 2: Afrique du Sud 2017 57009756 3100000
## 3: Albanie 2017 2884169 100000
## 4: Algérie 2017 41389189 1300000
## 5: Allemagne 2017 82658409 NA
## ---
## 232: Venezuela (République bolivarienne du) 2017 29402484 8000000
## 233: Viet Nam 2017 94600648 6500000
## 234: Yémen 2017 27834819 NA
## 235: Zambie 2017 16853599 NA
## 236: Zimbabwe 2017 14236595 NA
mal_glob <-
sn_pop_17 %>% summarise(
popglob17 = sum(Pop),
totpopmaln. = sum(Pmaln, na.rm = TRUE),
Taux.maln.glob = percent(sum(Pmaln, na.rm = TRUE) / sum(Pop))
)
kable(
mal_glob,
col.names = c(
'Pop. mondiale',
'Total de personnes en état de malnutrition',
'Taux de malnutrition global'
),
align = c('c', 'c', 'c')
)
| Pop. mondiale | Total de personnes en état de malnutrition | Taux de malnutrition global |
|---|---|---|
| 7548134111 | 535700000 | 7% |
prop_sous_nut = sn_pop_17[!is.na(Pmaln), .(`Taux de malnutrition` = Pmaln / Pop, Pmaln) , Zone] %>% arrange(desc(`Taux de malnutrition`)) %>% head(20)
prop_sous_nut %>% mutate(`Taux de malnutrition` = percent(`Taux de malnutrition`)) %>% kable(col.names = c('Zone','Taux de malnutrition', 'Population totale malnourrie'), align=c('lcr'))
| Zone | Taux de malnutrition | Population totale malnourrie |
|---|---|---|
| Haïti | 48.259% | 5300000 |
| République populaire démocratique de Corée | 47.189% | 12000000 |
| Madagascar | 41.063% | 10500000 |
| Libéria | 38.280% | 1800000 |
| Lesotho | 38.249% | 800000 |
| Tchad | 37.958% | 5700000 |
| Rwanda | 35.056% | 4200000 |
| Mozambique | 32.811% | 9400000 |
| Timor-Leste | 32.174% | 400000 |
| Afghanistan | 28.929% | 10500000 |
| Congo | 27.394% | 1400000 |
| Venezuela (République bolivarienne du) | 27.209% | 8000000 |
| Sierra Leone | 26.708% | 2000000 |
| République-Unie de Tanzanie | 24.515% | 13400000 |
| Iraq | 23.966% | 9000000 |
| Kenya | 23.695% | 11900000 |
| Botswana | 22.675% | 500000 |
| Togo | 20.783% | 1600000 |
| Côte d’Ivoire | 20.051% | 4900000 |
| Éthiopie | 19.831% | 21100000 |
La disponibilité totales de calories par jour pour chaque produit on peut l’obtenir avec la relation suivante : kcaltot = Disp alim (kcal/pr/jour) x pop.
2366 kcal/jour est le besoin moyen estimé en kcal entre hommes et femmes, calculé sur une mediane d’age de 29.8 (https://www.worldometers.info/world-population/, https://www.webmd.com/diet/features/estimated-calorie-requirement).
Avec la disponibilité alimentaire globale on pourrait nourrir 8841498152 personnes, c’est à dire le 117.13% de la population mondiale en 2017.
Les seuls produits végétaux pourraient nourrir 7295335677, c’est à dir le 96.65% de la population mondiale en 2017.
En particulier la part qui est attribuée à l’alimentation animale, celle qui est perdue et celle qui est concrètement utilisée pour l’alimentation humaine.
On peut vérifier la relation suivante : Disponibilité intérieure d’un aliment= Nourr. + Pertes + Semences + Traitement + Aliments animaux + Autres Utilisations = Production + Importation - Exportation + Stock
setnafill(da, cols = 4:length(da), fill = 0)
da[, dtot := Production - `Exportations - Quantité` + `Importations - Quantité` + `Variation de stock`]
da[, dtot2 := Nourriture + Pertes + Semences + Traitement + `Aliments pour animaux` + `Autres Utilisations`]
da[1:50 , dtot - `Disponibilité intérieure`]
## [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [26] 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 -1 0
da[1:50, dtot2 - `Disponibilité intérieure`]
## [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [26] 0 0 0 0 -1 0 0 -1 0 0 0 0 0 -1 0 -1 -1 0 0 0 0 1 -1 0 0
Pour certains pays il y a une légère différence entre en dt1 et dt2, les deux totaux calculés, et le total déclaré dans la colonne Disponibilité intérieure ( cela est du probablement aux valeurs manquantes).
di <- da %>%
summarise(
prop_nourriture = sum(Nourriture) / sum(`Disponibilité intérieure`),
prop_pertes = sum(Pertes) / sum(`Disponibilité intérieure`),
prop_alim_anim = sum(`Aliments pour animaux`) / sum(`Disponibilité intérieure`),
prop_semences = sum(Semences) / sum(`Disponibilité intérieure`),
prop_traitement = sum(Traitement) / sum(`Disponibilité intérieure`),
prop_autres = sum(`Autres Utilisations`) / sum(`Disponibilité intérieure`)
)
ggplot(gather(di), aes(x="", y=value, fill= key)) + geom_col( width=1, color="white") + labs(x = 'Usage aliments', y='Proportion') + coord_polar("y", start=0) + theme_void() + geom_text(aes(label = percent(value)), position = position_stack(vjust=0.5)) +
labs(title = 'Utilisation globale des produits alimentaires', x = NULL, y = NULL, fill = NULL) + scale_fill_brewer(type="div", palette=1)
di[, 1:3] %>% mutate_all(percent, accuracy = 0.01) %>% kable(
caption = 'Utilisation de la disponibilité intérieure mondiale',
col.names = c('Nourriture', 'Pertes', 'Alimentation animale'),
align = c('ccc'
))
| Nourriture | Pertes | Alimentation animale |
|---|---|---|
| 49.51% | 4.61% | 13.24% |
Il faudra remarquer que la production alimentaire d’un certain nombre de pays n’est pas du tout recensée:
anti_join(pop17,da, by="Zone") %>% select(Zone) %>% head()
## Zone
## 1: Andorre
## 2: Anguilla
## 3: Antilles néerlandaises (ex)
## 4: Aruba
## 5: Bahreïn
## 6: Bhoutan
tabledi <- da %>% group_by(Zone) %>%
summarise(
prop_nourriture = sum(Nourriture, na.rm = TRUE) / sum(`Disponibilité intérieure`, na.rm =
TRUE),
prop_pertes = sum(Pertes, na.rm = TRUE) / sum(`Disponibilité intérieure`, na.rm = TRUE),
prop_alim_anim = sum(`Aliments pour animaux`, na.rm = TRUE) /
sum(`Disponibilité intérieure`, na.rm = TRUE)
) %>% left_join(prop_sous_nut, by = "Zone") %>% arrange(desc(`Taux de malnutrition`)) %>% head(20)
tabledi[1:5] %>% mutate(across(!Zone, percent, accuracy = 0.01)) %>% kable(
caption = 'Utilisation des aliments des pays plus touchés par la malnutrition ',
col.names = c(
'Pays',
'Nourriture',
'Pertes',
'Alim. Animaux',
'Taux de malnutrition'
),
align = c('lcccr')
)
| Pays | Nourriture | Pertes | Alim. Animaux | Taux de malnutrition |
|---|---|---|---|---|
| Haïti | 66.41% | 11.00% | 7.79% | 48.26% |
| République populaire démocratique de Corée | 76.80% | 7.17% | 5.49% | 47.19% |
| Madagascar | 64.02% | 6.35% | 5.53% | 41.06% |
| Libéria | 82.57% | 5.54% | 1.75% | 38.28% |
| Lesotho | 93.06% | 5.28% | 0.10% | 38.25% |
| Tchad | 77.24% | 8.65% | 1.96% | 37.96% |
| Rwanda | 92.23% | 4.33% | 0.00% | 35.06% |
| Mozambique | 56.93% | 5.28% | 7.81% | 32.81% |
| Timor-Leste | 93.74% | 3.13% | 2.01% | 32.17% |
| Afghanistan | 79.43% | 8.40% | 5.68% | 28.93% |
| Congo | 72.92% | 9.66% | 0.45% | 27.39% |
| Venezuela (République bolivarienne du) | 61.49% | 3.69% | 8.91% | 27.21% |
| Sierra Leone | 46.73% | 33.35% | 13.71% | 26.71% |
| République-Unie de Tanzanie | 72.02% | 8.48% | 5.46% | 24.52% |
| Iraq | 71.28% | 7.04% | 14.54% | 23.97% |
| Kenya | 76.21% | 4.64% | 1.92% | 23.70% |
| Botswana | 88.83% | 4.07% | 1.92% | 22.67% |
| Togo | 77.80% | 11.62% | 3.69% | 20.78% |
| Côte d’Ivoire | 68.96% | 8.51% | 2.82% | 20.05% |
| Éthiopie | 75.80% | 5.13% | 1.56% | 19.83% |
Le pays le plus touchés par le problème de la malnutrition utilisent souvent la plupart des ressources alimentaires pour la nourriture humaine.
cereales = c(
"Blé",
"Céréales, Autres" ,
"Orge",
"Riz (Eq Blanchi)",
"Avoine" ,
"Sorgho",
"Maïs",
"Millet",
"Seigle"
)
da_cer_glob <- da %>% filter(Produit %in% cereales) %>% summarise(
prop_nourriture = sum(Nourriture) / sum(`Disponibilité intérieure`),
prop_alimanim = sum(`Aliments pour animaux`) / sum(`Disponibilité intérieure`), prop_semences = sum(Semences) / sum(`Disponibilité intérieure`),
prop_traitement = sum(Traitement) / sum(`Disponibilité intérieure`),
prop_autres = sum(`Autres Utilisations`) / sum(`Disponibilité intérieure`))
ggplot(gather(da_cer_glob), aes(x="", y=value, fill= key)) + geom_col(width=1, color="white") + labs(x = 'Usage aliments', y='Proportion') + coord_polar("y", start=0) + theme_void() + geom_text(aes(label = percent(value)), position = position_stack(vjust=0.5)) +
labs(title = 'Utilisation globale des céréales', x = NULL, y = NULL, fill = NULL) + scale_fill_brewer(type="div", palette=1)
da_cer_glob[1:2] %>% mutate_all(percent) %>% kable(
caption = 'Utilisation globale des céreales',
col.names = c('Nourriture', 'Alimentation animale'),
align = c('cc')
)
| Nourriture | Alimentation animale |
|---|---|
| 43% | 36% |
On remarque que plus qu’un troisième de la production mondiale en céréales est destinée a l’alimentation animale.
usage_cer <-
da %>% filter(Produit %in% cereales) %>% group_by(Produit) %>% summarise(
prop_nourriture = sum(Nourriture, na.rm = TRUE) / sum(`Disponibilité intérieure`, na.rm =
TRUE),
prop_alimanim = sum(`Aliments pour animaux`, na.rm = TRUE) / sum(`Disponibilité intérieure`, na.rm =
TRUE)
) %>% arrange(desc(prop_nourriture))
usage_cer %>% mutate(across(where(is.numeric), percent)) %>% kable(
caption = "Usage des céréales par type",
col.names = c('Produit', 'Nourriture', 'Alimentation animale')
)
| Produit | Nourriture | Alimentation animale |
|---|---|---|
| Riz (Eq Blanchi) | 79.3% | 7.06% |
| Millet | 77.0% | 11.05% |
| Blé | 67.4% | 19.08% |
| Sorgho | 41.5% | 42.60% |
| Seigle | 33.2% | 48.89% |
| Céréales, Autres | 19.4% | 69.26% |
| Avoine | 16.7% | 69.43% |
| Maïs | 13.1% | 57.14% |
| Orge | 4.8% | 65.98% |
Seulement riz, millet et blé sont utilisés en prévalence pour l’alimentation humaine, les autres céréales étant destinés en priorité à l’alimentation animale.
da_cer <-
da %>% filter(Produit %in% cereales) %>% group_by(Zone) %>%
summarise(
prop_nourriture = sum(Nourriture, na.rm = TRUE) / sum(`Disponibilité intérieure`, na.rm =
TRUE),
prop_alimanim = sum(`Aliments pour animaux`, na.rm = TRUE) /
sum(`Disponibilité intérieure`, na.rm = TRUE)
) %>% inner_join(prop_sous_nut, by = "Zone") %>% arrange(desc(`Taux de malnutrition`)) %>% head(20)
da_cer[1:4] %>% mutate(across(!Zone, percent)) %>% kable(
caption = 'Usage des cereales par Pays',
col.names = c(
'Pays',
'Nourriture',
'Alimentation animale',
'Taux de Malnutrition'
),
align = c('l', 'c', 'c', 'c')
)
| Pays | Nourriture | Alimentation animale | Taux de Malnutrition |
|---|---|---|---|
| Haïti | 86.28% | 7.782% | 48.259% |
| République populaire démocratique de Corée | 72.37% | 7.333% | 47.189% |
| Madagascar | 84.26% | 3.971% | 41.063% |
| Libéria | 87.50% | 6.731% | 38.280% |
| Lesotho | 91.25% | 0.195% | 38.249% |
| Tchad | 84.06% | 2.254% | 37.958% |
| Rwanda | 76.99% | 0.000% | 35.056% |
| Mozambique | 82.00% | 11.081% | 32.811% |
| Timor-Leste | 93.40% | 4.061% | 32.174% |
| Afghanistan | 75.23% | 7.668% | 28.929% |
| Congo | 81.48% | 4.558% | 27.394% |
| Venezuela (République bolivarienne du) | 54.28% | 36.173% | 27.209% |
| Sierra Leone | 67.19% | 1.828% | 26.708% |
| République-Unie de Tanzanie | 66.40% | 12.410% | 24.515% |
| Iraq | 56.60% | 26.772% | 23.966% |
| Kenya | 90.07% | 2.316% | 23.695% |
| Botswana | 78.35% | 2.749% | 22.675% |
| Togo | 71.56% | 11.228% | 20.783% |
| Côte d’Ivoire | 76.54% | 7.116% | 20.051% |
| Éthiopie | 69.82% | 3.289% | 19.831% |
On remarque encore plus la relation entre taux de malnutrition et utilisation des aliments pour la nourriture.
La Thaïlande pourrait résoudre le problème de la sous-nutrition en réduisant l’exportation du manioc, qui constitue l’83% de la production du pays:
mt <-
da_pop %>% filter(Produit == 'Manioc' &
Zone == 'Thaïlande') %>% select(
Zone,
Production,
`Disponibilité intérieure`,
Nourriture,
`Importations - Quantité`,
`Exportations - Quantité`,
`Variation de stock`
)
kable(mt)
| Zone | Production | Disponibilité intérieure | Nourriture | Importations - Quantité | Exportations - Quantité | Variation de stock |
|---|---|---|---|---|---|---|
| Thaïlande | 30228 | 6264 | 871 | 1250 | 25214 | 0 |
at_pays <-
aa %>% group_by(`Pays bénéficiaire`) %>% summarise(`Aides Totales` = sum(Valeur)) %>%
arrange(desc(`Aides Totales`)) %>% left_join(prop_sous_nut, by = c(`Pays bénéficiaire` = "Zone")) %>% left_join(pop17, by =
c(`Pays bénéficiaire` = 'Zone')) %>% select(c(1, 2, 3, 4))
at_pays %>% rename(`Population totale malnourrie` = Pmaln) %>% mutate(`Taux de malnutrition` = percent(`Taux de malnutrition`)) %>% head(20) %>% kable(align = c('lcccc'))
| Pays bénéficiaire | Aides Totales | Taux de malnutrition | Population totale malnourrie |
|---|---|---|---|
| République arabe syrienne | 1858943 | NA | NA |
| Éthiopie | 1381294 | 19.831% | 21100000 |
| Yémen | 1206484 | NA | NA |
| Soudan du Sud | 695248 | NA | NA |
| Soudan | 669784 | NA | NA |
| Kenya | 552836 | 23.695% | 11900000 |
| Bangladesh | 348188 | NA | NA |
| Somalie | 292678 | NA | NA |
| République démocratique du Congo | 288502 | NA | NA |
| Niger | 276344 | NA | NA |
| Tchad | 267966 | 37.958% | 5700000 |
| Pakistan | 231072 | NA | NA |
| République populaire démocratique de Corée | 187412 | 47.189% | 12000000 |
| Afghanistan | 185452 | 28.929% | 10500000 |
| République-Unie de Tanzanie | 172022 | 24.515% | 13400000 |
| Philippines | 171722 | NA | NA |
| Palestine | 169684 | NA | NA |
| Mali | 149586 | NA | NA |
| Haïti | 116450 | 48.259% | 5300000 |
| Nicaragua | 115332 | NA | NA |
pakistan <-
at_pays %>% filter(`Pays bénéficiaire` == 'Pakistan') %>% select(`Aides Totales`)
bangladesh <-
at_pays %>% filter(`Pays bénéficiaire` == 'Bangladesh') %>% select(`Aides Totales`)
ethiopie <-
at_pays %>% filter(`Pays bénéficiaire` == 'Éthiopie') %>% select(`Aides Totales`)
La Syrie est la première dans la liste de bénéficiaires des aides humanitaires, même si on ne peut pas comparer cette donnée a la population totale malnourrie. On remarquera aussi que la distribution a un right skew assez prononcé (le 90% de pays on reçu moins de 290590.0 Tonnes totales).Bien qu’ils aient un chiffre similaire sur la population souffrant de malnutrition (ou plus grande), les aides totales reçus par le Bangladesh et le Pakistan representent les deux moins d’un quart des aides a l’Ethiopie. Il faudra aussi remarquer que pour beaucoup de pays (Inde, Indonésie, Nigéria ..) qui présentent une chiffre importante de personnes en état de malnutrition les aides ne sont pas recensés.
noaides <-
left_join(sn, aa, by = c("Zone" = "Pays bénéficiaire")) %>% group_by(Zone) %>% summarise(PopM = mean(Valeur.x), Aidetot = sum(Valeur.y)) %>% arrange(desc(PopM)) %>% filter(is.na(Aidetot)) %>% head(10)
kable(
noaides,
caption = 'Aides non recensés',
col.names = c('Zone', 'Population totale malnourrie', 'Aides totales')
)
| Zone | Population totale malnourrie | Aides totales |
|---|---|---|
| Inde | 194.233333 | NA |
| Indonésie | 23.616667 | NA |
| Nigéria | 20.316667 | NA |
| Viet Nam | 7.416667 | NA |
| Mexique | 7.083333 | NA |
| Thaïlande | 6.133333 | NA |
| Venezuela (République bolivarienne du) | 5.250000 | NA |
| Afrique du Sud | 2.816667 | NA |
| Pérou | 2.000000 | NA |
| Arabie saoudite | 1.533333 | NA |
da_jour <- da_pop %>% group_by(Zone) %>%
summarise(
`Dispotot(kcal/jour)` = sum(`Disponibilité alimentaire (Kcal/personne/jour)`, na.rm =
TRUE)
) %>% arrange(`Dispotot(kcal/jour)`) %>% left_join(prop_sous_nut, by =
"Zone") %>% head(20)
da_jour %>% mutate(`Taux de malnutrition` = percent(`Taux de malnutrition`)) %>% kable(align =
c('lcr'))
| Zone | Dispotot(kcal/jour) | Taux de malnutrition | Pmaln |
|---|---|---|---|
| République centrafricaine | 1879 | NA | NA |
| Zambie | 1924 | NA | NA |
| Madagascar | 2056 | 41.06% | 10500000 |
| Afghanistan | 2087 | 28.93% | 10500000 |
| Haïti | 2089 | 48.26% | 5300000 |
| République populaire démocratique de Corée | 2093 | 47.19% | 12000000 |
| Tchad | 2109 | 37.96% | 5700000 |
| Zimbabwe | 2113 | NA | NA |
| Ouganda | 2126 | NA | NA |
| Éthiopie | 2129 | 19.83% | 21100000 |
| Timor-Leste | 2129 | 32.17% | 400000 |
| Namibie | 2166 | NA | NA |
| Tadjikistan | 2199 | NA | NA |
| République-Unie de Tanzanie | 2204 | 24.52% | 13400000 |
| Kenya | 2205 | 23.70% | 11900000 |
| Congo | 2206 | 27.39% | 1400000 |
| Libéria | 2206 | 38.28% | 1800000 |
| Yémen | 2217 | NA | NA |
| Rwanda | 2224 | 35.06% | 4200000 |
| Bolivie (État plurinational de) | 2250 | NA | NA |
En absence des données sur la population totale malnourrie, qui permettent de calculer le taux de malnutrition, la disponibilité en calorie journalières est un bon indicateur des conditions alimentaires. Les pays de hémisphère sud, en particulier de l’Afrique centrale (avec le Madagascar), de l’Amérique du Sud (Haïti en premier), du Moyen Orient, la Corée du Nord, l’Inde sont les plus touchés.