J'ai quelques données dichotomiques, seulement des variables binaires, et mon patron m'a demandé d'effectuer une analyse factorielle en utilisant la matrice de corrélations tétrachoriques. J'ai déjà pu m'apprendre à exécuter différentes analyses sur la base des exemples ici et sur le site de statistiques de l' UCLA et d'autres sites similaires, mais je n'arrive pas à trouver une étape à travers un exemple d'analyse factorielle sur dichotomique données (variables binaires) à l'aide de R.
J'ai vu la réponse de chl à une question un peu similaire et j'ai également vu la réponse de ttnphns , mais je cherche quelque chose de plus explicite , une étape dans un exemple avec lequel je peux travailler.
Quelqu'un ici connaît-il une telle étape grâce à un exemple d'analyse factorielle sur des variables binaires utilisant R?
Mise à jour 2012-07-11 22: 03: 35Z
Je dois également ajouter que je travaille avec un instrument établi, qui a trois dimensions, auquel nous avons ajouté quelques questions supplémentaires et nous espérons maintenant trouver quatre dimensions distinctes. De plus, notre taille d'échantillon n'est que de et nous avons actuellement articles. J'ai comparé notre taille d'échantillon et notre nombre d'articles à un certain nombre d'articles de psychologie et nous sommes définitivement dans le bas de l'échelle, mais nous voulions quand même l'essayer. Cependant, ce n'est pas important pour l' exemple pas à pas que je recherche et l' exemple de caracal ci-dessous est vraiment incroyable. Je vais travailler à ma façon en utilisant mes données dès le matin.
la source
Réponses:
Je suppose que la question est centrée moins sur le côté théorique et plus sur le côté pratique, c'est-à-dire comment mettre en œuvre une analyse factorielle des données dichotomiques dans R.
Tout d'abord, simulons 200 observations à partir de 6 variables, provenant de 2 facteurs orthogonaux. Je vais prendre quelques étapes intermédiaires et commencer avec des données continues normales multivariées que je dichotomiserai plus tard. De cette façon, nous pouvons comparer les corrélations de Pearson avec les corrélations polychoriques et comparer les charges factorielles des données continues avec celles des données dichotomiques et les charges réelles.
Faites l'analyse factorielle des données continues. Les charges estimées sont similaires aux vraies en ignorant le signe non pertinent.
Maintenant, dichotomisons les données. Nous conserverons les données sous deux formats: sous forme de bloc de données avec des facteurs ordonnés et sous forme de matrice numérique.
hetcor()
du packagepolycor
nous donne la matrice de corrélation polychorique que nous utiliserons plus tard pour la FA.Utilisez maintenant la matrice de corrélation polychorique pour effectuer une FA régulière. Notez que les charges estimées sont assez similaires à celles des données continues.
Vous pouvez ignorer l'étape de calcul de la matrice de corrélation polychorique vous-même et utiliser directement à
fa.poly()
partir du packagepsych
, qui fait la même chose au final. Cette fonction accepte les données dichotomiques brutes comme une matrice numérique.EDIT: Pour les scores factoriels, regardez le package
ltm
qui a unefactor.scores()
fonction spécifique pour les données de résultats polytomiques. Un exemple est fourni sur cette page -> "Scores des facteurs - Estimations des capacités".Vous pouvez visualiser les chargements à partir de l'analyse factorielle en utilisant
factor.plot()
etfa.diagram()
, à la fois à partir du packagepsych
. Pour une raison quelconque,factor.plot()
accepte uniquement le$fa
composant du résultat defa.poly()
, pas l'objet complet.Une analyse parallèle et une analyse de "structure très simple" aident à sélectionner le nombre de facteurs. Encore une fois, le package
psych
a les fonctions requises.vss()
prend comme argument la matrice de corrélation polychorique.L'analyse parallèle pour FA polychorique est également fournie par le package
random.polychor.pa
.Notez que les fonctions
fa()
etfa.poly()
fournissent beaucoup plus d'options pour configurer le FA. De plus, j'ai édité une partie de la sortie qui donne la qualité des tests d'ajustement, etc. La documentation de ces fonctions (et du packagepsych
en général) est excellente. Cet exemple vise uniquement à vous aider à démarrer.la source
psych
permet en quelque sorte d'estimer les scores des facteurs lorsque des corrélations poly / tétra-choriques sont utilisées à la place du r Pearson habituel?psych
ce dû au fait que nous avions affaire à r tétrachorique, pas à r habituel, lorsqu'il calcule les scores factoriels, ou non?nearcor()
fromsfsmisc
oucor.smooth()
frompsych
sont utilisées dans ce cas.psych
« sfactor.scores()
, ce n'est pas le cas. Au lieu de cela, les scores sont calculés comme dans le cas continu. Cependant, lafactor.scores()
fonction dans le packageltm
semble implémenter les procédures correctes, voir cet exemple -> "Factor Scores - Ability Estimates" et la page d'aide.