This commit is contained in:
stiti
2024-06-15 19:42:14 +02:00
parent e2283e953e
commit 10a0f3e2d1
15 changed files with 208 additions and 144 deletions

View File

@@ -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
## Table des matières
@@ -28,12 +14,9 @@ Pour cette exercice, veuillez initaliser les variables suivantes :
**[Script Scilab](scripts/init.sce) :**
```scilab
// Charger les données depuis le fichier CSV
data = csvRead('data.csv');
// Extraire les colonnes pertinentes (âge et salaire)
age = data(:, 2);
salaire = data(:, 7);
D = csvRead('data.csv');
DD = csvRead('data.csv',',','.','string');
genre = DD(:,3);
```
---
@@ -45,71 +28,42 @@ salaire = data(:, 7);
**[Script Scilab](scripts/q1.sce) :**
```scilab
// Vérifier les dimensions
disp(size(age));
disp(size(salaire));
clf;
// Tracer le nuage de points avec les vraies données
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);
X=csvDouble(:,7)
Y=csvDouble(:,2)
plot2d(X,Y,-1)
[a,b] = reglin(X',Y')
y_reg = a*X+b
plot2d(X,y_reg,5)
corrcoef(X,Y)
```
**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) :**
```scilab
niveau_etudes = D(:, 4);
salaires = D(:, 7);
unique_niveaux = unique(niveau_etudes);
moy_salaire_par_niveau = zeros(size(unique_niveaux));
for i = 1:length(unique_niveaux)
moy_salaire_par_niveau(i) = mean(salaires(niveau_etudes == unique_niveaux(i)));
end
bar(unique_niveaux, moy_salaire_par_niveau);
xlabel("Niveau d''études");
ylabel("Salaire moyen");
title("Salaire moyen par niveau d''études");
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)
```
**Résultat :**
![q2](img/q2.png)
- Coefficient de corrélation : 0.8089689
- ![q2](img/q2.png)
---

BIN
EXO4/img/q1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

BIN
EXO4/img/q2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View File

@@ -1,6 +1,2 @@
// Charger les données depuis le fichier CSV
data = csvRead('data.csv');
// Extraire les colonnes pertinentes (âge et salaire)
age = data(:, 2);
salaire = data(:, 7);
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

View File

@@ -1,31 +1,7 @@
// Vérifier les dimensions
disp(size(age));
disp(size(salaire));
clf;
// Tracer le nuage de points avec les vraies données
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);
X=csvDouble(:,7)
Y=csvDouble(:,2)
plot2d(X,Y,-1)
[a,b] = reglin(X',Y')
y_reg = a*X+b
plot2d(X,y_reg,5)
corrcoef(X,Y)

7
EXO4/scripts/q2.sce Normal file
View 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)