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