Modifs
This commit is contained in:
parent
e2283e953e
commit
10a0f3e2d1
110
EXO3/README.md
110
EXO3/README.md
@ -146,60 +146,102 @@ boxplot(csvDouble(:,7),"orientation","horizontal")
|
|||||||
|
|
||||||
> Refaire la question précédente, en distinguant les genres. Tracez une boîte à moustache pour chaque genre. Commentaires ?
|
> Refaire la question précédente, en distinguant les genres. Tracez une boîte à moustache pour chaque genre. Commentaires ?
|
||||||
|
|
||||||
**[Script Scilab](scripts/q4.sce) :**
|
**[Script Scilab - Autres](scripts/q4-autres.sce) :**
|
||||||
|
|
||||||
```scilab
|
```scilab
|
||||||
MARCO ???
|
id_other = find(csvString(:,3) == "Other" )
|
||||||
MARCO ???
|
salaire_other = csvDouble(id_other,7)
|
||||||
MARCO ???
|
mean(salaire_other) //moyenne
|
||||||
MARCO ???
|
min(salaire_other) //min
|
||||||
MARCO ???
|
max(salaire_other) //max
|
||||||
MARCO ???
|
median(salaire_other) //médianne
|
||||||
|
quart(salaire_other) //quartile
|
||||||
|
iqr(salaire_other) //interquartile
|
||||||
|
stdev(salaire_other) //ecart-type
|
||||||
|
sal = tabul(salaire_other);
|
||||||
|
[occurence_tri,indice_tri] = gsort(sal(:,2));
|
||||||
|
liste_sal = sal(:,1);
|
||||||
|
mode = liste_sal(indice_tri(1)) //mode
|
||||||
|
boxplot(salaire_female,"orientation","horizontal")
|
||||||
|
```
|
||||||
|
|
||||||
|
**[Script Scilab - Femmes](scripts/q4-femme.sce) :**
|
||||||
|
|
||||||
MARCO ???
|
```scilab
|
||||||
MARCO ???MARCO ???MARCO ???
|
id_female = find(csvString(:,3) == "Female" )
|
||||||
MARCO ???
|
salaire_female = csvDouble(id_female,7)
|
||||||
MARCO ???
|
mean(salaire_female) //moyenne
|
||||||
MARCO ???
|
min(salaire_female) //min
|
||||||
|
max(salaire_female) //max
|
||||||
|
median(salaire_female) //médianne
|
||||||
|
quart(salaire_female) //quartile
|
||||||
|
iqr(salaire_female) //interquartile
|
||||||
|
stdev(salaire_female) //ecart-type
|
||||||
|
sal = tabul(salaire_female);
|
||||||
|
[occurence_tri,indice_tri] = gsort(sal(:,2));
|
||||||
|
liste_sal = sal(:,1);
|
||||||
|
mode = liste_sal(indice_tri(1)) //mode
|
||||||
|
boxplot(salaire_female,"orientation","horizontal")
|
||||||
|
```
|
||||||
|
|
||||||
|
**[Script Scilab - Hommes](scripts/q4-homme.sce) :**
|
||||||
|
|
||||||
|
```scilab
|
||||||
|
id_male = find(csvString(:,3) == "Male" )
|
||||||
|
salaire_male = csvDouble(id_male,7)
|
||||||
|
mean(salaire_male) //moyenne
|
||||||
|
min(salaire_male) //min
|
||||||
|
max(salaire_male) //max
|
||||||
|
median(salaire_male) //médianne
|
||||||
|
quart(salaire_male) //quartile
|
||||||
|
iqr(salaire_male) //interquartile
|
||||||
|
stdev(salaire_male) //ecart-type
|
||||||
|
sal = tabul(salaire_male);
|
||||||
|
[occurence_tri,indice_tri] = gsort(sal(:,2));
|
||||||
|
liste_sal = sal(:,1);
|
||||||
|
mode = liste_sal(indice_tri(1)) //mode
|
||||||
|
boxplot(salaire_male,"orientation","horizontal")
|
||||||
```
|
```
|
||||||
|
|
||||||
**Résultat :**
|
**Résultat :**
|
||||||
|
|
||||||
- Hommes :
|
- Hommes :
|
||||||
|
|
||||||
- Quartiles : [Q1, Q2 (médiane), Q3] = [..., ..., ...]
|
- Quartiles : [Q1, Q2 (médiane), Q3] = [75000, 120000, 170000]
|
||||||
- Interquartile Range (IQR) : QH(3) - QH(1) = ...
|
- Interquartile Range (IQR) : QH(3) - QH(1) = 95000
|
||||||
- Minimum : ...
|
- Minimum : 350
|
||||||
- Maximum : ...
|
- Maximum : 250000
|
||||||
- Moyenne : ...
|
- Moyenne : 121389.87
|
||||||
- Médiane : ...
|
- Médiane : 120000
|
||||||
- Écart-type : ...
|
- Écart-type : 52092.726
|
||||||
|
- Mode : 140000
|
||||||
|
|
||||||
![q4-homme](img/q4-homme.png)
|
![q4-homme](img/q4-homme.png)
|
||||||
|
|
||||||
|
|
||||||
- Femmes :
|
- Femmes :
|
||||||
|
|
||||||
- Quartiles : [Q1, Q2 (médiane), Q3] = [..., ..., ...]
|
- Quartiles : [Q1, Q2 (médiane), Q3] = [60000, 105000, 150000]
|
||||||
- Interquartile Range (IQR) : QF(3) - QF(1) = ...
|
- Interquartile Range (IQR) : QF(3) - QF(1) = 90000
|
||||||
- Minimum : ...
|
- Minimum : 500
|
||||||
- Maximum : ...
|
- Maximum : 220000
|
||||||
- Moyenne : ...
|
- Moyenne : 107889.00
|
||||||
- Médiane : ...
|
- Médiane : 105000
|
||||||
- Écart-type : ...
|
- Écart-type : 52723.610
|
||||||
|
- Mode : 120000
|
||||||
|
|
||||||
![q4-femme](img/q4-femme.png)
|
![q4-femme](img/q4-femme.png)
|
||||||
|
|
||||||
- Femmes :
|
- Autres :
|
||||||
|
|
||||||
- Quartiles : [Q1, Q2 (médiane), Q3] = [..., ..., ...]
|
- Quartiles : [Q1, Q2 (médiane), Q3] = [69032, 158610, 161393]
|
||||||
- Interquartile Range (IQR) : QF(3) - QF(1) = ...
|
- Interquartile Range (IQR) : QF(3) - QF(1) = 92361
|
||||||
- Minimum : ...
|
- Minimum : 62852
|
||||||
- Maximum : ...
|
- Maximum : 166109
|
||||||
- Moyenne : ...
|
- Moyenne : 125869.86
|
||||||
- Médiane : ...
|
- Médiane : 158610
|
||||||
- Écart-type : ...
|
- Écart-type : 44242.383
|
||||||
|
- Mode : 158966
|
||||||
|
|
||||||
![q4-autres](img/q4-autres.png)
|
![q4-autres](img/q4-autres.png)
|
||||||
|
|
||||||
|
@ -1,3 +1,2 @@
|
|||||||
D = csvRead('data.csv');
|
csvDouble = csvRead("data.csv") //ouvre data.csv en une matrice d'entier
|
||||||
DD = csvRead('data.csv',',','.','string');
|
csvString = csvRead("data.csv",[],[],'string') //ouvre data.csv en une matrice de string
|
||||||
genre = DD(:,3);
|
|
@ -1,3 +1,14 @@
|
|||||||
id_other = find(csvString(:,3) == "Other" )
|
id_other = find(csvString(:,3) == "Other" )
|
||||||
salaire_other = csvDouble(id_other,7)
|
salaire_other = csvDouble(id_other,7)
|
||||||
|
mean(salaire_other) //moyenne
|
||||||
|
min(salaire_other) //min
|
||||||
|
max(salaire_other) //max
|
||||||
|
median(salaire_other) //médianne
|
||||||
|
quart(salaire_other) //quartile
|
||||||
|
iqr(salaire_other) //interquartile
|
||||||
|
stdev(salaire_other) //ecart-type
|
||||||
|
sal = tabul(salaire_other);
|
||||||
|
[occurence_tri,indice_tri] = gsort(sal(:,2));
|
||||||
|
liste_sal = sal(:,1);
|
||||||
|
mode = liste_sal(indice_tri(1)) //mode
|
||||||
boxplot(salaire_female,"orientation","horizontal")
|
boxplot(salaire_female,"orientation","horizontal")
|
@ -1,3 +1,14 @@
|
|||||||
id_female = find(csvString(:,3) == "Female" )
|
id_female = find(csvString(:,3) == "Female" )
|
||||||
salaire_female = csvDouble(id_female,7)
|
salaire_female = csvDouble(id_female,7)
|
||||||
|
mean(salaire_female) //moyenne
|
||||||
|
min(salaire_female) //min
|
||||||
|
max(salaire_female) //max
|
||||||
|
median(salaire_female) //médianne
|
||||||
|
quart(salaire_female) //quartile
|
||||||
|
iqr(salaire_female) //interquartile
|
||||||
|
stdev(salaire_female) //ecart-type
|
||||||
|
sal = tabul(salaire_female);
|
||||||
|
[occurence_tri,indice_tri] = gsort(sal(:,2));
|
||||||
|
liste_sal = sal(:,1);
|
||||||
|
mode = liste_sal(indice_tri(1)) //mode
|
||||||
boxplot(salaire_female,"orientation","horizontal")
|
boxplot(salaire_female,"orientation","horizontal")
|
@ -1,3 +1,14 @@
|
|||||||
id_male = find(csvString(:,3) == "Male" )
|
id_male = find(csvString(:,3) == "Male" )
|
||||||
salaire_male = csvDouble(id_male,7)
|
salaire_male = csvDouble(id_male,7)
|
||||||
|
mean(salaire_male) //moyenne
|
||||||
|
min(salaire_male) //min
|
||||||
|
max(salaire_male) //max
|
||||||
|
median(salaire_male) //médianne
|
||||||
|
quart(salaire_male) //quartile
|
||||||
|
iqr(salaire_male) //interquartile
|
||||||
|
stdev(salaire_male) //ecart-type
|
||||||
|
sal = tabul(salaire_male);
|
||||||
|
[occurence_tri,indice_tri] = gsort(sal(:,2));
|
||||||
|
liste_sal = sal(:,1);
|
||||||
|
mode = liste_sal(indice_tri(1)) //mode
|
||||||
boxplot(salaire_male,"orientation","horizontal")
|
boxplot(salaire_male,"orientation","horizontal")
|
@ -1,17 +1,3 @@
|
|||||||
# NON FINIT !!!
|
|
||||||
# NON FINIT !!!
|
|
||||||
|
|
||||||
# NON FINIT !!!# NON FINIT !!!
|
|
||||||
# NON FINIT !!!
|
|
||||||
# NON FINIT !!!
|
|
||||||
# NON FINIT !!!
|
|
||||||
# NON FINIT !!!
|
|
||||||
# NON FINIT !!!
|
|
||||||
|
|
||||||
|
|
||||||
# NON FINIT !!!
|
|
||||||
# NON FINIT !!!
|
|
||||||
|
|
||||||
# Exercice 4 : Analyse de la relation entre âge, expérience et salaire
|
# Exercice 4 : Analyse de la relation entre âge, expérience et salaire
|
||||||
|
|
||||||
## Table des matières
|
## Table des matières
|
||||||
@ -28,12 +14,9 @@ Pour cette exercice, veuillez initaliser les variables suivantes :
|
|||||||
**[Script Scilab](scripts/init.sce) :**
|
**[Script Scilab](scripts/init.sce) :**
|
||||||
|
|
||||||
```scilab
|
```scilab
|
||||||
// Charger les données depuis le fichier CSV
|
D = csvRead('data.csv');
|
||||||
data = csvRead('data.csv');
|
DD = csvRead('data.csv',',','.','string');
|
||||||
|
genre = DD(:,3);
|
||||||
// Extraire les colonnes pertinentes (âge et salaire)
|
|
||||||
age = data(:, 2);
|
|
||||||
salaire = data(:, 7);
|
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -45,71 +28,42 @@ salaire = data(:, 7);
|
|||||||
**[Script Scilab](scripts/q1.sce) :**
|
**[Script Scilab](scripts/q1.sce) :**
|
||||||
|
|
||||||
```scilab
|
```scilab
|
||||||
// Vérifier les dimensions
|
X=csvDouble(:,7)
|
||||||
disp(size(age));
|
Y=csvDouble(:,2)
|
||||||
disp(size(salaire));
|
plot2d(X,Y,-1)
|
||||||
|
[a,b] = reglin(X',Y')
|
||||||
clf;
|
y_reg = a*X+b
|
||||||
|
plot2d(X,y_reg,5)
|
||||||
// Tracer le nuage de points avec les vraies données
|
corrcoef(X,Y)
|
||||||
scatter(age, salaire, 10, 'filled');
|
|
||||||
xlabel('Age');
|
|
||||||
ylabel('Salaire');
|
|
||||||
title('Nuage de points : Age vs Salaire');
|
|
||||||
|
|
||||||
A = [ones(length(age), 1), age];
|
|
||||||
coefficients = A \ salaire;
|
|
||||||
salaire_pred = A * coefficients;
|
|
||||||
|
|
||||||
// Tracer la droite de régression
|
|
||||||
plot(age, salaire, '+'); // Tracer le nuage de points
|
|
||||||
plot(age, salaire_pred, '-r'); // Tracer la droite de régression
|
|
||||||
legend(['Données', 'Droite de régression'], 'Location', 'northwest');
|
|
||||||
|
|
||||||
// Calcul manuel du coefficient de corrélation
|
|
||||||
mean_age = mean(age);
|
|
||||||
mean_salaire = mean(salaire);
|
|
||||||
numerateur = sum((age - mean_age) .* (salaire - mean_salaire));
|
|
||||||
denominateur = sqrt(sum((age - mean_age).^2) * sum((salaire - mean_salaire).^2));
|
|
||||||
correlation_coefficient = numerateur / denominateur;
|
|
||||||
|
|
||||||
// Affichage du coefficient de corrélation
|
|
||||||
disp('Le coefficient de corrélation est :');
|
|
||||||
disp(correlation_coefficient);
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Résultat :**
|
**Résultat :**
|
||||||
|
|
||||||
![q1](img/q1.png)
|
- Coefficient de corrélation : 0.7280526
|
||||||
|
- ![q1](img/q1.png)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Question 2 : Histogramme des salaires moyens par niveau d'études {#q2}
|
## Question 2 : Nuage de points et régression linéaire : Expérience vs Salaire {#q2}
|
||||||
|
|
||||||
> Tracez un histogramme des salaires moyens suivant le niveau d'études.
|
> Tracez un nuage de points (expérience,salaire), et la droite de regression correspondante. Quel est le coefficient de corrélation ?
|
||||||
|
|
||||||
**[Script Scilab](scripts/q2.sce) :**
|
**[Script Scilab](scripts/q2.sce) :**
|
||||||
|
|
||||||
```scilab
|
```scilab
|
||||||
niveau_etudes = D(:, 4);
|
X=csvDouble(:,7)
|
||||||
salaires = D(:, 7);
|
Y=csvDouble(:,6)
|
||||||
unique_niveaux = unique(niveau_etudes);
|
plot2d(X,Y,-1)
|
||||||
moy_salaire_par_niveau = zeros(size(unique_niveaux));
|
[a,b] = reglin(X',Y')
|
||||||
|
y_reg = a*X+b
|
||||||
for i = 1:length(unique_niveaux)
|
plot2d(X,y_reg,5)
|
||||||
moy_salaire_par_niveau(i) = mean(salaires(niveau_etudes == unique_niveaux(i)));
|
corrcoef(X,Y)
|
||||||
end
|
|
||||||
|
|
||||||
bar(unique_niveaux, moy_salaire_par_niveau);
|
|
||||||
|
|
||||||
xlabel("Niveau d''études");
|
|
||||||
ylabel("Salaire moyen");
|
|
||||||
title("Salaire moyen par niveau d''études");
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Résultat :**
|
**Résultat :**
|
||||||
|
|
||||||
![q2](img/q2.png)
|
- Coefficient de corrélation : 0.8089689
|
||||||
|
- ![q2](img/q2.png)
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
BIN
EXO4/img/q1.png
Normal file
BIN
EXO4/img/q1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 95 KiB |
BIN
EXO4/img/q2.png
Normal file
BIN
EXO4/img/q2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 97 KiB |
@ -1,6 +1,2 @@
|
|||||||
// Charger les données depuis le fichier CSV
|
csvDouble = csvRead("data.csv") //ouvre data.csv en une matrice d'entier
|
||||||
data = csvRead('data.csv');
|
csvString = csvRead("data.csv",[],[],'string') //ouvre data.csv en une matrice de string
|
||||||
|
|
||||||
// Extraire les colonnes pertinentes (âge et salaire)
|
|
||||||
age = data(:, 2);
|
|
||||||
salaire = data(:, 7);
|
|
@ -1,31 +1,7 @@
|
|||||||
// Vérifier les dimensions
|
X=csvDouble(:,7)
|
||||||
disp(size(age));
|
Y=csvDouble(:,2)
|
||||||
disp(size(salaire));
|
plot2d(X,Y,-1)
|
||||||
|
[a,b] = reglin(X',Y')
|
||||||
clf;
|
y_reg = a*X+b
|
||||||
|
plot2d(X,y_reg,5)
|
||||||
// Tracer le nuage de points avec les vraies données
|
corrcoef(X,Y)
|
||||||
scatter(age, salaire, 10, 'filled');
|
|
||||||
xlabel('Age');
|
|
||||||
ylabel('Salaire');
|
|
||||||
title('Nuage de points : Age vs Salaire');
|
|
||||||
|
|
||||||
A = [ones(length(age), 1), age];
|
|
||||||
coefficients = A \ salaire;
|
|
||||||
salaire_pred = A * coefficients;
|
|
||||||
|
|
||||||
// Tracer la droite de régression
|
|
||||||
plot(age, salaire, '+'); // Tracer le nuage de points
|
|
||||||
plot(age, salaire_pred, '-r'); // Tracer la droite de régression
|
|
||||||
legend(['Données', 'Droite de régression'], 'Location', 'northwest');
|
|
||||||
|
|
||||||
// Calcul manuel du coefficient de corrélation
|
|
||||||
mean_age = mean(age);
|
|
||||||
mean_salaire = mean(salaire);
|
|
||||||
numerateur = sum((age - mean_age) .* (salaire - mean_salaire));
|
|
||||||
denominateur = sqrt(sum((age - mean_age).^2) * sum((salaire - mean_salaire).^2));
|
|
||||||
correlation_coefficient = numerateur / denominateur;
|
|
||||||
|
|
||||||
// Affichage du coefficient de corrélation
|
|
||||||
disp('Le coefficient de corrélation est :');
|
|
||||||
disp(correlation_coefficient);
|
|
7
EXO4/scripts/q2.sce
Normal file
7
EXO4/scripts/q2.sce
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
X=csvDouble(:,7)
|
||||||
|
Y=csvDouble(:,6)
|
||||||
|
plot2d(X,Y,-1)
|
||||||
|
[a,b] = reglin(X',Y')
|
||||||
|
y_reg = a*X+b
|
||||||
|
plot2d(X,y_reg,5)
|
||||||
|
corrcoef(X,Y)
|
@ -1,2 +1,57 @@
|
|||||||
# SAE_2.04
|
# Exercice 5 : Analyse de la relation entre expérience et salaire par genre et niveau d'études
|
||||||
|
|
||||||
|
## Table des matières
|
||||||
|
1. [Initialisation des variables](#init)
|
||||||
|
2. [Nuage de points et régression linéaire : Expérience vs Salaire par genre](#q1)
|
||||||
|
3. [Nuage de points et régression linéaire : Expérience vs Salaire par niveau d'études](#q2)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Initialisation des variables {#init}
|
||||||
|
|
||||||
|
Pour cette exercice, veuillez initaliser les variables suivantes :
|
||||||
|
|
||||||
|
**[Script Scilab](scripts/init.sce) :**
|
||||||
|
|
||||||
|
```scilab
|
||||||
|
csvDouble = csvRead("data.csv") //ouvre data.csv en une matrice d'entier
|
||||||
|
csvString = csvRead("data.csv",[],[],'string') //ouvre data.csv en une matrice de string
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Question 1 : Nuage de points et régression linéaire : Expérience vs Salaire par genre {#q1}
|
||||||
|
|
||||||
|
> Tracez un nuage de points (salaire,expérience) pour les hommes et les femmes, ainsi que les droites de regression associées. Commentaire ?
|
||||||
|
|
||||||
|
**[Script Scilab](scripts/q1.sce) :**
|
||||||
|
|
||||||
|
```scilab
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
**Résultat :**
|
||||||
|
|
||||||
|
- Coefficient de corrélation : 0.7280526
|
||||||
|
- ![q1](img/q1.png)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Question 2 : Nuage de points et régression linéaire : Expérience vs Salaire par niveau d'études {#q2}
|
||||||
|
|
||||||
|
> Tracez un nuage de points (salaire,expérince) et les droites de regression associées pour chaque niveau d'études. Commentaire ?
|
||||||
|
|
||||||
|
**[Script Scilab](scripts/q2.sce) :**
|
||||||
|
|
||||||
|
```scilab
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
**Résultat :**
|
||||||
|
|
||||||
|
- ![q2](img/q2.png)
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[⬅️](../EXO4/ "Exercice précédent (Exercice 4)") | [🏠](../ "Retour au sommaire")
|
2
EXO5/scripts/init.sce
Normal file
2
EXO5/scripts/init.sce
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
csvDouble = csvRead("data.csv") //ouvre data.csv en une matrice d'entier
|
||||||
|
csvString = csvRead("data.csv",[],[],'string') //ouvre data.csv en une matrice de string
|
0
EXO5/scripts/q1.sce
Normal file
0
EXO5/scripts/q1.sce
Normal file
0
EXO5/scripts/q2.sce
Normal file
0
EXO5/scripts/q2.sce
Normal file
Loading…
Reference in New Issue
Block a user