Le projet sur lequel nous avons travaillé consiste à calculer le revenu agricole des ménages. Les données utilisées dans le cadre ce projet sont obtenues à la suite de l’enquête harmonisée sur les conditions de vie des menages (EHCVM).

L’enquête EHCVM a pour principal objectif de fournir les données pour le suivi et l’évaluation de la pauvreté et des conditions de vie des ménages dans chacun des pays membres de l’UEMOA.

Pour le calcul du revenu, la section 16 qui concerne l’agriculture sera utilisée. Elle est composée de quatre sous bases dont celle sur les parcelles exploitées par les ménages, celle sur les couts des intrants utilisés dans le processus de production, celle sur les pratiques culturales et celle sur l’utilisation qui est faite de la production agricole.

Apurement des bases

Dans cette partie, il sera question de traiter les bases de données utilisées dans le cadre de ce projet. L’apurement des données est une étape cruciale pour s’assurer que les données utilisées pour cette analyse sont propres, cohérentes, structurées. Un ensemble de manipulations sera realisée dans l’objectif de choisir les variables d’intérêt, d’identifier et corriger les valeurs manquantes, de traiter les modalités des variables autres, etc.

Préparation des données

Cette étape est essentielle avant toute procédure d’analyse de données. Elle consiste à importer les données et les explorer. Cela permet par la suite de retenir les variables d’intérêt pour le projet.

Importation des données

Les sous-bases parcelles, couts d’intrants, cultures et utilisation de la production de la section 10 sont d’abord importées par la partie ci-dessous.

chemin="C:\\Users\\ROSSA\\Desktop\\Ressources_pour_R\\Projet_R_Revenu_agricole_ISEP2_2022-2023\\RevenuAGRICOLE"

RAG_parcelles= read_dta(file = paste0(chemin,"\\s16a_me_SEN_2021.dta"))
RAG_cout_intrants= read_dta(file = paste0(chemin,"\\s16b_me_SEN_2021.dta"))
RAG_cultures= read_dta(file = paste0(chemin,"\\s16c_me_SEN_2021.dta"))
RAG_utilisation_prod= read_dta(file = paste0(chemin,"\\s16d_me_SEN_2021.dta"))

L’exploration des données permet de comprendre leur structure pour pouvoir adapter les méthodes de traitement. Dans un premier temps la préparation concernera la sous base parcelle qui contient des informations relatives aux parcelles cultivées par les menages.

Manipulation de la deuxième base des donnees parcelles

Cette base de données donne des informations relatives aux parcelles exploitées par les ménages notamment le mode d’acquisition des parcelles, le type de sol des parcelles, la superficie, etc.

dim(RAG_parcelles)
## [1] 3774  464

Cette base contient 3774 observations qui représentent les différents ménages enquêtés et 464 variables.

names(RAG_parcelles)

Les variables présentes dans la base sont nommées relativement aux questions posées lors de l’enquête. Après le choix des variables d’intérêt, celles-ci seront renommées pour avoir plus facilité dans la suite de l’analyse.

La fonction qui suit permet de voir la structure globale des données avec les variables et leurs différentes observations.

glimpse(RAG_parcelles)

Il est important d’explorer les premières et les dernières observations de la base pour voir la manière dont se présentent les données dans la base.

head(RAG_parcelles, n=5) 
tail(RAG_parcelles, n=5) 

Choix des variables d’interet

Cette base de données contient beaucoup de variables, il serait alors plus judicieux de choisir les variables qui seront utilisées pour déterminer le revenu agricole des ménages. Le choix de ces variables se fera sur la base du questionnaire en fonction de l’objectif visé.

Dans un premier temps, cinq variables seront retenues.

parcelles=RAG_parcelles %>%
  select(interview__key, interview__id, grappe, id_menage, vague,s16aq00, s16aq08,s16aq08_autre ,s16aq09a, s16aq09b)

Renommage des variables variables clés.

Le renommage des variables avant une analyse de données améliore la lisibilité et la compréhension. Cela facilite également l’organisation et la manipulation des variables. Dans ce qui suit, les variables retenues seront alors renommées.

