style1
Procédurier - Utiliser R en mesure et évaluation
Section 09 C - Analyse du PISA2006 par l'analyse factorielle.
Voici la section où nous ferons une analyse factorielle en utilisant des scores associés aux mathématiques et aux sciences.
##=============================================================================
## Fichier: Section_09C_gamma.r date: juin 2009
## Auteur: AndréSèb Aubin (andreseb.aubin@gmail.com)
##
## Dans ce script
## Analyse de données du PISA2006 par l'analyse factorielle
##
## F_In: data1 (fait dans le script transtype_alpha.r)
## Vérification du nombre de facteurs
##
##=============================================================================
##=============================================================================
## 00 - N'oubliez pas de vous assurez que toutes les librairies sont chargées.
##=============================================================================
score_compil <- na.omit(data1)
View(score_compil)
write.table(score_compil, file="score_2006.dat", row.names=TRUE, col.names=TRUE, sep="\t")
X <- score_compil
## Première étape, trouvons la matrice de corrélations de notre matrice de données X.
CX <- cor(X)
## Trouvons ensuite la valeurs des vecteurs propres de la matrice CX
ECX <- eigen(CX)
## Dans le cas de l'analyse factorielle, la représentation graphique est souvent intéressante.
plot(eigen(CX)$values, type="b", xlab="Composante", ylab="Valeur Propre")
lines(x=c(0,9),y=c(1,1), col="red")
Voici le schéma résultant de cette première méthode.
## Cependant, tous les cas, ne sont pas aussi simple. Une solution consiste à remplacer,
## dans la matrice de corrélation de la matrice de corrélations, la diagonale par les
## valeurs propres de la matrice CCX.
CCX <- cor(CX)
CCX
diag(CCX) <- apply(eigen(CCX)$vectors[,1:3],1,function(x) sum(xˆ2))
CCX
## Ensuite, on recalcule les valeurs propres de cette nouvelle matrice.
ECCX <- eigen(CCX)
## On peut ensuite réaliser le graphique des valeurs propres.
plot(eigen(CCX)$values, type="b", xlab="Composante", ylab="Valeur Propre")
lines(x=c(0,9),y=c(1,1), col="red")
print(varimax(ECCX$vectors[,1:3], normalize = FALSE),cutoff=0)
Et maintenant le schéma résultant de cette seconde méthode.
###=========================================================================
## Certaines fonctions de l'environnement R nous permettent d'accélérer l'obtention des
## facteurs. La fonctions princomp() retourne l'analyse des composante.
pc.cr <- princomp(X, cor= TRUE) # cor=TRUE utilise la matrice de corrélation pour les calculs.
summary(pc.cr) ## affiche le contenu de pc.cr sous formes résumé.
## Pour apercevoir le contenu de notre matrice en enlevant les entrées trop petites
## il est possible de modifier la valeur de cutoff.
print(loadings(pc.cr), cutoff=0) # cutoff = 0 affichera toutes les valeurs
print(loadings(pc.cr), cutoff=0.1) # cutoff=0.100 n'affichera que les valeurs plus grande que |0.100| (en valeur absolue)
## La fonction plot(pc.cr) permet d'afficher le diagramme des éboulis.
## À partir de ce diagramme, il est possible d'extraire les facteurs en observant
## le changement dans la pente du graphique.
plot(pc.cr) # affiche le graphique des éboulis.
biplot(pc.cr) # affiche le graphique biplot qui présente sous forme vectorielle.
###================ Fin du script Section_09C_gamma.r ======================#