Vous êtes sur la page 1sur 44

Filière d’Ingénieur CI1 :

Génie du big data et intelligence artificielle

Rapport de fouille de données

Prévision de la variation du chômage au Maroc

Préparé par :
AHNIN CHAIMAA
BNYICHE MOUNA
BOUHNAS CHAYMAE
EDDAOUDY AYA
EL ALAMI NIHAD

Proposé par :
YASSINE AL AMRANI

Année universitaire : 2023-2024


Dédicaces
On a le plaisir d’offrir ce modeste travail :

A nos très chers parents

Qui se sont sacrifiés pour nous prendre en charge tout au long de notre formation et qui sont à

l'origine de notre réussite.

Vous nous avez toujours offert l’amour et la tendresse, vous avez éclairé nos chemins.

Que Dieu le tout puissant vous préserve et vous procure une santé et une longue vie.

À nos adorables amis

Vous étiez toujours là pour nous, vous nous avez aimé sans retour.

Que Dieu vous protège.

2
Remerciements

« Parfois notre lumière s'éteint, puis elle est


rallumée par un autre être humain.
Chacun de nous doit de sincères
remerciements à ceux qui
ont ravivé leur flamme »
Albert Schweitzer

Avant de commencer notre présentation, et après avoir rendu grâce à Dieu le Tout
Puissant et le Miséricordieux, nous profitons l’occasion pour remercier du fond du cœur
toute personne qui a contribué de près ou de loin à la réalisation de ce travail. Nous
témoignons notre profonde gratitude à notre professeur YASSINE AL AMRANI, pour
nous avoir accordé l’opportunité d’effectuer ce projet, et en tant que notre encadrant,
pour les conseils, son aide et son soutien. Et aussi à tous les étudiants de l’ENSATE qui
ont contribué à la réalisation de cette enquête en accordant leur temps à notre
questionnaire.

3
Table des matières

Dédicaces…………………………………………………………………………. 2
Remerciements…………………………………………………………………… 3
Introduction ………………………………………………………………………. 5
Collecte des données …………………………………………………………... 7
Prétraitement …………………………………………………………………….. 8
Exploration ……………………………………………………………………….. 8
Modélisation ……………………………………………………………………... 12
Résultats de prédiction ………………………………………………………… 33
Conclusion ……………………………………………………………………….. 44

4
Introduction

Le Maroc, comme de nombreux autres pays, est confronté à des défis socio-
économiques, parmi lesquels le chômage demeure une préoccupation majeure. La
fluctuation et la prédiction des taux de chômage sont des aspects cruciaux pour les
décideurs politiques, les économistes et les chercheurs, dans le but de comprendre,
d'anticiper et de mitiger les effets économiques et sociaux qui en découlent.

Le Haut-Commissariat au Plan définit les "chômeurs" comme faisant partie de la


population active, regroupant les individus âgés de 15 ans et plus qui ne sont pas
actuellement engagés dans une activité professionnelle et qui cherchent activement
un emploi.

Les chômeurs comprennent toutes les personnes ayant dépassé un âge spécifié et qui,
au cours de la période de référence, étaient :

• Sans travail : C'est-à-dire qui n'étaient pourvues ni d'un emploi salarié, ni d'un
emploi non salarié.
• Disponible pour travailler: Dans un emploi salarié durant le péri- ode de
référence.
• A la recherche d'un travail: C'est-à-dire qui avaient pris des dispositions
spécifiques au cours d'une période récente spécifique pour chercher un emploi
salarié ou non salarié. Ces dispositions spécifiques peuvent inclure: l'inscription
a un bureau de placement public ou privé; la candidature auprès d'employeurs;
les démarches sur les lieux de travail, dans les fermes ou à la porte des usines,
sur les marchés ou dans les autres endroits où sont traditionnellement recrutés
les travailleurs; l'insertion ou la réponse à des annonces dans les journaux, les
recherches par relations personnelles. la recherche de terrains, d'immeubles de
machines, ou d'équipement pour créer une entreprise personnelle; les
démarches pour obtenir des ressources financières des permis et licences …

Le chômage peut découler de diverses causes, parmi lesquelles:

• La crise économique :
Le chômage évolue à l'inverse de la croissance:
si la croissance baisse, alors le chômage progresse.
si la croissance monte, alors le chômage baisse.

• La pression démographique :

Une population jeune qui connaît une explosion démographique demande la création
d'important poste de travail et donc des investissements créateur d'emplois
considérable. Si on n'a pas les moyens d'effectuer ces investissements la majorité de

5
la population active serait en chômage. C’est le cas des pays en voie de
développement.

• La substitution du capital au travail :

Le chômage ici résulte du progrès technique qui remplace l'homme par la


machine ce qui entraîne une insuffisance et un manque d'offre d'emploi.

Le taux de chômage au Maroc est passé, entre le troisième trimestre de 2022 et celui
de 2023, de 11,4% à 13,5% au niveau national, passant de 15% à 17% en milieu urbain
et de 5,2% à 7% en milieu rural. Les taux les plus élevés demeurent ceux parmi les
jeunes âgés de 15 à 24 ans, enregistrant 38,2%, les femmes 19,8% et les diplômés
19,8%. Dans les villes, le taux de chômage des jeunes atteint un nouveau pic historique
à 49,7%.

A 13,5%, le taux de chômage national dépasse également tout ce que le Maroc a connu
auparavant (depuis 2006, date des statistiques détaillées les plus anciennes
disponibles).

Le volume de sous-emploi a connu, de son côté, une hausse de 94.000 personnes pour
se situer à 1.005.000 personnes. Le taux de sous-emploi est ainsi passé de 8,5% à 9.6%
au niveau national, de 7,5% à 8,1% en milieu urbain et de 9,9% à 12% en milieu rural.

Alors quelles sont les perspectives quant à l'évolution du taux de chômage au Maroc
dans les années à venir ?

6
Collecte des données
Au cours de la phase de collecte de données, une base de données en ligne a
été identifiée sur le site https://www.hcp.ma/, ce qui confère un caractère de données
secondaires à notre approche. Le choix de cette base de données s'est fondé sur
plusieurs critères pertinents qui sont susceptibles d'améliorer considérablement la
précision de nos prédictions. Tout d'abord, ces données offrent une vue détaillée et
actualisée de la situation économique du pays, permettant une analyse approfondie de
l'évolution du chômage au fil du temps. De plus, la fiabilité et la rigueur des données
du HCP sont reconnues, ce qui confère à nos analyses une base solide et crédible. En
utilisant ce jeu de données officiel, nous pourrons également bénéficier de sa
complétude et de sa précision, offrant ainsi des résultats fiables pour éclairer notre
projet sur les dynamiques économiques et sociales du Maroc. Voici les données dont
nous disposons :
Tableau 1: Base de données

Ayant un Ayant un
Sans diplôme: diplôme: 45 et
Trimestres Urbain Rural Masculin Féminin 15 - 24 25 - 34 35 - 44
diplôme Niveau Niveau plus
moyen supérieur
2023T3 17 7 11,7 19,8 5,6 14,3 21,5 38,2 20,9 8,1 3,7

2023T2 16,3 5,7 11 17 4,6 14,2 21 33,6 19,8 7,2 3,6

2023T1 17,1 5,7 11,5 18,1 5 14,9 21,7 35,3 20,9 7,1 3,8

2022T4 16,6 6,6 11,2 18,8 4,8 14,3 22,2 35,7 20,6 6,7 3,5

2022T3 15 5,2 9,5 17,8 4,3 11,7 19,4 31,7 18,4 6,4 3,1

2022T2 15,5 4,2 9,9 15,1 3,8 12,9 20,2 30,2 18,7 6,1 2,9

2022T1 16,3 5,1 10,5 17,3 4,6 13,1 21,9 33,4 19,2 6,5 3,6

2021T4 16,5 4,5 10,4 17,3 3,6 13,8 22,7 32,7 19,1 6,7 3,2

2021T3 16 5,2 10,4 16,5 4,6 13,6 20,8 31 18,8 6,3 3,7

2021T2 18,2 4,8 11,9 15,9 5,1 16,1 22,8 30,8 20,9 7,7 4,3

2021T1 17,1 5,3 10,9 17,5 4,9 14,3 22 32,5 19,6 7,4 3,9

2020T4 16,3 5,9 10,7 17,7 5,1 14,1 21,8 32,6 18,7 6,8 4,3

2020T3 16,5 6,8 11,4 17,6 7,1 14,4 19,2 32,3 19,5 8 4,4