new_name = c(colnames(parcelles)[1], colnames(parcelles)[2],colnames(parcelles)[3],
              colnames(parcelles)[4], colnames(parcelles)[5], "culture_terre","Id_culture","autre_culture_principale", "superficie_parcelle", "unite_mesure_parcelle")
isTRUE(length(new_name)==length(colnames(parcelles))) 
## [1] TRUE
colnames(parcelles) = new_name

La partie ci dessous permet de vérifier les nouveaux noms donnés aux variables.

colnames(parcelles)
##  [1] "interview__key"           "interview__id"           
##  [3] "grappe"                   "id_menage"               
##  [5] "vague"                    "culture_terre"           
##  [7] "Id_culture"               "autre_culture_principale"
##  [9] "superficie_parcelle"      "unite_mesure_parcelle"

Identification et correction des valeurs manquantes

L’identification et la correction des valeurs manquantes dans une base de données permet d’améliorer la précision et la validité des analyses. Cela contribue à des résultats plus fiables, plus précis et plus significatifs dans l’analyse des données.

L’identification peut se faire suivant plusieurs méthodes dont la visualisation des données manquantes.

Etant donné que notre objectif est de calculer le revenu agricole, nous retiendrons donc à présent les ménages dont au moins un membre pratique l’agriculture.

Nous allons supprimer les ménages qui n’ont pas renseigner la superficie (9999).

parcelles= subset(parcelles, parcelles$superficie_parcelle!=9999)

Conversion de la superficie en hectare pour les ménages dont la superficie est en m²

Dans cette partie la superficie sera convertie en hectare pour harmoniser les unités.

parcelles=parcelles %>%
  mutate(superficie_parcelle_ha=ifelse(unite_mesure_parcelle==2,superficie_parcelle/10000,superficie_parcelle))

Selection des variables d’intérêt

Après examen des autres sous bases de la section, il parait plus judicieux de ne garder que certaines des variables choisies au départ. Il s’agit de garder, en plus de variables d’identification du menages, les variables culture_terre, Id_culture, autre_culture_principale, superficie_parcelle_ha.

parcelles=parcelles %>%
                      select(interview__key, interview__id, grappe, id_menage, vague,culture_terre,Id_culture, autre_culture_principale, superficie_parcelle_ha)

Traitement des modalités des variables autres

Dans le questionnaire, les propositions de réponses ne sont pas exhausives ce qui implique l’utilisation des modalités Autres(à preciser). Les précisions apportées par le ménage sont enregistrées dans des variables autres qui doivent aussi être traitées.

Les réponses des ménages qui pratiquent d’autres formes de cultures que celles listées dans le questionnaire a été renseignées (65).

Nous allons uniformiser les différentes modalités autres.

parcelles=parcelles %>%
  mutate(autre_culture_principale=ifelse(autre_culture_principale=="Orange"|autre_culture_principale=="orange", "orange",
                                                   ifelse(autre_culture_principale=="citron"|autre_culture_principale=="Citron"|autre_culture_principale=="citrons", "citron",
                                          ifelse(autre_culture_principale=="cajou"|autre_culture_principale=="acajou"|autre_culture_principale=="Acajou", "acajou",
                                                autre_culture_principale))))

Dans ce qui suit, les modalités de la variable autre_culture_principale seront recodées.

parcelles=parcelles %>%
  mutate(Id_culture=ifelse(autre_culture_principale=="orange",65,
                     ifelse(autre_culture_principale=="citron", 66,
                      ifelse(autre_culture_principale=="acajou", 67,
                        ifelse(autre_culture_principale=="feuille d'oseille",68,
                          ifelse(autre_culture_principale=="fleur",69,
                             ifelse(autre_culture_principale=="bissap",70,
                               ifelse(autre_culture_principale=="gadiangé",71,
                                  ifelse(autre_culture_principale=="Bèrèv",72,
                                    ifelse(autre_culture_principale=="bénet",73,
                                                                                               
                            ifelse(autre_culture_principale=="oranges , citrons et anacardes",74,Id_culture)))))))))))

