INSTALLATION
#install.packages("GGally")
#install.packages("foreign")
#install.packages("ggplot2")
#install.packages("ggmosaic")
library(foreign)
library(ggplot2)
BaseEmploi=read.dta("BaseEmploi_VF.dta")
head(BaseEmploi)
le nombre de variable null
sum(is.na(BaseEmploi))
## [1] 4
Vu qu’on a que 4 variale nulles, on peut directement les supprimées
BaseEmploiClean = na.omit(BaseEmploi)
str(BaseEmploi)
## 'data.frame': 1000 obs. of 12 variables:
## $ Sexe : Factor w/ 2 levels "Masculin","F\xe9minin": 1 1 1 1 2 2 2 2 1 2 ...
## $ Age : Factor w/ 100 levels "0","1","2","3",..: 29 35 31 17 28 19 21 22 19 17 ...
## $ Region : Factor w/ 14 levels "DAKAR","ZIGUINCHOR",..: 5 6 5 2 3 4 10 1 6 3 ...
## $ Emploi_du_mom: num 0 1 1 0 0 0 0 0 0 0 ...
## $ Milieu : Factor w/ 2 levels "urbain","rural": 2 1 2 2 1 2 2 2 1 1 ...
## $ NivInstru : Factor w/ 4 levels "Aucun","Primaire",..: 1 1 1 3 3 1 1 1 3 2 ...
## $ StatEmploi : Factor w/ 7 levels "SalaPubli","SalaPrivé",..: 7 2 5 7 7 7 7 7 7 7 ...
## $ AgeCM : num 61 50 81 45 50 34 58 72 57 48 ...
## $ SexCM : Factor w/ 2 levels "Homme","Femme": 1 2 1 2 2 1 1 1 1 2 ...
## $ InstruiCM : Factor w/ 4 levels "Aucun","Primaire",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ StatEmploiCM : Factor w/ 7 levels "SalaPubli","SalaPrivé",..: 7 4 7 2 7 7 7 5 4 4 ...
## $ Tailmng : Factor w/ 3 levels "Petit","Moyen",..: 3 2 3 3 2 1 2 3 3 1 ...
## - attr(*, "datalabel")= chr ""
## - attr(*, "time.stamp")= chr "16 Oct 2021 19:12"
## - attr(*, "formats")= chr "%8.0g" "%8.0g" "%11.0g" "%9.0g" ...
## - attr(*, "types")= int 251 251 251 254 251 254 254 254 254 254 ...
## - attr(*, "val.labels")= chr "B3" "B4" "reg" "" ...
## - attr(*, "var.labels")= chr "B3. Sexe" "B4. Age (indiquer les ann\xe9es r\xe9volues)" "region" "Emploi_du_mom" ...
## - attr(*, "expansion.fields")=List of 5
## ..$ : chr "Region" "destring" "Characters removed were:"
## ..$ : chr "_dta" "_lang_list" "default"
## ..$ : chr "_dta" "_lang_c" "default"
## ..$ : chr "Milieu" "destring" "Characters removed were:"
## ..$ : chr "Milieu" "destring_cmd" "destring milieu, replace"
## - attr(*, "version")= int 12
## - attr(*, "label.table")=List of 8
## ..$ emp : Named int 1 2 3 4 5 6 7
## .. ..- attr(*, "names")= chr "SalaPubli" "SalaPrivé" "Employeurs" "IndeNonAgri" ...
## ..$ tail: Named int 1 2 3
## .. ..- attr(*, "names")= chr "Petit" "Moyen" "Grand"
## ..$ Niv : Named int 0 1 2 3
## .. ..- attr(*, "names")= chr "Aucun" "Primaire" "Secondaire" "Superieur"
## ..$ sex : Named int 1 2
## .. ..- attr(*, "names")= chr "Homme" "Femme"
## ..$ mil : Named int 1 2
## .. ..- attr(*, "names")= chr "urbain" "rural"
## ..$ B3 : Named int 1 2
## .. ..- attr(*, "names")= chr "Masculin" "F\xe9minin"
## ..$ B4 : Named int 0 1 2 3 4 5 6 7 8 9 ...
## .. ..- attr(*, "names")= chr "0" "1" "2" "3" ...
## ..$ reg : Named int 1 2 3 4 5 6 7 8 9 10 ...
## .. ..- attr(*, "names")= chr "DAKAR" "ZIGUINCHOR" "DIOURBEL" "SAINT-LOUIS" ...
conversion de la variable age en numérique et la variable Emploi_du_mom en facteur pour pouvoir effectuer les calcules suivantes
BaseEmploiClean$Age = as.numeric(BaseEmploiClean$Age)
BaseEmploiClean$Emploi_du_mom =as.factor(BaseEmploiClean$Emploi_du_mom)
aggregate(BaseEmploiClean$Age, list(BaseEmploiClean$Sexe,BaseEmploiClean$NivInstru,BaseEmploiClean$Region), FUN=mean)
aggregate(BaseEmploiClean$Age,list(BaseEmploiClean$Sexe,BaseEmploiClean$NivInstru,BaseEmploiClean$Region), FUN=median)
library(ggmosaic)
levels(BaseEmploiClean$NivInstru) <- c("Auc","Pri", "Snd","Sup")
levels(BaseEmploiClean$Sexe) <- c("M", "F")
ggplot(data = BaseEmploiClean) +
geom_mosaic(aes(x = product(Region, NivInstru), fill =Sexe )) +
xlab("") + ylab("") +
theme(legend.position = "top")
ggplot(BaseEmploiClean) +
aes(x = BaseEmploiClean$Region) +
geom_bar(fill ="green") +
ggtitle("La répartition des jeunes selon la Region ") +
xlab("Region") +
ylab("Effectifs")
ggplot(BaseEmploiClean) +
aes(x = BaseEmploiClean$Sexe) +
geom_bar(fill ="green", colour = "black") +
ggtitle("La répartition des jeunes selon le sexe") +
xlab("sexe") +
ylab("Effectifs")
ggplot(BaseEmploiClean) +
aes(x = BaseEmploiClean$NivInstru) +
geom_bar(fill ="green", colour = "black") +
ggtitle("La répartition des jeunes selon le niveau d'instruction") +
xlab("le niveau d'instruction") +
ylab("Effectifs")
ggplot(BaseEmploiClean) +
aes(x = BaseEmploiClean$StatEmploi,fill = BaseEmploiClean$Sexe) +
geom_bar(position ='fill') +
ggtitle("La répartition des jeunes selon le statut dans l’emploi et sexe")+
xlab("le statut dans l’emploi") +
ylab("Effectifs")
ggplot(BaseEmploiClean) +
aes(x = BaseEmploiClean$StatEmploi,fill = BaseEmploiClean$NivInstru) +
geom_bar(position ='fill') +
ggtitle("La répartition des jeunes selon le statut dans l’emploi et le niveau d’instruction")+
xlab("le statut dans l’emploi") +
ylab("Effectifs")
ggplot(BaseEmploiClean) +
aes(x = BaseEmploiClean$StatEmploi,fill = BaseEmploiClean$InstruiCM) +
geom_bar(position ='fill') +
ggtitle("La répartition des jeunes selon le statut dans l’emploi et le niveau d’instruction du chef de ménage") +
xlab("le statut dans l’emploi") +
ylab("Effectifs")
l’analyse multidimensionnel permet détudier plusieurs variables simultanément en donnant une description globale sur les variables et les individus
Il s’agit d’étudier un tableau d’individus x variables où toutes les variables sont quantitatives.
Il s’agit d’une technique de représentation des données qui décrit les similitudes/différences entre les individus et les liaisons entre les variables .
elle permet d’obtenir une représentation des individus en fonction de leurs proximités et une représentation des variables en fonction de leurs corrélations.
Permet de visualiser des données qualitatives
L’AFC est une généralisation de l’ACP adaptée au traitement de données qualitatives.
Il se présente sous la forme d’un tableau de contingence ou d’un tableau formé d’individus décrits par des caractères qualitatifs.
Etude des éventuelles relations existant entre les modalités de deux variables qualitatives.
Les deux variables doivent être dépendantes.
Le but est de représenter graphiquement (géométriquement) les similitudes entre les différentes modalités d’une même variable (deux analyses : profils-lignes etprofils-colonnes.
ACM est une généralisation de l’AFC L’Analyse des Correspondances Multiples (ACM) permet l’analyse d’un tableau individus x variables lorsque les variables sont qualitatives.
Elle consiste à effectuer une analyse des correspondances du tableau disjonctif complet, obtenu en remplaçant dans le tableau d’origine chaque variable qualitative l’ensemble des variables indicatrices des différentes modalités de cette variable.
Pour mieux interpréter notre base de donnée, nous choississons ACM (Analyse des correspondances multiples)
Justification
Parce que La base étudiée ici est composée de variables qualitatives dont la dimension est supérieur à 2
## Loading required package: FactoMineR
## Loading required package: shiny
## Loading required package: FactoInvestigate
Voici notre premiére résultat de notre étude
on constate que le niveau d’instruction est mieux représenté sur l’axe 1 suivi du milieu(urbain,rural) sur l’axe 2, Statut dans l’emploi est bien représenté suivi de Emploi_du_mom
res.MCA<-MCA(BaseEmploiClean,quanti.sup=c(2,8),graph=FALSE)
plot.MCA(res.MCA,invisible= 'ind',label =c('var'))
## Warning: ggrepel: 19 unlabeled data points (too many overlaps). Consider
## increasing max.overlaps
plot.MCA(res.MCA, choix='var')
Les individus se sont répartis en deux groupes du long de l’axe 2
plot.MCA(res.MCA,invisible= 'var',label =c('ind'))
Pour mieux interpréter ce résultat, on va paramétrer notre model afin de voir quels sont les individus qui sont en haut et en bas suivant l’axe 2 et de droit à gauche suivant l’axe 1
Affichons que les modalités qui contribus de plus suivant les deux axes
plot.MCA(res.MCA,invisible= 'ind',select= 'contrib 336',selectMod= 'cos2 0.2',cex=0.75,cex.main=0.75,cex.axis=0.75,label =c('var'))
Le résultat nous permet de conclure que de gauche à droite suivant l’axe 1 se trouvent les personnes dont le niveau d’instruction est aucun et d’autre de niveau d’instruction secondaire ou supérieur.
On constate que les personnes habitants dans le milieu rural ont plus de niveau d’instruction aucun que celles habitants en zone urbain qui sont plus proches du secondaire
Sur l’axe 2 opposent des personnes qui ont de l’emploi et des personne sans emploi
La régien de Sédhiou a plus de chomage parcontre Diourbel est une région ou il y a moins de chomage
On voit que l’axe 2 représente bien la variable age, par concequent les plus agés ont souvent des emplois par rapport au moins agés
plot.MCA(res.MCA, choix='quanti.sup',title="Supplementary quantitatives variables")
3. Faire une petite note de rappel des différentes méthodes de classification vues en classe.
La régression logistique est un modèle statistique permettant d’étudier les relations entre un ensemble de variables qualitatives Xi et une variable qualitative Y. Il s’agit d’un modèle linéaire généralisé utilisant une fonction logistique comme fonction de lien.
l’arbre de décision permet de représenter un ensemble de choix sous la forme graphique d’un arbre. C’est une des méthodes d’apprentissage supervisé les plus populaires pour les problèmes de classification de données.
Concrètement, un arbre de décision modélise une hiérarchie de tests pour prédire un résultat. Il existe deux principaux types d’arbre de décision :
Les arbres de régression (Regression Tree) permettent de prédire une quantité réelle, une valeur numérique (par exemple, le prix d’une maison ou la durée de séjour d’un patient dans un hôpital) ; Les arbres de classification (Classification Tree) permettent de prédire à quelle classe la variable de sortie appartient (cela permet par exemple de répartir une population d’individus, comme le cas de notre dataset, on peut predire des personnes employées et nom employées).
4. A partir d’une méthode de classification (choix à justifier), faire le regroupement des jeunes en plusieurs classes homogènes. Pour faire la classification des jeunes, nous utiliserons l’arbre de décision
Justification
Un arbre de décision est un modèle très simple. Etant donnée plusieurs caractéristiques, la décision se commence par un de ces caractéristiques; si ce n’ai pas suffisant, on utilise une autre, ainsi de suite. Il est largement connu et utilisé dans de nombreuses entreprises pour faciliter le processus de prise de décision et l’analyse des risques. C’est aussi un algorithme qui est facile à interpreter.
Dans notre cas, on peut utiliser l’arbre de décision binaire pour separer les jeunes employés et non employés
Nous avoms deux classes Emploi_du_mom: Oui ou Non c’est à dire si la personne est employés ou non
Résultat avec Factoshiny
res.PCA<-PCA(BaseEmploiClean,ncp=Inf, scale.unit=FALSE,quali.sup=c(1,3,4,5,6,7,9,10,11,12),graph=FALSE)
res.HCPC<-HCPC(res.PCA,nb.clust=2,consol=FALSE,graph=FALSE)
plot.HCPC(res.HCPC,choice='map',draw.tree=FALSE,title='Factor map')
D’aprés l’analyse de correspondance multiple, on constate que des variables age, sexe et région sont des critères déterminant sur l’employabilité des jeunes
Pour mieux illustrer cela, on va faire une analyse descriptive par rapport à la critère d’employabilité
On voit clairement que les hommes sommes sont doublement employés par rapport au femmes
Certaine région on un taux trés faible sur l’employabilité de leurs jeunes comme le cas de Sédhiou. Par contre les région comme Diourbel, Dakar ont plus de jeunes en emploi
On constate aussi que l’age aussi fait partir des facteurs déterminants sur l’employabilité des jeunes. Car la moitié des jeunes entre 28 et 35 sont des employés par rapport au jeunes comprises entre 15 et 27 qui ont un taux trés faible en employabilités
La régression logistique est l’un des algorithmes d’apprentissage automatique les plus couramment utilisés pour les problèmes de classification binaire, lesquels ont deux valeurs par classe, comprenant des prédictions telles que “employé ou non employé”, “oui ou non” .
Le but de la régression logistique est d’estimer les probabilités des événements et de déterminer une relation entre les caractéristiques et les probabilités de résultats particuliers.
Par exemple, on peut prédire si un étudiant réussira ou échouera à un examen lorsque le nombre d’heures consacrées à l’étude est fourni en tant que caractéristique et que les variables de la réponse ont deux valeurs : réussite et échec.
Dans notre cas, on peut prédire si un individu donné a un emploi ou non
la regression linéaire se base sur la théorie des probabilités en modélisant directement la probabilité en posteriorie
mymodel <- glm(BaseEmploiClean$Emploi_du_mom ~BaseEmploiClean$Sexe+BaseEmploiClean$Age+BaseEmploiClean$Milieu+BaseEmploiClean$NivInstru+BaseEmploiClean$AgeCM+BaseEmploiClean$Region, data = BaseEmploiClean, family = 'binomial')
summary(mymodel)
##
## Call:
## glm(formula = BaseEmploiClean$Emploi_du_mom ~ BaseEmploiClean$Sexe +
## BaseEmploiClean$Age + BaseEmploiClean$Milieu + BaseEmploiClean$NivInstru +
## BaseEmploiClean$AgeCM + BaseEmploiClean$Region, family = "binomial",
## data = BaseEmploiClean)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.1144 -0.6764 -0.4131 0.5517 2.4870
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.517010 0.656103 -5.360 8.30e-08 ***
## BaseEmploiClean$SexeF -1.265260 0.194927 -6.491 8.53e-11 ***
## BaseEmploiClean$Age 0.151587 0.015914 9.525 < 2e-16 ***
## BaseEmploiClean$Milieurural -0.436939 0.182544 -2.394 0.016683 *
## BaseEmploiClean$NivInstruPri -0.247706 0.266153 -0.931 0.352014
## BaseEmploiClean$NivInstruSnd -0.855944 0.217526 -3.935 8.32e-05 ***
## BaseEmploiClean$NivInstruSup -1.173452 0.464110 -2.528 0.011459 *
## BaseEmploiClean$AgeCM 0.007903 0.008811 0.897 0.369747
## BaseEmploiClean$RegionZIGUINCHOR -0.230809 0.401428 -0.575 0.565312
## BaseEmploiClean$RegionDIOURBEL -0.307770 0.418050 -0.736 0.461606
## BaseEmploiClean$RegionSAINT-LOUIS -0.643324 0.361461 -1.780 0.075110 .
## BaseEmploiClean$RegionTAMBACOUNDA -0.863637 0.392906 -2.198 0.027944 *
## BaseEmploiClean$RegionKAOLACK -0.490841 0.352449 -1.393 0.163724
## BaseEmploiClean$RegionTHIES -0.049342 0.366488 -0.135 0.892901
## BaseEmploiClean$RegionLOUGA -0.054410 0.378263 -0.144 0.885626
## BaseEmploiClean$RegionFATICK -0.686872 0.399021 -1.721 0.085180 .
## BaseEmploiClean$RegionKOLDA -1.513492 0.437164 -3.462 0.000536 ***
## BaseEmploiClean$RegionMATAM -2.313130 0.574418 -4.027 5.65e-05 ***
## BaseEmploiClean$RegionKAFFRINE -0.842447 0.412729 -2.041 0.041234 *
## BaseEmploiClean$RegionKEDOUGOU 0.076731 0.489240 0.157 0.875373
## BaseEmploiClean$RegionSEDHIOU -3.442420 1.068260 -3.222 0.001271 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1149.7 on 998 degrees of freedom
## Residual deviance: 873.6 on 978 degrees of freedom
## AIC: 915.6
##
## Number of Fisher Scoring iterations: 6
D’aprés le résultat du model logistique, on confirme directement que l’age et le sexe sont des meilleurs facteur déterminant sur l’employabilité des jeunes avec un p-value < 0.001
On voit aussi quelque modalités sur le niveau d’instruction(secondaire) et région(Sedhiou,matam) qui sont des facteur déterminant