Modifs
This commit is contained in:
@@ -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 :**
|
||||
|
||||

|
||||
- Coefficient de corrélation : 0.7280526
|
||||
- 
|
||||
|
||||
---
|
||||
|
||||
## 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 :**
|
||||
|
||||

|
||||
- Coefficient de corrélation : 0.8089689
|
||||
- 
|
||||
|
||||
|
||||
---
|
||||
|
||||
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
|
||||
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
|
||||
@@ -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
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)
|
||||
Reference in New Issue
Block a user