Nous pouvons visualiser les valeurs manquantes.

vis_miss(parcelles)

La base de données maintenant propre, elle peut être exportée pour d’autres utilisations.

Exportation de la base apurée des récoltes

Après les manipulations, la base sera alors exportée sous format stata et csv. Elles vont prendre le nom de parcelles_apure.

write_dta(parcelles, 'parcelles_apure.dta')
write.csv(parcelles, 'parcelles_apure.csv')

Manipulation de la deuxième base des donnees couts des intrants

Cette base recense les intrants utilisés par les ménages dans leurs activités de production et leurs modes d’acquisition.

dim(RAG_cout_intrants)
## [1] 54670    25

La base comporte 54670 observations pour 25 variables parmi lesquelles les variables clés seront selectionnées.

names(RAG_cout_intrants)

Etant donné que les noms des variables sont enregistrées suivant les questions posées, un renommage des variables sera fait pour facilité la lisibilité de données.

glimpse(RAG_cout_intrants)

A ce niveau, les cinq premières et dernières observations seront explorées pour voir comment elles se présentent.

head(RAG_cout_intrants, n=5) 
tail(RAG_cout_intrants, n=5) 

Selection des variables d’intérêt

Dans cette base de données, toutes les variables ne seront pas utilisées dans ce qui suit. Certaines seulement seront selectionnées. Dans la suite de l’analyse, seul de montant de l’achat des intrants va nous intéresser.

cout_intrants=RAG_cout_intrants %>%
  select(interview__key, interview__id, grappe, id_menage, vague,s16bq02, s16bq08, s16bq09c)

Renommage des variables

A ce niveau, les variables selectionnées seront renommées.

new_name = c(colnames(cout_intrants)[1], colnames(cout_intrants)[2],colnames(cout_intrants)[3],
              colnames(cout_intrants)[4], colnames(cout_intrants)[5], "util_intrant",  "achat_intrant","montant_achat_intrant")
isTRUE(length(new_name)==length(colnames(cout_intrants))) 
## [1] TRUE
colnames(cout_intrants) = new_name

Ce qui suit permet de voir les nouveaux noms des variables.

colnames(cout_intrants)
## [1] "interview__key"        "interview__id"         "grappe"               
## [4] "id_menage"             "vague"                 "util_intrant"         
## [7] "achat_intrant"         "montant_achat_intrant"

Etant donné que nous nous intéressons aux coûts, il serait plus judicieux de grouper par ménage suivant la clé “interview__key” et d’ignorer les valeurs manquantes au niveau des montants. La base des montants sera donc obtenue sans valeurs manquantes.

cout_intrants=cout_intrants %>% 
            group_by(interview__key)%>% 
            summarize(montant_menage=sum(montant_achat_intrant, na.rm = TRUE))
vis_miss(cout_intrants)

Après aggregation des données par ménage, le constat est que la base sur les couts d’intrants ne contient plus de valeurs manquantes.

L’étape qui suit est celle de l’exportation des données sous format stata et csv. Le nom donné à la base exportée est cout_intrants_apure.

write_dta(cout_intrants, 'cout_intrants_apure.dta')
write.csv(cout_intrants, 'cout_intrants_apure.csv')

Manipulation de la troisième base de données Culture

La présente base de données contient les renseignements sur les pratiques culturales des ménages. Elle recense entre autres les systèmes de culture, les types de semences utilisées, les surfaces cultivées et les quantités de produits recoltées par le ménage.

dim(RAG_cultures) 
## [1] 3911   32

La base comporte 3911 observations et 32 variables qui renseignent sur les pratiques culturales des ménages.

names(RAG_cultures)

Après la selection des variables qui seront utilisées dans le cadre de ce projet, celles-ci seront renommées.

Les données de cette base se présentent comme suit:

head(RAG_cultures, n=5) 
tail(RAG_cultures, n=5) 

Selection des variables cles

Dans cette base également, il est nécessaire de selectionner les variables qui vont permettre de calculer le revenu agricole des ménages. Seuls l’identifiant des cultures, l’estimation de la production en kilogramme et l’état de la recolte seront selectionnés.