2020T2 15,6 7,2 11,3 15,6 7,1 14,7 17,9 33,4 18,2 7,7 4,4

2020T1 15,1 3,9 9,3 14,3 3,7 12,9 19,7 26,8 17,7 5,3 2,6

2019T4 14,3 4,1 8,5 15,3 3,3 12,1 18,7 28 16,2 5,3 2,3

2019T3 12,7 4,5 8 13,9 3,8 11,1 16 26,7 15 4,6 2,1

2019T2 11,7 3 7,2 11,1 2,7 10,1 16,1 22,2 13,8 3,7 1,8

2019T1 13,3 3,1 7,7 13,4 3 10,3 18,8 22,9 15,4 4,3 1,8

2018T4 13,4 3,5 7,7 14,9 2,9 11,6 16,4 25,6 14,7 4,4 2,2

2018T3 13,1 3,9 8,2 13,1 3,6 11,6 17,2 26,2 14,7 4,4 1,9

2018T2 13,6 3,3 8 13 3,1 11,9 17,9 24,3 15,3 4,3 1,8

2018T1 15,6 3,5 8,9 15,1 4 12,5 19,6 25,7 16,7 5,5 2,5

7
2017T4 15,1 4,3 9 15,7 3,9 13,4 18,4 28,2 15,9 4,8 2,5

2017T3 14,9 4,6 9,2 15,1 4,2 13,3 18,9 29,3 15,6 5,5 2,3

2017T2 14 3,2 8 13,2 3,3 12,3 17 23,5 14,6 4,4 2,2

2017T1 15,7 4,1 9,4 14,7 4,5 13,6 19 25,5 16,6 6,3 2,6

2016T4 13,3 4 8,4 10,6 3,5 12 19,6 22,8 12,8 4,4 2,2

2016T3 14,3 4,3 9,1 11 4,1 14 18,1 21,8 13,8 4,8 3,3

2016T2 12,8 3,7 8,1 9,9 4,1 12 16,1 21,5 11,8 4,6 2,4

2016T1 14,6 4,5 9,6 11,2 4,7 14,6 17,6 23 14,7 5,3 2,8

2015T4 14,1 3,5 8,7 10,5 3,7 13,3 19,1 20 13,9 4,9 2,1

2015T3 15,1 4,3 9,6 11,1 4,8 15,2 17,1 21,4 14,5 5,6 3

2015T2 13,4 3,3 8,6 9 4,1 12,9 18,1 20,5 11,9 5,1 2,4

2015T1 14,3 4,7 9,5 11 5 15,1 16,2 21,3 14,1 5,5 3,4

Prétraitement des données


La base de données dont nous disposons semble être de très bonne qualité, car elle ne
contient pratiquement aucune information manquante. Cela suggère que les données
ont été collectées et enregistrées avec soin, sans oublier des détails importants.
Exploration des données
1. Statistique descriptive
La statistique descriptive effectuée sur la base de données offre un aperçu approfondi
de ses caractéristiques principales. En examinant les mesures centrales telles que la
moyenne, la médiane et le mode, nous avons pu identifier les tendances centrales des
variables numériques, fournissant ainsi des indices sur la distribution des valeurs. De
plus, l'écart-type nous a renseignés sur la dispersion des données autour de la
moyenne, offrant des perspectives sur la variabilité des observations. Les graphiques
et les diagrammes générés ont également enrichi notre compréhension en permettant
une visualisation claire des schémas et des relations entre les variables.
Statist. Urbain Rural Masculin Féminin Sans Ayant un Ayant un 15 - 24 25 - 34 35 - 44 45 et
diplôme diplôme: diplôme: plus
Niveau Niveau
moyen supérieur
count 35 35 35 35 35 35 35 35 35 35 35
mean 14,98299 4,585636 9,514043 14,54641 4,290318 13,20457 19,16206 27,73065 16,65924 5,760761 2,931421
std 1,521226 1,136156 1,323481 2,870477 0,997124 1,418892 2,060034 5,093105 2,698223 1,232192 0,811736
min 11,7 3 7,2 8,997023 2,7 10,1 16 20 11,8 3,7 1,8
25% 13,8 3,8 8,45 12,1 3,65 12,05 17,75 22,95 14,65 4,7 2,25
50% 15,1 4,3 9,4 15,1 4,1 13,3 19 26,8 16,2 5,5 2,8
75% 16,3 5,2 10,6 17,15 4,8 14,3 20,9 32,4 18,95 6,7 3,6
max 18,2 7,2 11,9 19,8 7,1 16,1 22,8 38,2 20,9 8,1 4,4

8
Figure 1: La matrice de corrélation

2. Statistique inférentielle
Les hypothèses :
H0 : Le taux de chômage diminuera
H1 : Le taux de chômage augmentera

9
3. Visualisation des données

Ce graphe illustre la variation du pourcentage de chômage dans les régions urbaine et


rurale par trimestre de 2015 à 2023. On remarque que le taux de chômage dans les
régions urbaines est plus élevé que celui dans les régions rurales.

10
Ce graphe illustre la variation du pourcentage de chômage chez la population féminine
et masculin par trimestre de 2015 à 2023. On remarque que le taux de chômage chez
les féminins est plus élevé que celui chez les masculins.

Ce graphe illustre la variation du pourcentage de chômage chez les gens qui sont sans
diplôme, ayant un diplôme niveau moyen et ayant un diplôme niveau supérieur par
trimestre de 2015 à 2023. On remarque que le taux de chômage chez les gens avec un
diplôme de niveau supérieur est plus élevé que celui des gens ayant un diplôme de
niveau moyen et ce dernier est supérieur à celui des gens sans diplôme.

11
Ce graphe illustre la variation du pourcentage de chômage selon les tranches d’âges par
trimestre de 2015 à 2023. On remarque que le taux de chômage chez les gens âgés est
inférieur à celui-ci des jeunes.
Modélisation des données
Lors de la modélisation de l'évolution du taux de chômage, le choix des algorithmes de
machine learning revêt une importance cruciale pour garantir des prédictions précises
et robustes. Dans cette étude, nous avons opté pour trois modèles distincts, à savoir le
Support Vector Machine (SVM), le Random Forest, et la Régression Ridge, afin d'évaluer
et de comparer leurs performances.
Le Support Vector Machine (SVM) a été choisi pour sa capacité à traiter à la fois des
problèmes de classification et de régression. En utilisant une approche de séparation
d'hyperplans, le SVM peut modéliser des relations complexes entre les différentes
caractéristiques du taux de chômage, offrant ainsi une flexibilité dans la capture de
motifs non linéaires.
Le modèle Random Forest a été inclus en raison de sa capacité à gérer des ensembles
de données complexes. En combinant plusieurs arbres de décision, le Random Forest
peut atténuer le surajustement (overfitting) et améliorer la généralisation du modèle.
Cette propriété est particulièrement bénéfique lorsque le taux de chômage est
influencé par un ensemble varié de facteurs.
Enfin, la Régression Ridge a été considérée en raison de sa capacité à gérer la
multicollinéarité, une situation où plusieurs caractéristiques sont fortement corrélées.
En introduisant une pénalité sur les coefficients de régression, la Régression Ridge peut
améliorer la stabilité du modèle, ce qui est crucial lorsque les caractéristiques sont
interdépendantes.
1. Régression ridge :