cultures=RAG_cultures %>%
  select(interview__key, interview__id, grappe, id_menage, vague,s16cq04,s16cq16c,s16cq16d )

Renommage des variables selectionnées

Les variables selectionnées seront renommées dans cette partie.

new_name = c(colnames(cultures)[1], colnames(cultures)[2],colnames(cultures)[3],
              colnames(cultures)[4], colnames(cultures)[5] ,"Id_culture","qte_recoltee_kg","etat_recolte" )
isTRUE(length(new_name)==length(colnames(cultures))) 
## [1] TRUE
colnames(cultures) = new_name
colnames(cultures)
## [1] "interview__key"  "interview__id"   "grappe"          "id_menage"      
## [5] "vague"           "Id_culture"      "qte_recoltee_kg" "etat_recolte"

Les variables choisies ont pris les noms ci-dessus. La variable estimation de la production en kilogramme donne l’equivalent de la production enregistrée selon l’unité de mesure locale en kilogramme. Elle est renommée qte_recoltee_kg.

Visualisation des valeurs manquantes

A ce niveau, il s’agit de visualiser des valeurs manquantes avant de trouver le moyen adéquat pour les corriger.

vis_miss(cultures)

Suppression des valeurs manquantes de la variable Id_culture

Etant donné que nous allons valorisé les récoltes, nous allons donc supprimer les récoltes dont la culture n’a pas été précisée.

cultures = subset(cultures,!is.na(cultures$Id_culture))
vis_miss(cultures)

Pour remplacer les valeurs manquantes de la quantité récoltée, nous calculerons dans la suite la somme des quantités vendues, consommées, offertes, et stockées.

Exportation de la base apurée des récoltes

La base cultures sera alors exportée sous le nom cultures_apure aux formats stata et csv.

write_dta(cultures, 'cultures_apure.dta')
write.csv(cultures, 'cultures_apure.csv')

Manipulation de la quatrième base de données et regroupement de toutes les bases

Cette base donne des informations sur l’utilisation qui a été faite de la production récoltée par les ménages.

dim(RAG_utilisation_prod) 
## [1] 3267   59

La base de données sur l’utilisation de la production est une compilation détaillée de 3267 observations pour 59 variables, recueillies auprès de différents ménages.

names(RAG_utilisation_prod)

Les données de début et de fin de la base se présentent comme suit.

head(RAG_utilisation_prod, n=5) 
tail(RAG_utilisation_prod, n=5) 

Sélectionner des variables d’intérêt

Plusieurs variables seront selectionnées dans cette base de données car elles seront utilisées pour estimer certaines des valeurs manquantes présentes au niveau de quantité recoltée.

utilisation_prod=RAG_utilisation_prod %>%
  select(interview__key, interview__id,grappe,id_menage,vague,s16dq01,s16dq02a, s16dq02b, s16dq02b_autre, s16dq02c, s16dq03a, s16dq03b, s16dq03b_autre, s16dq03c, s16dq04, s16dq05a, s16dq05b, s16dq05b_autre,s16dq05c, s16dq05d, s16dq06, s16dq09, s16dq10, s16dq12, s16dq13a, s16dq13b, s16dq13b_autre, s16dq13c,  s16dq15, s16dq17a, s16dq17b, s16dq17b_autre, s16dq17c)

Dans cette partie on procède au renommage des variables clés choisies.

new_name = c(colnames(utilisation_prod)[1], colnames(utilisation_prod)[2],colnames(utilisation_prod)[3],
              colnames(utilisation_prod)[4], colnames(utilisation_prod)[5], 'Id_culture','qte_consomme','unite1_mesure', 'autre_unite', 'etat_du_produit', 'qte_offerte', 'unite2_mesure', 'autre_unite2', 'etat2_du_produit', 'prod_vendue','qte_vendue', 'unite3_mesure', 'autre_unite3',"estimation_qte_totale" ,'etat3_du_produit', 'montant_vente', 'vente_residue_prod', 'revenu_vente_residue', 'prod_en_stock', 'qte_en_stock','unite4_mesure','autre_unite4', 'etat4_du_produit', 'prod_en_stock_a_vendre', 'qte_en_stock_a_vendre', 'unite5_mesure', 'autre_unite5', 'etat5_du_produit')