12
13
14
15
Importation des bibliothèques :
import pandas as pd
from sklearn.linear_model
import Ridge from sklearn.metrics
import mean_absolute_error
import matplotlib.pyplot as plt
• pandas est utilisé pour manipuler et analyser les données.
• Ridge est un modèle de régression Ridge de scikit-learn.
• mean_absolute_error est une fonction pour calculer l'erreur absolue moyenne.
• matplotlib.pyplot est utilisé pour créer des visualisations.
Lecture des données à partir du fichier Excel :
chomage = pd.read_excel("dataset.xlsx", index_col="effectif de trimestre")
Les données sont lues depuis le fichier Excel "dataset.xlsx". L'index de ligne est
défini sur la colonne "effectif de trimestre".
Nettoyage des noms de colonnes :
chomage.columns = chomage.columns.str.strip()
Les noms de colonnes sont nettoyés en supprimant les espaces inutiles autour des
noms.
Définition des variables prédictives (predictors) et de la variable cible (target) :
Ex :
predictors = ["Urbain", "Rural", "Masculin", "Féminin", "Sans diplôme", "Ayant
un diplôme: Niveau moyen", "Ayant un diplôme: Niveau supérieur", "15 - 24", "25
- 34", "35 - 44"]
target = "45 et plus"
Les colonnes à utiliser comme variables prédictives (predictors) sont définies dans
la liste predictors, et la variable cible (target) est définie dans la variable target.
Division des données en ensembles d'entraînement et de test :
train = chomage.loc["2021T4":]
test = chomage.loc[:"2022T1"]

16
Les données sont divisées en ensembles d'entraînement (à partir du quatrième
trimestre de 2021) et de test (jusqu'au premier trimestre de 2022).
Création et ajustement du modèle de régression Ridge :
reg = Ridge(alpha=0.1)
reg.fit(train[predictors], train[target])
Un modèle de régression Ridge est créé avec un paramètre de régularisation (alpha)
égal à 0.1, puis il est ajusté aux données d'entraînement.
Prédictions sur l'ensemble de test :
predictions = reg.predict(test[predictors])
Calcul de l'erreur absolue moyenne (MAE) :
mae = mean_absolute_error(test[target], predictions)
print(f"Mean Absolute Error: {mae}")
L'erreur absolue moyenne entre les valeurs réelles de l'ensemble de test et les
prédictions est calculée et affichée.
The lower the better
Évaluation et visualisation des résultats :
combined = pd.concat([test[target], pd.Series(predictions, index=test.index)],
axis=1)
combined.columns = ['actual', 'prediction']
print(combined)
combined.plot()
plt.show()
Les valeurs réelles et prédites sont combinées dans un DataFrame, affichées, et un
graphique est généré pour visualiser les résultats.
Affichage des coefficients du modèle :
print(reg.coef_)
Plus précisément, pour un modèle de régression linéaire simple (sans
régularisation), l'équation de prédiction est de la forme :
Y=β0+β1X1+β2X2+…+βnXn
où :
17
• Y est la variable cible,
• β0 est l'intercept,
• β1,β2,…,βn sont les coefficients associés aux variables prédictives X1,X2,…,Xn .
Les coefficients déterminent la force et la direction de l'impact de chaque variable
prédictive sur la variable cible. Si un coefficient est positif, cela signifie qu'une
augmentation de la variable correspondante entraîne une augmentation de la
variable cible, et si le coefficient est négatif, cela signifie une diminution.
Dans le contexte de la régression Ridge (ou régression linéaire avec régularisation
L2), comme dans le code fourni, les coefficients sont également influencés par un
terme de régularisation qui vise à pénaliser les coefficients plus importants. Cela
peut aider à prévenir le surajustement du modèle aux données d'entraînement.
L'introduction du terme de régularisation (contrôlé par le paramètre alpha dans le
code) peut conduire à des coefficients de modèle réduits par rapport à une
régression linéaire standard.

Étape 1 : importation des librairies nécessaires :


Le code commence par importer les bibliothèques Python nécessaires pour
la manipulation de données (‘pandas’), l'apprentissage automatique
(‘sklearn’ pour la régression Ridge) et la visualisation (‘matplotlib’)
import pandas as pd
from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error
import matplotlib.pyplot as plt

Étape 2 : Lecture des données et préparation des données :


Le code lit un fichier Excel nommé "dataset.xlsx" dans un DataFrame Pandas appelé
« chômage ». Ensuite, il nettoie les noms de colonnes en supprimant les espaces
supplémentaires

chomage = pd.read_excel("dataset.xlsx", index_col="effectif de trimestre")


chomage.columns = chomage.columns.str.strip()

Étape 3: Définition des variables prédictives et cible

18
Les variables prédictives (predictors) sont définies comme les caractéristiques
utilisées pour prédire la variable cible (target). Dans ce cas, les variables prédictives
sont des caractéristiques comme "Urbain", "Rural", etc., et la variable cible est "45 et
plus".

predictors = ["Urbain", "Rural", "Masculin", "Féminin", "Sans diplôme",


"Ayant un diplôme: Niveau moyen", "Ayant un diplôme: Niveau supérieur",
"15 - 24", "25 - 34", "35 - 44"]
target = "45 et plus"

Étape 4: Entraînement du modèle de régression Ridge


Les données sont divisées en ensembles d'entraînement et de test en fonction des
périodes temporelles. Ensuite, un modèle de régression Ridge est créé avec une valeur
alpha de 0.1 et est ajusté à l'aide des données d'entraînement.

train = chomage.loc["2021T4":]
test = chomage.loc[:"2022T1"]
reg = Ridge(alpha=0.1)
reg.fit(train[predictors], train[target])

Étape 5: Faire des prédictions


Le modèle formé est utilisé pour prédire les valeurs de la variable cible à l'aide de
l'ensemble de test

predictions = reg.predict(test[predictors])

Étape 6: Prédire les valeurs futures


Une plage de périodes futures est créée, puis les variables prédictives pour ces périodes
futures sont préparées. En utilisant le modèle formé, les valeurs de la variable cible
pour ces périodes futures sont prédites et stockées dans un DataFrame

future_periods = pd.date_range(start='2023T4', end='2032T3', freq='Q')


predictors_future = chomage.loc['2023T3':][predictors]

19
predictions_future = reg.predict(predictors_future)
predictions_df = pd.DataFrame(predictions_future, index=future_periods,
columns=['Predicted_45plus'])

Étape 7: Calcul de l'erreur absolue moyenne (MAE)


Le code calcule l'erreur absolue moyenne entre les valeurs réelles et les valeurs
prédites pour l'ensemble de test.

mae = mean_absolute_error(test[target], predictions)


print(f"Mean Absolute Error: {mae}")

Étape 8: Enregistrement des prédictions dans un fichier Excel


Les valeurs prédites pour les périodes futures sont enregistrées dans un fichier Excel

excel_file_path = 'predicted_values_ridge_45plus.xlsx'
predictions_df.to_excel(excel_file_path)

Étape 9: Visualisation des prédictions


Le code crée un graphique montrant les valeurs prédites pour les périodes
futures au fil du temps. Il trace également la ligne de régression basée sur le
modèle entraîné par rapport aux données d'origine.
predictions_df.plot(title='Predicted 45 plus Values Over Time')
plt.show()
plt.plot(chomage.index, reg.predict(chomage[predictors]),
label='Regression Line', linestyle='--')

2. SVM :
On a utilisé python et on a suivi la démarche suivante :

20
21
22
23
Importation des bibliothèques :
import pandas as pd: Importe la bibliothèque pandas sous l'alias pd pour
manipuler les données.
from sklearn.svm import SVR: Importe le modèle de régression à vecteurs de
support (Support Vector Regression) de scikit-learn.
from sklearn.metrics import mean_absolute_error: Importe la fonction pour
calculer l'erreur absolue moyenne.
import matplotlib.pyplot as plt: Importe la bibliothèque pour créer des
graphiques.
• Lecture du fichier Excel :
chomage = pd.read_excel(... , index_col="Trimestres"): Lit un fichier Excel
spécifié et le stocke dans un DataFrame pandas. La colonne "Trimestres" est
utilisée comme index.
• Création de la colonne cible "target" :
chomage["target"] = chomage["nom_columns"].shift(0): Crée une nouvelle
colonne "target" en décalant de 0 période les valeurs de la colonne ".
Le rôle de shift(0) dans chomage["target"] = chomage["column"].shift(0) est de
créer une nouvelle colonne appelée "target" en utilisant les valeurs de la
colonne existante sans effectuer de décalage dans le temps. En d'autres termes,
le décalage est de 0 période, ce qui signifie que chaque valeur de la colonne
"target" est identique à la valeur correspondante dans la colonne pour chaque
ligne.
• Suppression de la première ligne :
chomage = chomage.iloc[1:, :].copy(): Supprime la première ligne du
DataFrame pour éliminer les valeurs NaN résultant du décalage.
Lorsque on effectue un décalage (shift) sur une colonne, la première valeur est
déplacée vers le bas, laissant une case vide ou NaN à la première position. Si
cette valeur NaN n'est pas supprimée, elle peut causer des problèmes lors de
l'ajustement de modèles ou d'autres opérations qui impliquent des données
manquantes.
En supprimant la première ligne après le décalage, vous assurez que le
DataFrame ne contient pas de valeurs NaN dans la colonne "target".
La méthode .copy() est utilisée pour créer une copie du DataFrame après la
suppression, évitant ainsi des problèmes de références partagées entre les
DataFrames.
• Nettoyage des noms de colonnes :
chomage.columns = chomage.columns.str.strip() est utilisée pour nettoyer les
noms de colonnes en supprimant les espaces inutiles autour de chaque nom de
colonne. Cette opération est souvent réalisée pour garantir la cohérence dans
les noms de colonnes et pour faciliter l'accès aux colonnes dans le DataFrame.