isTRUE(length(new_name)==length(colnames(utilisation_prod))) 
## [1] TRUE
colnames(utilisation_prod) = new_name
colnames(utilisation_prod)
##  [1] "interview__key"         "interview__id"          "grappe"                
##  [4] "id_menage"              "vague"                  "Id_culture"            
##  [7] "qte_consomme"           "unite1_mesure"          "autre_unite"           
## [10] "etat_du_produit"        "qte_offerte"            "unite2_mesure"         
## [13] "autre_unite2"           "etat2_du_produit"       "prod_vendue"           
## [16] "qte_vendue"             "unite3_mesure"          "autre_unite3"          
## [19] "estimation_qte_totale"  "etat3_du_produit"       "montant_vente"         
## [22] "vente_residue_prod"     "revenu_vente_residue"   "prod_en_stock"         
## [25] "qte_en_stock"           "unite4_mesure"          "autre_unite4"          
## [28] "etat4_du_produit"       "prod_en_stock_a_vendre" "qte_en_stock_a_vendre" 
## [31] "unite5_mesure"          "autre_unite5"           "etat5_du_produit"

Comme constaté, les variables ont été bien renommées.

Visualisation des valeurs manquantes

Tout comme dans les parties précédentes, les valeurs manquantes seront identifiées puis corrigées.

vis_miss(utilisation_prod)

L’opération qui suit permet de remplacer les quantités vendue et le montant de la vente par 0 si le ménage n’a pas vendu sa production. Si celui-ci n’a pas vendu aussi des résidus de la production alors le revenu qui peut être obtenu de cette vente sera nul. Egalement lorsque le ménage ne possède pas de quantité de production en stock, la quantité de cette production est logiquement nulle mais aussi celle en stock à vendre.

utilisation_prod=utilisation_prod %>% 
              mutate(qte_vendue = ifelse(prod_vendue==2, 0,qte_vendue ),
                     montant_vente=ifelse(prod_vendue==2, 0,montant_vente),
                     revenu_vente_residue=ifelse(vente_residue_prod==2, 0, revenu_vente_residue),
                     prod_en_stock_a_vendre=ifelse(prod_en_stock==2, 2, prod_en_stock_a_vendre),
                     qte_en_stock=ifelse(prod_en_stock==2, 0, qte_en_stock),
                     qte_en_stock_a_vendre=ifelse(prod_en_stock_a_vendre==2, 0,  qte_en_stock_a_vendre))
vis_miss(utilisation_prod)

A la suite de la précédente manipulation, le pourcentage des valeurs manquantes dans la base a baissé.

Suppression des valeurs manquantes de la variable montant_vente

Etant donné que la valorisation dépend du montant de la vente, nous allons supprimer les lignes dont le montant de la vente n’a pas été renseigné.

utilisation_prod= subset(utilisation_prod,
               !is.na(utilisation_prod$montant_vente))
vis_miss(utilisation_prod)

La base sera alors exportée sous format stata et csv sous le nom de utilisation_prod_apure.

write_dta(utilisation_prod, 'utilisation_prod_apure.dta')
write.csv(utilisation_prod, 'utilisation_prod_apure.csv')

Nous allons à présent rassembler les bases parcelles et cultures pour la suite de la valorisation des cultures respectives.

base = merge(parcelles, cultures , by=c("interview__key","Id_culture"), all.x = TRUE)
base=distinct(base)

Ici, nous allons rassembler base et utilisation_prod (car on ne pouvait pas rassembler toutes les bases en même temps).

base2 = merge(base, utilisation_prod, by =c("interview__key","Id_culture"),all.x= TRUE)
base2 = select(base2,-interview__id.y,-grappe.y,-id_menage.y,-vague.y,-interview__id,-grappe,-id_menage,-vague)