24
• Définition des prédicteurs et de la variable cible :
predictors: Liste des caractéristiques (prédicteurs) utilisées pour la prédiction.
target = "column": Variable cible à prédire
• Division des données en ensembles d'entraînement et de test :
train et test: Divisent le DataFrame en ensembles d'entraînement (à partir du
quatrième trimestre de 2021) et de test (jusqu'au premier trimestre de 2022).
• Création et ajustement du modèle SVM :
svm_model = SVR(kernel='linear', C=1.0): Initialise un modèle SVM linéaire.
svm_model.fit(train[predictors], train[target]): Ajuste le modèle sur les
données d'entraînement.
Initialisation du Modèle :
svm_model = SVR(kernel='linear', C=1.0): Cette ligne initialise un objet modèle
SVM avec certains paramètres spécifiés.
kernel='linear' : Indique l'utilisation d'un noyau linéaire. Les noyaux déterminent
la fonction de transformation appliquée aux données, et un noyau linéaire est
souvent utilisé pour les problèmes de régression linéaire.
C=1.0 : Paramètre de régularisation qui contrôle la souplesse du modèle. Un C
plus élevé donne un modèle plus complexe.
Ajustement du Modèle sur les Données d'Entraînement :
svm_model.fit(train[predictors], train[target]): Cette ligne ajuste le modèle
SVM aux données d'entraînement. Elle utilise les prédicteurs (features) de
l'ensemble d'entraînement (train[predictors]) pour prédire la variable cible
(train[target]).
Le processus d'ajustement (fitting) implique l'apprentissage des paramètres du
modèle (comme les poids des vecteurs de support) sur les données
d'entraînement afin de minimiser l'erreur de prédiction.
• Prédictions sur l'ensemble de test :
predictions_svm = svm_model.predict(test[predictors]): Utilise le modèle pour
faire des prédictions sur l'ensemble de test.
• Calcul de l'erreur absolue moyenne :
mae_svm = mean_absolute_error(test[target], predictions_svm): Calcule
l'erreur absolue moyenne entre les valeurs réelles et prédites.
Affichage des résultats et du graphique :
Le reste du code est dédié à l'affichage des résultats. Il affiche l'erreur absolue
moyenne, les valeurs réelles et prédites, et un graphique montrant la
comparaison entre les valeurs réelles et prédites au fil du temps.
Et pour prédire le futur: On suit la même démarche jusqu'à le calcul d'erreur
Calcul de l'Erreur Absolue Moyenne :
L'erreur absolue moyenne (MAE) est calculée en comparant les prédictions avec
les valeurs réelles de la variable cible dans l'ensemble de test.

25
Prédictions Futures et Sauvegarde dans un Fichier Excel :
Le modèle SVM est utilisé pour faire des prédictions sur des périodes futures
(2023T4 à 2032T3), et les résultats sont sauvegardés dans un fichier Excel.
future_periods = pd.date_range(start='2023T4', end='2032T3', freq='Q'):

Crée un objet DatetimeIndex contenant des dates de début à '2023T4' à des


dates de fin à '2032T3' avec une fréquence trimestrielle (freq='Q').
predictors_future = chomage.loc['2023T3':][predictors]:

Sélectionne les données futures à partir du troisième trimestre de 2023 jusqu'à


la fin du DataFrame chomage pour les prédicteurs spécifiés.
predictions_future = svm_model.predict(predictors_future):

Utilise le modèle SVM entraîné (svm_model) pour faire des prédictions sur les
données futures (predictors_future).
predictions_df = pd.DataFrame(predictions_future, index=future_periods,
columns=['45 et plus']):

Crée un nouveau DataFrame (predictions_df) à partir des prédictions futures.


Les indices du DataFrame sont définis comme les dates futures, et la colonne est
nommée '45 et plus' pour représenter la variable cible.
predictions_df.to_excel("D:\\prediction\\svm45 et plus.xlsx"):

Enregistre le DataFrame des prédictions futures dans un fichier Excel nommé


'svm45 et plus.xlsx' dans le répertoire "D:\prediction\".
Tracé des Prédictions Futures :
Les prédictions futures sont tracées dans un graphique.
Tracé des Prédictions sur l'Ensemble d'Entraînement :
Les prédictions du modèle SVM sur l'ensemble d'entraînement sont également
tracées en pointillés.
3. Random Forest :

26
27
28
29
Actuel VS Prédiction
Ce code utilise la bibliothèque Python pandas pour la manipulation de données, scikit-
learn pour construire un modèle de régression de forêt aléatoire
(RandomForestRegressor), et matplotlib pour visualiser les résultats.
1. Importation des bibliothèques nécessaires
import pandas as pd
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_absolute_error
import matplotlib.pyplot as plt
2. Lecture des données à partir d'un fichier Excel nommé "dataset.xlsx" dans un
objet DataFrame pandas, en spécifiant la colonne "effectif de trimestre"
comme index :
chomage = pd.read_excel("dataset.xlsx", index_col="effectif de trimestre")

3. Nettoyage des noms de colonnes en supprimant les espaces supplémentaires :


chomage.columns = chomage.columns.str.strip()

4. Définition des variables prédictives et de la variable cible :

predictors = ["Urbain", "Rural", "Masculin", "Ayant un diplôme: Niveau


supérieur", "15 - 24", "25 - 34", "35 - 44", "45 et plus"]

target = "target"

5. Division des données en ensembles d'entraînement et de test basés sur les


trimestres
train = chomage.loc["2021T4":]
test = chomage.loc[:"2022T1"]
6. Construction d'un modèle de régression de forêt aléatoire avec 100 arbres et
ajustement du modèle aux données d'entraînement :
rf_model = RandomForestRegressor(n_estimators=100, random_state=42)

rf_model.fit(train[predictors], train[target])

30
7. Utilisation du modèle pour prédire les valeurs sur l'ensemble de test :
predictions_rf = rf_model.predict(test[predictors])

8. Calcul de l'erreur Moyenne absolue pour la régression de forêt aléatoire et


affichage du résultat :
mae_rf = mean_absolute_error(test[target], predictions_rf)
print(f"Mean Absolute Error (Random Forest): {mae_rf}")

9. Création d'un DataFrame combinant les valeurs cibles réelles et les prédictions,
suivi de l'affichage de ce DataFrame :
combined_rf = pd.concat([
test[target],
pd.Series(predictions_rf, index=test.index, name="Prediction_RF"),
], axis=1)
print(combined_rf)
10. Affichage d'un graphique représentant les valeurs réelles par rapport aux
prédictions pour la régression de forêt aléatoire :
combined_rf.plot()
plt.show()
Ce code vise à entraîner un modèle de régression de forêt aléatoire pour
prédire les valeurs de la colonne "target" (qui semble être liée au chômage) en
utilisant différentes caractéristiques listées dans predictors. Ensuite, il évalue
les performances du modèle en calculant l'erreur moyenne absolue entre les
valeurs réelles et prédites, et visualise les prédictions par rapport aux vraies
valeurs à l'aide d'un graphique .
PREDICTION FUTURE RANDOM FOREST REGRESSOR
LES PREMIERS ETAPES SE FONT DE LA MEMES MANIERE QUE LES AUTRES MODELES
AVANT TRAINING AND TESTING
1. Création et ajustement du modèle de forêt aléatoire :
rf_model = RandomForestRegressor(n_estimators=100, random_state=42)
• RandomForestRegressor est la classe qui implémente la forêt aléatoire pour des
problèmes de régression.
• Le paramètre n_estimators spécifie le nombre d'arbres dans la forêt. Dans ce
cas, il est fixé à 100 arbres.

31
• Le paramètre random_state est utilisé pour garantir la reproductibilité des
résultats. En fixant une valeur particulière (42 dans ce cas), les résultats resteront
les mêmes à chaque exécution du modèle. Cela est utile pour la reproductibilité
des expériences.
rf_model.fit(train[predictors], train[target])
• La méthode fit est utilisée pour ajuster (entraîner) le modèle aux données
d'entraînement.
• train[predictors] est la matrice des variables prédictives (caractéristiques) de
l'ensemble d'entraînement.
• train[target] est le vecteur des valeurs cibles correspondantes dans l'ensemble
d'entraînement.
• Pendant l'ajustement, le modèle utilise ces données pour construire chacun des
100 arbres de la forêt.
rf_model est une forêt aléatoire entraînée avec 100 arbres, prête à être utilisée
pour faire des prédictions sur de nouvelles données ou évaluer la performance du
modèle sur un ensemble de test. La forêt aléatoire combine les prédictions de
chaque arbre pour fournir une prédiction globale plus robuste et générale.
2. Prédictions sur l'ensemble de test :
Le modèle est utilisé pour faire des prédictions sur l'ensemble de test.
le modèle de forêt aléatoire a généré des prédictions pour chaque exemple dans
l'ensemble de test. Ces prédictions peuvent ensuite être utilisées pour évaluer la
performance du modèle en les comparant aux valeurs réelles de l'ensemble de test.

3. Calcul de l'erreur absolue moyenne :

L'erreur absolue moyenne entre les valeurs réelles de l'ensemble de test et les
prédictions est calculée et affichée.

4. Prédiction de valeurs futures (2023T4 à 2032T3) :


1. Création d'une séquence de périodes futures :
• pd.date_range crée une séquence de dates trimestrielles (freq='Q') débutant à
'2023T4' et se terminant à '2032T3'.
• Cela servira d'index pour le DataFrame contenant les prédictions futures.
2. Sélection des caractéristiques futures :

32
• chomage.loc['2023T3':] sélectionne les données à partir du troisième
trimestre de 2023 jusqu'à la fin du jeu de données.
• [predictors] sélectionne uniquement les colonnes spécifiées comme variables
prédictives.
3. Prédiction des valeurs futures à l'aide du modèle :
• rf_model.predict est utilisé pour prédire les valeurs futures en utilisant le
modèle de forêt aléatoire déjà entraîné.
• predictors_future contient les caractéristiques futures sur lesquelles baser les
prédictions.
4. Création d'un DataFrame pour les prédictions futures :
• pd.DataFrame crée un DataFrame avec les prédictions futures.
• index=future_periods utilise la séquence de dates comme index.
• columns=['Predicted_25 34'] définit le nom de la colonne pour les prédictions.
5.SAUVGARDEMENT DES RESULTATS ET VISUALIZATION

Les prédictions futures sont sauvegardées dans un fichier Excel spécifié par
excel_file_path.

Un graphique est généré pour visualiser les prédictions futures de la variable cible "25
- 34" sur la période 2023T4 à 2032T3

Résultats de prédiction
RIDGE SVM RANDOM FOREST

URBAIN
TRIMETRES PREDICTION trimestres PREDICTION trimestre prediction
2023 T4 17,18106 2023 T4 17,1058 2023T4 16,979
2024 T1 16,49663 2024 T1 16,46776 2024T1 16,956
2024 T2 14,8334 2024 T2 14,85788 2024T2 15,894
2024 T3 15,27111 2024 T3 15,21629 2024T3 15,737
2024 T4 16,16605 2024 T4 16,13998 2024T4 16,396
2025 T1 16,61297 2025 T1 16,60037 2025T1 16,491
2025 T2 15,92942 2025 T2 15,91452 2025T2 16,199
2025 T3 18,17391 2025 T3 18,0994 2025T3 17,46846
2025 T4 16,97253 2025 T4 16,96577 2025T4 16,809
2026 T1 16,52064 2026 T1 16,54906 2026T1 16,345
2026 T2 16,60756 2026 T2 16,59988 2026T2 16,633
2026 T3 15,51963 2026 T3 15,50028 2026T3 15,85446
2026 T4 15,04898 2026 T4 15,00145 2026T4 15,127
2027 T1 14,24509 2027 T1 14,2598 2027T1 14,23459

33
2027 T2 12,66758 2027 T2 12,67591 2027T2 12,90691
2027 T3 11,79204 2027 T3 11,80064 2027T3 12,25759
2027 T4 13,34152 2027 T4 13,35814 2027T4 13,241
2028 T1 13,47182 2028 T1 13,49979 2028T1 13,317
2028 T2 13,21768 2028 T2 13,19981 2028T2 13,23818
2028 T3 13,69866 2028 T3 13,67284 2028T3 13,39659
2028 T4 15,40346 2028 T4 15,38932 2028T4 15,30705
2029 T1 15,07139 2029 T1 15,05158 2029T1 14,80359
2029 T2 14,90644 2029 T2 14,89692 2029T2 14,84205
2029 T3 13,90376 2029 T3 13,89996 2029T3 13,82578
2029 T4 15,64058 2029 T4 15,63944 2029T4 15,57846
2030 T1 13,14182 2030 T1 13,1997 2030T1 13,37978
2030 T2 14,15825 2030 T2 14,2001 2030T2 14,45993
2030 T3 12,61423 2030 T3 12,66079 2030T3 12,91223
2030 T4 14,62122 2030 T4 14,60536 2030T4 14,59369
2031 T1 14,2366 2031 T1 14,25852 2031T1 14,0066
2031 T2 15,00258 2031 T2 15,00014 2031T2 14,87006
2031 T3 13,56032 2031 T3 13,60171 2031T3 13,66393
2031 T4 14,52409 2031 T4 14,54191 2031T4 14,44036

RIDGE SVM RANDOM FOREST

RURAL
TRIMESTRES PREDICTION Column1 prediction trimestre prediction
2023 T4 5,888914 2023 T4 5,80506 2023T4 5,869202
2024 T1 6,033033 2024 T1 5,888703 2024T1 5,532269
2024 T2 5,011137 2024 T2 4,979837 2024T2 4,978
2024 T3 4,242495 2024 T3 4,231173 2024T3 4,233
2024 T4 5,213747 2024 T4 5,15589 2024T4 5,177202
2025 T1 4,563786 2025 T1 4,528274 2025T1 4,924
2025 T2 5,178889 2025 T2 5,113663 2025T2 4,90774
2025 T3 5,0214 2025 T3 5,030083 2025T3 5,213
2025 T4 5,185523 2025 T4 5,200289 2025T4 5,508
2026 T1 5,853821 2026 T1 5,80016 2026T1 5,812
2026 T2 6,876329 2026 T2 6,842389 2026T2 6,533
2026 T3 7,107396 2026 T3 7,100313 2026T3 6,515067
2026 T4 3,866261 2026 T4 3,842254 2026T4 4,022
2027 T1 3,858523 2027 T1 3,877969 2027T1 4,015905
2027 T2 4,34692 2027 T2 4,310502 2027T2 4,198905
2027 T3 3,134639 2027 T3 3,100472 2027T3 3,208
2027 T4 3,047612 2027 T4 2,999412 2027T4 3,304
2028 T1 3,654076 2028 T1 3,645114 2028T1 3,515905
2028 T2 4,069499 2028 T2 3,999445 2028T2 3,818905
2028 T3 3,294871 2028 T3 3,286023 2028T3 3,337

34
2028 T4 3,577692 2028 T4 3,600471 2028T4 3,69781
2029 T1 4,429147 2029 T1 4,353008 2029T1 4,226
2029 T2 4,604523 2029 T2 4,555991 2029T2 4,466
2029 T3 3,325984 2029 T3 3,336479 2029T3 3,335905
2029 T4 4,029808 2029 T4 4,061245 2029T4 4,216067
2030 T1 3,631898 2030 T1 3,518202 2030T1 3,762431
2030 T2 4,099758 2030 T2 4,031383 2030T2 4,238562
2030 T3 3,8448 2030 T3 3,800129 2030T3 3,688052
2030 T4 4,48599 2030 T4 4,400743 2030T4 4,413403
2031 T1 3,297517 2031 T1 3,233464 2031T1 3,651728
2031 T2 4,227595 2031 T2 4,199334 2031T2 4,385009
2031 T3 3,640377 2031 T3 3,596823 2031T3 3,452973
2031 T4 4,742611 2031 T4 4,690226 2031T4 4,594774

RIDGE SVM RANDOM FORREST

MASCULIN
TRIMESTRES PREDICTION TRIMESTRES PREDICTION trimestre prediction
2023 T4 11,33186 2023 T4 11,28391 2023T4 11,065
2024 T1 11,03669 2024 T1 11,03549 2024T1 10,76809
2024 T2 9,333338 2024 T2 9,345892 2024T2 10,03726
2024 T3 9,807154 2024 T3 9,756449 2024T3 9,962828
2024 T4 10,4248 2024 T4 10,39721 2024T4 10,36909
2025 T1 10,31373 2025 T1 10,3004 2025T1 10,26709
2025 T2 10,31664 2025 T2 10,29944 2025T2 10,38909
2025 T3 11,88521 2025 T3 11,85244 2025T3 11,46317
2025 T4 10,93077 2025 T4 10,93626 2025T4 11,032
2026 T1 10,7759 2026 T1 10,76221 2026T1 10,822
2026 T2 11,3211 2026 T2 11,30031 2026T2 11,19709
2026 T3 11,3891 2026 T3 11,29066 2026T3 10,93252
2026 T4 9,319326 2026 T4 9,298609 2026T4 9,257484
2027 T1 8,594782 2027 T1 8,599743 2027T1 8,578828
2027 T2 7,993935 2027 T2 7,952873 2027T2 8,051828
2027 T3 7,180756 2027 T3 7,100318 2027T3 7,461
2027 T4 7,651662 2027 T4 7,661535 2027T4 7,849
2028 T1 7,655353 2028 T1 7,672537 2028T1 7,838
2028 T2 8,156074 2028 T2 8,099438 2028T2 8,112
2028 T3 8,116832 2028 T3 8,092527 2028T3 7,969828
2028 T4 8,947364 2028 T4 8,999698 2028T4 8,90214
2029 T1 8,94684 2029 T1 8,977867 2029T1 9,117484
2029 T2 9,203031 2029 T2 9,199105 2029T2 9,075968
2029 T3 8,062168 2029 T3 8,076641 2029T3 8,057656
2029 T4 9,418804 2029 T4 9,462702 2029T4 9,484828
2030 T1 8,400061 2030 T1 8,373352 2030T1 8,275

35
2030 T2 9,140891 2030 T2 9,130554 2030T2 9,211268
2030 T3 8,047592 2030 T3 8,000389 2030T3 8,112656
2030 T4 9,533695 2030 T4 9,500284 2030T4 9,58761
2031 T1 8,712774 2031 T1 8,711292 2031T1 8,76814
2031 T2 9,590411 2031 T2 9,595066 2031T2 9,591481
2031 T3 8,588798 2031 T3 8,516592 2031T3 8,621816
2031 T4 9,497918 2031 T4 9,470723 2031T4 9,565185

RIDGE SVM RANDOM FORREST

FEMININ
TRIMESTRES PREDICTION TRIMESTRES PREDICTION trimestre prediction
2023 T4 17,89339 2023 T4 18,40988 2023T4 17,437
2024 T1 18,6042 2024 T1 18,68668 2024T1 17,379
2024 T2 17,3793 2024 T2 17,10329 2024T2 15,796
2024 T3 15,62286 2024 T3 16,02447 2024T3 15,781
2024 T4 17,41674 2024 T4 17,51234 2024T4 17,178
2025 T1 17,01868 2025 T1 17,2645 2025T1 17,079
2025 T2 16,41543 2025 T2 16,39924 2025T2 16,605
2025 T3 16,23967 2025 T3 16,70845 2025T3 16,354
2025 T4 17,69503 2025 T4 17,60017 2025T4 17,428
2026 T1 17,34944 2026 T1 16,97126 2026T1 17,536
2026 T2 17,04153 2026 T2 16,86224 2026T2 17,406
2026 T3 16,21553 2026 T3 16,21289 2026T3 16,18
2026 T4 14,64336 2026 T4 14,77479 2026T4 14,501
2027 T1 15,53693 2027 T1 15,27985 2027T1 15,131
2027 T2 13,98907 2027 T2 13,80095 2027T2 13,999
2027 T3 11,20339 2027 T3 11,20054 2027T3 11,27742
2027 T4 13,06768 2027 T4 12,80338 2027T4 12,64994
2028 T1 14,40019 2028 T1 14,08804 2028T1 14,356
2028 T2 13,04153 2028 T2 13,20013 2028T2 13,604
2028 T3 13,30815 2028 T3 13,29335 2028T3 13,251
2028 T4 15,24001 2028 T4 14,99952 2028T4 14,951
2029 T1 15,41414 2029 T1 15,34194 2029T1 15,41
2029 T2 15,08674 2029 T2 15,15153 2029T2 14,967
2029 T3 13,37748 2029 T3 13,17801 2029T3 12,92
2029 T4 14,58068 2029 T4 14,43677 2029T4 14,792
2030 T1 10,86014 2030 T1 10,70027 2030T1 10,86479
2030 T2 11,21387 2030 T2 10,92714 2030T2 10,95903
2030 T3 10,06777 2030 T3 10,00015 2030T3 10,08707
2030 T4 11,16237 2030 T4 11,38557 2030T4 11,99827
2031 T1 10,31363 2031 T1 10,30254 2031T1 10,59315
2031 T2 11,17403 2031 T2 11,20043 2031T2 11,34354
2031 T3 8,889526 2031 T3 9,069234 2031T3 9,562065

36
2031 T4 10,67823 2031 T4 10,60193 2031T4 11,02531

RIDGE SVM RANDOM FOREST

SANSDIPLOME
TRIMESTRE PREDICTION trimestres PREDICTION trimestre prediction
2023 T4 4,924391 2023 T4 5,072083 2023T4 5,187018
2024 T1 5,537413 2024 T1 5,509247 2024T1 5,771296
2024 T2 4,744544 2024 T2 4,639828 2024T2 4,296935
2024 T3 3,837919 2024 T3 3,964508 2024T3 4,044185
2024 T4 4,398771 2024 T4 4,426073 2024T4 4,324574
2025 T1 4,071767 2025 T1 4,208648 2025T1 4,093361
2025 T2 4,662032 2025 T2 4,626341 2025T2 4,437185
2025 T3 4,94558 2025 T3 5,0005 2025T3 5,224148
2025 T4 5,131844 2025 T4 5,06383 2025T4 5,011
2026 T1 5,296879 2026 T1 5,200039 2026T1 5,091
2026 T2 6,810475 2026 T2 6,607078 2026T2 6,734
2026 T3 6,865654 2026 T3 6,827581 2026T3 6,713
2026 T4 3,608678 2026 T4 3,611821 2026T4 3,790824
2027 T1 3,711422 2027 T1 3,690255 2027T1 3,480824
2027 T2 3,911228 2027 T2 3,900552 2027T2 3,622
2027 T3 2,685282 2027 T3 2,773471 2027T3 2,896
2027T4 3,025092 2027 T4 2,899618 2027T4 2,982
2028 T1 3,006295 2028 T1 2,999912 2028T1 3,098
2028 T2 3,34335 2028 T2 3,452279 2028T2 3,452
2028 T3 2,972103 2028 T3 2,999637 2028T3 3,253649
2028 T4 3,566074 2028 T4 3,398467 2028T4 3,952824
2029 T1 3,560225 2029 T1 3,541027 2029T1 3,845
2029 T2 4,121257 2029 T2 4,17203 2029T2 4,019
2029 T3 3,007156 2029 T3 2,956863 2029T3 3,368649
2029 T4 4,549429 2029 T4 4,399936 2029T4 4,283824
2030 T1 3,908089 2030 T1 3,858371 2030T1 3,507649
2030 T2 4,322137 2030 T2 4,200287 2030T2 4,30612
2030 T3 3,893387 2030 T3 3,887908 2030T3 3,95877
2030 T4 4,658149 2030 T4 4,649793 2030T4 4,684657
2031 T1 4,042312 2031 T1 3,957547 2031T1 3,749946
2031 T2 4,820076 2031 T2 4,714067 2031T2 4,754018
2031 T3 3,896268 2031 T3 3,982196 2031T3 3,980579
2031 T4 5,068889 2031 T4 4,982565 2031T4 4,901877
RIDGE SVM RANDOM FOREST

NIVEAU MOYEN
TRIMESTRES PREDICTION trimestres PREDICTION trimestre prediction
2023 T4 14,90047 2023 T4 14,61268 2023T4 14,708

37
2024 T1 14,30509 2024 T1 14,14162 2024T1 14,668
2024 T2 11,70895 2024 T2 12,15404 2024T2 13,87982
2024 T3 12,9023 2024 T3 12,94648 2024T3 13,74174
2024 T4 13,12001 2024 T4 13,8994 2024T4 13,827
2025 T1 13,80295 2025 T1 13,76473 2025T1 13,794
2025 T2 13,60845 2025 T2 13,81683 2025T2 13,823
2025 T3 16,09625 2025 T3 15,68221 2025T3 15,474
2025 T4 14,30461 2025 T4 14,40011 2025T4 14,417
2026 T1 14,10769 2026 T1 14,22771 2026T1 14,22174
2026 T2 14,40346 2026 T2 14,49997 2026T2 14,42274
2026 T3 14,69689 2026 T3 14,35712 2026T3 14,59174
2026 T4 12,89753 2026 T4 12,79943 2026T4 13,007
2027 T1 12,09338 2027 T1 11,89037 2027T1 12,38657
2027 T2 11,09533 2027 T2 11,00045 2027T2 11,567
2027 T3 10,09821 2027 T3 10,19332 2027T3 10,408
2027 T3 10,31075 2027 T4 11,06659 2027T4 10,828
2028 T1 11,59151 2028 T1 11,36329 2028T1 11,608
2028 T2 11,60122 2028 T2 11,74301 2028T2 11,645
2028 T3 11,89159 2028 T3 11,66778 2028T3 11,516
2028 T4 12,50909 2028 T4 13,17642 2028T4 12,72556
2029 T1 13,40233 2029 T1 13,49987 2029T1 13,25128
2029 T2 13,30161 2029 T2 13,3835 2029T2 13,26071
2029 T3 12,29542 2029 T3 12,27495 2029T3 12,116
2029 T4 13,59397 2029 T4 13,49958 2029T4 13,40114
2030 T1 12,02064 2030 T1 12,89948 2030T1 11,98686
2030 T2 14,00138 2030 T2 13,90003 2030T2 13,74551
2030 T3 12,01141 2030 T3 12,63401 2030T3 11,86671
2030 T4 14,59264 2030 T4 14,12975 2030T4 14,34857
2031 T1 13,297 2031 T1 13,20044 2031T1 13,04614
2031 T2 15,1862 2031 T2 14,49697 2031T2 14,95968
2031 T3 12,8935 2031 T3 13,3173 2031T3 12,60566
2031 T4 15,0548 2031 T4 14,03966 2031T4 14,99268

RANDOM
RIDGE SVM FPREST FOREST

NIVEAU SUP
TRIMESTRES PREDICTION TRIMESTRES PREDICTION trimestre prediction
2023 T4 22,49432 2023 T4 22,72493 2023T4 21,828
2024 T1 20,59195 2024 T1 20,50211 2024T1 21,501
2024 T2 18,80612 2024 T2 18,95395 2024T2 19,77068
2024 T3 21,20758 2024 T3 21,59827 2024T3 19,81167
2024 T4 21,51986 2024 T4 21,71197 2024T4 21,386
2025 T1 22,10841 2025 T1 22,382 2025T1 21,795
2025 T2 20,41221 2025 T2 20,36157 2025T2 20,9

38
2025 T3 23,64519 2025 T3 24,11761 2025T3 21,827
2025 T4 21,50747 2025 T4 21,90044 2025T4 21,717
2026 T1 20,02462 2026 T1 19,94616 2026T1 21,456
2026 T2 19,08876 2026 T2 19,29655 2026T2 20,149
2026 T3 18,7902 2026 T3 19,27316 2026T3 19,102
2026 T4 19,89936 2026 T4 19,79957 2026T4 19,59
2027 T1 18,47075 2027 T1 18,43108 2027T1 18,835
2027 T2 16,36878 2027 T2 16,1 2027T2 16,32
2027 T3 16,41753 2027 T3 16,11554 2027T3 16,43572
2027 T4 17,33184 2027 T4 16,90206 2027T4 18,30005
2028 T1 17,39668 2028 T1 16,86513 2028T1 17,086
2028 T2 17,74587 2028 T2 17,37939 2028T2 17,206
2028 T3 18,13573 2028 T3 17,80193 2028T3 17,96805
2028 T4 19,71903 2028 T4 19,5125 2028T4 19,356
2029 T1 19,22077 2029 T1 18,49979 2029T1 18,58267
2029 T2 19,20408 2029 T2 18,94277 2029T2 18,78367
2029 T3 18,14352 2029 T3 17,64716 2029T3 17,065
2029 T4 19,16107 2029 T4 19,09947 2029T4 19,037
2030 T1 17,18386 2030 T1 16,60731 2030T1 18,81221
2030 T2 17,52738 2030 T2 16,78373 2030T2 17,7625
2030 T3 16,63923 2030 T3 16,20033 2030T3 16,58536
2030 T4 18,16672 2030 T4 17,59874 2030T4 17,62736
2031 T1 17,58938 2031 T1 17,01573 2031T1 18,80927
2031 T2 18,12663 2031 T2 17,57093 2031T2 17,15306
2031 T3 17,77755 2031 T3 17,47575 2031T3 18,33436
2031 T4 16,96959 2031 T4 16,27166 2031T4 16,67365

RIDGE SVM RANDOM FOREST

15-24
trimestres PREDICTION TRIMESTRES PREDICTION trimestre prediction
2023 T4 35,05098 2023 T4 21,68641 2023T4 32,21
2024 T1 36,99166 2024 T1 22,19366 2024T1 32,248
2024 T2 32,87648 2024 T2 19,40974 2024T2 30,599
2024 T3 28,99408 2024 T3 20,18241 2024T3 28,398
2024 T4 32,32493 2024 T4 21,8024 2024T4 31,734
2025 T1 32,849 2025 T1 22,60712 2025T1 31,537
2025 T2 31,08598 2025 T2 20,75677 2025T2 31,3
2025 T3 29,98374 2025 T3 22,7018 2025T3 31,02
2025 T4 32,20329 2025 T4 21,92211 2025T4 32,268
2026 T1 33,14415 2026 T1 21,70011 2026T1 32,509
2026 T2 33,51634 2026 T2 19,20376 2026T2 32,49
2026 T3 32,03195 2026 T3 17,96415 2026T3 32,346
2026 T4 26,44799 2026 T4 19,67445 2026T4 26,628

39
2027 T1 27,91196 2027 T1 18,72167 2027T1 27,78
2027 T2 26,77256 2027 T2 16,09996 2027T2 26,692
2027 T3 22,01132 2027 T3 16,12639 2027T3 22,07287
2027 T4 24,14204 2027 T4 18,72643 2027T4 23,875
2028 T1 26,17274 2028 T1 16,50011 2028T1 25,831
2028 T2 25,68281 2028 T2 17,23792 2028T2 25,196
2028 T3 23,85602 2028 T3 17,91133 2028T3 24,288
2028 T4 25,24927 2028 T4 19,54645 2028T4 26,625
2029 T1 27,89642 2029 T1 18,45901 2029T1 28,254
2029 T2 28,62557 2029 T2 18,92638 2029T2 28,46701
2029 T3 22,82289 2029 T3 17,0524 2029T3 24,023
2029 T4 26,23729 2029 T4 19,00022 2029T4 26,259
2030 T1 22,63367 2030 T1 19,49986 2030T1 22,05243
2030 T2 21,82878 2030 T2 18,1014 2030T2 21,612
2030 T3 20,46412 2030 T3 16,12423 2030T3 21,44144
2030 T4 23,32179 2030 T4 17,65133 2030T4 23,16179
2031 T1 21,38817 2031 T1 19,03839 2031T1 20,58786
2031 T2 21,81524 2031 T2 17,1779 2031T2 21,81724
2031 T3 19,85804 2031 T3 18,02162 2031T3 20,88342
2031 T4 22,51976 2031 T4 16,26698 2031T4 21,75877

RIDGE SVM RANDOM FOREST

25-34
TRIMESTRES PREDICTION TRIMESTRE PREDICTION trimestre prediction
2023 T4 20,95394 2023 T4 20,2341 2023T4 19,342
2024 T1 20,29726 2024 T1 20,05823 2024T1 19,229
2024 T2 18,57751 2024 T2 18,32467 2024T2 17,233
2024 T3 17,91438 2024 T3 17,44616 2024T3 17,666
2024 T4 19,21835 2024 T4 18,97636 2024T4 18,689
2025 T1 19,75461 2025 T1 19,20933 2025T1 18,774
2025 T2 18,6482 2025 T2 18,29481 2025T2 18,805
2025 T3 20,30782 2025 T3 19,66261 2025T3 20,225
2025 T4 19,53899 2025 T4 19,49972 2025T4 19,354
2026 T1 19,15981 2026 T1 19,07571 2026T1 18,851
2026 T2 19,63237 2026 T2 19,54459 2026T2 19,03
2026 T3 17,61331 2026 T3 18,09992 2026T3 17,94237
2026 T4 16,73225 2026 T4 16,37981 2026T4 17,195
2027 T1 16,0404 2027 T1 16,17953 2027T1 16,071
2027 T2 14,59164 2027 T2 14,65386 2027T2 15,039
2027 T3 13,14434 2027 T3 12,70879 2027T3 13,96012
2027 T4 14,96684 2027 T4 14,60908 2027T4 15,078
2028 T1 15,422 2028 T1 15,15673 2028T1 15,07837
2028 T2 14,759 2028 T2 14,60003 2028T2 14,775

40
2028 T3 14,62149 2028 T3 14,52307 2028T3 15,01836
2028 T4 16,5176 2028 T4 16,60079 2028T4 16,597
2029 T1 16,59335 2029 T1 16,59118 2029T1 16,419
2029 T2 16,29839 2029 T2 16,58374 2029T2 15,994
2029 T3 14,51888 2029 T3 14,54316 2029T3 14,59337
2029 T4 16,70529 2029 T4 16,79073 2029T4 16,526
2030 T1 12,89151 2030 T1 13,3517 2030T1 13,72236
2030 T2 13,69242 2030 T2 13,89991 2030T2 14,13934
2030 T3 12,31219 2030 T3 12,66127 2030T3 12,30093
2030 T4 14,65833 2030 T4 14,5998 2030T4 14,59324
2031 T1 13,8268 2031 T1 13,80066 2031T1 13,93973
2031 T2 14,45206 2031 T2 14,57126 2031T2 14,88085
2031 T3 12,8233 2031 T3 12,90431 2031T3 12,21683
2031 T4 14,35024 2031 T4 14,23706 2031T4 14,2779

RIDGE SVM RANDOM FOREST

35 - 44
trimestres PREDICTION TRIMESTRES PREDICTION trimestres prediction
2023 T4 7,446487 2023 T4 7,418993 2023T4 7,454
2024 T1 6,966019 2024 T1 6,981625 2024T1 7,488
2024 T2 6,064067 2024 T2 5,974832 2024T2 5,78677
2024 T3 6,05624 2024 T3 5,99221 2024T3 5,897
2024 T4 6,896667 2024 T4 6,827441 2024T4 6,654
2025 T1 6,408087 2025 T1 6,383301 2025T1 6,549
2025 T2 6,573579 2025 T2 6,512197 2025T2 6,513
2025 T3 7,764109 2025 T3 7,673177 2025T3 7,495
2025 T4 7,145703 2025 T4 7,090904 2025T4 7,277
2026 T1 6,918135 2026 T1 6,900875 2026T1 6,974
2026 T2 8,008782 2026 T2 7,900761 2026T2 7,763
2026 T3 7,606465 2026 T3 7,59986 2026T3 7,007
2026 T4 5,511489 2026 T4 5,479435 2026T4 5,349763
2027 T1 4,856789 2027 T1 4,888331 2027T1 5,100763
2027 T2 4,489705 2027 T2 4,504869 2027T2 4,538
2027 T3 3,643944 2027 T3 3,600254 2027T3 3,956
2027 T4 4,393204 2027 T4 4,296851 2027T4 4,280763
2028 T1 4,19591 2028 T1 4,20625 2028T1 4,411763
2028 T2 4,632139 2028 T2 4,644737 2028T2 4,405
2028 T3 4,3694 2028 T3 4,399249 2028T3 4,335763
2028 T4 5,672496 2028 T4 5,599681 2028T4 5,633526
2029 T1 5,359295 2029 T1 5,398629 2029T1 5,138763
2029 T2 5,547273 2029 T2 5,600431 2029T2 5,424267
2029 T3 4,500958 2029 T3 4,499382 2029T3 4,488029
2029 T4 5,883282 2029 T4 5,831706 2029T4 6,031504

41
2030 T1 4,522356 2030 T1 4,499552 2030T1 4,538578
2030 T2 4,990772 2030 T2 4,97115 2030T2 5,075368
2030 T3 4,562438 2030 T3 4,503936 2030T3 4,586555
2030 T4 5,489096 2030 T4 5,476938 2030T4 5,381561
2031 T1 4,729035 2031 T1 4,693417 2031T1 4,902815
2031 T2 5,521055 2031 T2 5,500178 2031T2 5,522553
2031 T3 4,870428 2031 T3 4,809373 2031T3 4,978095
2031 T4 5,360725 2031 T4 5,350408 2031T4 5,409516

RIDGE SVM RANDOM FOREST

45 ET
PLUS
trimestres PREDICTION TRIMESTRES prediction Trimestre prediction
2023 T4 4,143004 2023 T4 4,124167 2023T4 4,002361
2024 T1 4,28932 2024 T1 4,138215 2024T1 3,843492
2024 T2 3,328472 2024 T2 3,129392 2024T2 3,122246
2024 T3 3,055144 2024 T3 3,030432 2024T3 2,649
2024 T4 3,494659 2024 T4 3,488441 2024T4 3,274623
2025 T1 3,366812 2025 T1 3,300225 2025T1 3,086
2025 T2 3,61727 2025 T2 3,544558 2025T2 3,436623
2025 T3 4,156536 2025 T3 4,204031 2025T3 4,087115
2025 T4 3,801517 2025 T4 3,757951 2025T4 3,976246
2026 T1 3,851995 2026 T1 3,803727 2026T1 4,226623
2026 T2 4,539679 2026 T2 4,499439 2026T2 4,328
2026 T3 4,353086 2026 T3 4,386324 2026T3 4,297623
2026 T4 2,666861 2026 T4 2,700192 2026T4 2,529
2027 T1 2,334081 2027 T1 2,284529 2027T1 2,295498
2027 T2 2,261383 2027 T2 2,200297 2027T2 2,114
2027 T3 1,586368 2027 T3 1,553868 2027T3 1,851
2027 T4 1,881288 2027 T4 1,842286 2027T4 1,860375
2028 T1 1,990849 2028 T1 1,876395 2028T1 2,082
2028 T2 2,106386 2028 T2 2,147235 2028T2 2,002
2028 T3 1,819666 2028 T3 1,898851 2028T3 1,947124
2028 T4 2,39189 2028 T4 2,445965 2028T4 2,484749
2029 T1 2,5997 2029 T1 2,607771 2029T1 2,469124
2029 T2 2,670057 2029 T2 2,713601 2029T2 2,416623
2029 T3 1,923793 2029 T3 1,942046 2029T3 2,188124
2029 T4 2,876818 2029 T4 2,870426 2029T4 2,76862
2030 T1 2,331984 2030 T1 2,299239 2030T1 2,188375
2030 T2 2,884374 2030 T2 2,811274 2030T2 2,931124
2030 T3 2,208048 2030 T3 2,186053 2030T3 2,294749
2030 T4 3,097807 2030 T4 3,101486 2030T4 2,90885
2031 T1 2,443053 2031 T1 2,447422 2031T1 2,157873

42
2031 T2 3,121162 2031 T2 3,100012 2031T2 3,02185
2031 T3 2,26366 2031 T3 2,337865 2031T3 2,387344
2031 T4 3,253623 2031 T4 3,194063 2031T4 3,348229

Nous avons développé trois modèles - régression Ridge, SVM (Support Vector
Machine) et random forest , et après l'exécution du code, nous avons obtenu les
erreurs suivantes :

RIDGE : 0.35459514169108197

SVM : 0.4210407659164737

RANDOM FOREST : 0.6551384782763755.

En analysant ces résultats, nous avons conclu que le modèle de régression Ridge affiche
la meilleure performance, suivi du SVM, tandis que le modèle de random forest a
présenté la performance la moins satisfaisante.

Résultat général :
Taux de chômage au Maroc en 2030 sera 10.224182772727273 %

Taux de chômage au Maroc en 2023 est 12,9 %

Donc le chômage va diminuer de 2,67% d’ici à 2030.

Donc on accepte notre hypothèse nulle H0.

43
Conclusion
La réalisation de ce projet a été pour nous l'occasion de découvrir plusieurs outils de
fouille de données. De plus, nous avons pu consolider les connaissances acquise durant
le cours de DataMining, enrichir notre expérience en matière d'analyse et comprendre
l'utilité et les perspectives de l'exploration de données.
Suite à cette analyse, nous avons conclu que le modèle de régression Ridge affiche la
meilleure performance, suivi du SVM, tandis que le modèle de random forest a
présenté la performance la moins satisfaisante.
En extrapolant ces résultats, nous avons également examiné les prévisions du taux de
chômage au Maroc. Selon nos projections, le taux de chômage en 2030 est estimé à
10.22%, ce qui représente une diminution significative par rapport au taux de chômage
de 12.9% en 2023. Cette baisse de 2.67% soutient notre hypothèse nulle (H0),
indiquant une amélioration de la situation de l'emploi d'ici 2030. Ces résultats
encourageants renforcent la validité de nos analyses et prédictions basées sur les
modèles de régression Ridge, SVM, et random forest.

44

Vous aimerez peut-être aussi