Pour les cultures dont nous avons l’estimation totale (déjà en kg), nous allons remplacer les NA au niveau des quantités. Pour les autres, nous ferons la somme des variables comme mentionnées ci-dessus.

base2 = base2 %>% 
mutate(qte_recoltee_kg = ifelse(is.na(qte_recoltee_kg),estimation_qte_totale,qte_recoltee_kg ))

Ici, nous allons supprimer les observations qui ne nous permettent pas d’avoir la quantité récoltée. Il s’agit de supprimer les lignes où les quantités recoltées, consommées, offerte, estimées et en stock sont manquantes.

vars = c("qte_recoltee_kg", "qte_consomme", "qte_offerte", "estimation_qte_totale", "qte_en_stock")
for (row in 1:nrow(base2)) {
  if (all(is.na(base2[row, vars]))){
    base2 = slice(base2, -row)
  }
}

Le principal défi pour valoriser la production agricole dans les enquêtes auprès des ménages est de conserver en unités standards les unités de mesure non-conventionnelles utilisées par les répondants durant les interviews afin d’avoir des quantités beaucoup plus exactes. Pour cette raison, l’exploitation des données nécessite les facteurs de conversion en unités de mesure conventionnelles. Dans le cadre de ce projet, nous n’avons pas à notre disposition ces facteurs de conversion. C’est ainsi que pour les quantités susmentionnées, nous allons convertir celles pour lesquelles nous disposons des equivalents en kilogramme. Pour les autres, en connaissance des eventuelles conséquences sur les résultats, nous allons les considérer comme des quantités également exprimées en kilogramme pour uniformiser les données puis déterminer le prix unitaire par kilogramme pour chaque culture.

Conversion de la quantité consommée en kg

base2=base2 %>% 
      mutate(qte_consomme = ifelse(unite1_mesure==1,qte_consomme,ifelse(unite1_mesure==2,qte_consomme*25,ifelse(unite1_mesure==3,qte_consomme*50,ifelse(unite1_mesure==4,qte_consomme*100,ifelse(unite1_mesure==5,qte_consomme*0.5,ifelse(unite1_mesure==6,qte_consomme,ifelse(unite1_mesure==7,qte_consomme*2,ifelse(unite1_mesure==8,qte_consomme*25,qte_consomme)))))))))

Conversion de la quantité offerte en kg

base2=base2 %>% 
      mutate(qte_offerte = ifelse(unite2_mesure==1,qte_offerte,ifelse(unite2_mesure==2,qte_offerte*25,ifelse(unite2_mesure==3,qte_offerte*50,ifelse(unite2_mesure==4,qte_offerte*100,ifelse(unite2_mesure==5,qte_offerte*0.5,ifelse(unite2_mesure==6,qte_offerte,ifelse(unite2_mesure==7,qte_offerte*2,ifelse(unite2_mesure==8,qte_offerte*25,qte_offerte)))))))))

Conversion de la quantité vendue en kg

base2=base2 %>% 
      mutate(qte_vendue = ifelse(unite3_mesure==1,qte_vendue,ifelse(unite3_mesure==2,qte_vendue*25,ifelse(unite3_mesure==3,qte_vendue*50,ifelse(unite3_mesure==4,qte_vendue*100,ifelse(unite3_mesure==5,qte_vendue*0.5,ifelse(unite3_mesure==6,qte_vendue,ifelse(unite3_mesure==7,qte_vendue*2,ifelse(unite3_mesure==8,qte_vendue*25,qte_vendue)))))))))

Conversion de la quantité stockée en kg

base2=base2 %>% 
      mutate(qte_en_stock = ifelse(unite4_mesure==1,qte_en_stock,ifelse(unite4_mesure==2,qte_en_stock*25,ifelse(unite4_mesure==3,qte_en_stock*50,ifelse(unite4_mesure==4,qte_en_stock*100,ifelse(unite4_mesure==5,qte_en_stock*0.5,ifelse(unite4_mesure==6,qte_en_stock,ifelse(unite4_mesure==7,qte_en_stock*2,ifelse(unite4_mesure==8,qte_en_stock*25,qte_en_stock)))))))))

Conversion de la quantité stockée à vendre en kg

base2=base2 %>% 
      mutate(qte_en_stock_a_vendre = ifelse(unite5_mesure==1,qte_en_stock_a_vendre,ifelse(unite5_mesure==2,qte_en_stock_a_vendre*25,ifelse(unite5_mesure==3,qte_en_stock_a_vendre*50,ifelse(unite5_mesure==4,qte_en_stock_a_vendre*100,ifelse(unite5_mesure==5,qte_en_stock_a_vendre*0.5,ifelse(unite5_mesure==6,qte_en_stock_a_vendre,ifelse(unite5_mesure==7,qte_en_stock_a_vendre*2,ifelse(unite5_mesure==8,qte_en_stock_a_vendre*25,qte_en_stock_a_vendre)))))))))

A présent nous allons calculer les quantités récoltées pour les observations pour lesquelles nous n’avons pas l’estimation.

base2=base2 %>%
  mutate(qte_recoltee_kg = ifelse(is.na(qte_recoltee_kg),ifelse(is.na(qte_consomme), 0, qte_consomme) + ifelse(is.na(qte_en_stock), 0, qte_en_stock) + ifelse(is.na(qte_vendue), 0, qte_vendue) + ifelse(is.na(qte_offerte), 0, qte_offerte),qte_recoltee_kg))

Calcul des prix unitaires

Les prix unitaires seront utilisés pour la valorisation de la production de chaque ménage.

base2$prix_unitaire = base2$montant_vente/base2$qte_vendue
prix = subset(base2,select=c(Id_culture,prix_unitaire,etat3_du_produit))

# Extraction des prix sans NA et sans doublons
prix <- prix[complete.cases(prix$prix_unitaire), ]
prix = distinct(prix)

Moyenne des prix suivant l’état de la culture vendue et son identifiant

prix <- prix %>%
  group_by(etat3_du_produit, Id_culture) %>%
  summarise(moyenne_prix = mean(prix_unitaire))
## `summarise()` has grouped output by 'etat3_du_produit'. You can override using
## the `.groups` argument.

Extraction du prix suivant les cultures sans leur état

culture_prix = prix %>%
  group_by(Id_culture) %>%
  summarise(moyenne_prix = mean(moyenne_prix))

Extraction des revenus issus de la vente des résidus des cultures suivant les ménages

revenus_residus = subset( base2, select=c(interview__key,revenu_vente_residue))

revenus_residus <- revenus_residus %>%
  group_by(interview__key) %>%
  summarise(somme_revenus_residus = sum(revenu_vente_residue))

Nous allons renommer l’état des cultures pour pouvoir rassembler les deux bases afin de valoriser les récoltes.

cultures <- cultures %>%
  rename(etat = etat_recolte)

prix <- prix %>%
  rename(etat=etat3_du_produit)

Valorisation de la récolte pour chaque culture pratiquée par le ménage

recolte_val= merge(cultures, prix, by= c("Id_culture"), all.x = TRUE)
recolte_val$valeur = recolte_val$qte_recoltee_kg*recolte_val$moyenne_prix

Valorisation totale par ménage

recolte_val <- recolte_val %>%
  group_by(interview__key) %>%
  summarise(somme_valeur = sum(valeur))

Création des bases pour calculer le revenu final

revenu_agri= merge(recolte_val,cout_intrants,by="interview__key",all.x=TRUE)
revenu_to = merge(revenu_agri,revenus_residus, by="interview__key", all.x = TRUE)

Calcul du revenu final

revenu_to = revenu_to %>%
 mutate(revenu_total_calcul= ifelse(is.na(somme_valeur),0,somme_valeur) - ifelse(is.na(montant_menage),0,montant_menage) + ifelse(is.na(somme_revenus_residus),0,somme_revenus_residus))

Sélection

Pour une analyse plus pertinente, nous retiendrons les ménages pour lesquelles nous avons obtenus les récoltes.

selection= subset(revenu_to,
               !is.na(revenu_to$somme_valeur))

A présent, le résultat final sera consulté pour voir le revenu estimé des ménages enquetés.

head(selection, 5)

Exportation de la base avec les revenus agricoles

write_dta(cout_intrants, 'selection.dta')

write.csv(cout_intrants, 'selection.csv')
menages_revenu_positf=subset(selection, revenu_total_calcul>0)

Analyse descriptive des variables d’interet

L’analyse descriptive, univariée ou bivariée, des variables est une étape importante dans une analyse de données car elle permet de comprendre et de résumer les caractéristiques des variables avant d’effectuer des analyses plus avancées.

Analyse descriptive univariée

L’analyse descriptive univariée des variables permet d’avoir une compréhension approfondie de chaque variable prise individuellement.

Dans un premier temps, on va décrire les couts d’intrants supportés par les ménages dans leurs activités de production.

Couts d’intrants
summary(cout_intrants$montant_menage)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       0       0       0   23700       0 6719500

Les ménages supportent en moyenne 23700 fcfa pour l’acquisition des intrants utilisés dans le processus de production. Les trois quart des ménages ayant été enquêtés ne dépensent rien dans l’achat des intrants. Cela peut s’expliquer par le fait que les ménages obtiennent souvent des dons d’intrants de la part de l’Etat, des ONG, des associations,etc.

hist(cout_intrants$montant_menage, freq = TRUE ,
     main = "Couts des intrants agricoles", 
     xlab = "Montant")

Comme nous pouvons le voir, les ménages qui n’achetent pas les intrants sont beaucoup plus nombreux que ceux qui en achetent.

Revenu obtenu par la vente des résidus de production

Après la recolte, les ménages vendent souvent certains résidus de leurs productions pour en tirer des revenus.

summary(selection$somme_revenus_residus)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##       0       0       0   14608       0 2000000       2

Le montant moyen tiré de la vente des résidus de production par les menages s’éleve à 14608 fcfa. Le montant le plus élevé obtenu de cette vente est 2000000 cfa. Seulement 25% des ménages tirent des revenus de cette vente.

Revenu total obtenu

A la suite de la valorisation des quantités produites, nous avons ajouté à cette valeur le revenu tiré de la vente des résidus de production puis nous avons retranché les couts supportés par le ménage. Cela nous a permis de calculer le revenu agricole des ménages.

mean(menages_revenu_positf$revenu_total_calcul)
## [1] 7349998
median(menages_revenu_positf$revenu_total_calcul)
## [1] 835545.2

Le revenu agricole moyen des ménages pour lesquels la production a pu être valorisée est de 7349998 fcfa. Une moitié a obtenu un revenu inférieur à 835545.2 fcfa et l’autre moitié en a obtenu plus.

Analyse descriptive bivariée

L’analyse descriptive bivariée des variables vise à explorer les relations et les associations entre deux variables à la fois.

Les variables d’intérêt utilisées pour le calcul du revenu agricole qui sont les quantités produites, consommées, offertes et stock ont un lien entre elles. La multitude de cultures qui sont pratiquées ne permettent pas d’avoir une analyse bivariée assez riche et commode. Il sera alors question de voir seulement le comportement des prix selon les états dans lesquels la production a été valorisée.

boxplot(moyenne_prix ~ etat3_du_produit, data = prix)

Selon l’état de la production, en épis, grains…, le constat est que le prix de la production ne varie que très peu comme le montre le graphique ci-dessus.

Conclusion

Dans ce projet, nous avons apuré les bases ayant permis le calcul du revenu agricole des ménages puis nous avons analysé la distribution des revenus agricoles des ménages en utilisant des mesures de tendance centrale (moyenne, médiane) . Ces mesures nous ont permis de comprendre la répartition des revenus agricoles.

L’étude nous a permis de calculer le revenu agricole des ménages et de comprendre les facteurs qui l’influencent. Nous avons constaté que des variables telles que les quantités produites, consommées, offertes, stock les couts des intrants jouent un rôle important dans la détermination du revenu agricole des ménages.