Eu tenho alguns dados dicotômicos, apenas variáveis binárias, e meu chefe me pediu para realizar uma análise fatorial usando a matriz de correlações tetracóricas. Anteriormente, eu fui capaz de me ensinar a executar análises diferentes com base nos exemplos aqui e no site de estatísticas da UCLA e em outros sites como esse, mas não consigo encontrar um passo no exemplo de uma análise fatorial sobre dicotômica. dados (variáveis binárias) usando R.
Eu vi a resposta de chl a uma pergunta um tanto semelhante e também vi a resposta dos tnphns , mas estou procurando algo ainda mais detalhado , um passo em um exemplo com o qual posso trabalhar.
Alguém aqui conhece esse passo através de um exemplo de análise fatorial em variáveis binárias usando R?
Atualização 2012-07-11 22: 03: 35Z
Devo acrescentar também que estou trabalhando com um instrumento estabelecido, que possui três dimensões, às quais adicionamos algumas perguntas adicionais e agora esperamos encontrar quatro dimensões distintas. Além disso, nosso tamanho de amostra é de apenas , e atualmente temos 19 itens. Comparei o tamanho da amostra e o número de itens com vários artigos de psicologia e, definitivamente, estamos no nível mais baixo, mas queríamos tentar de qualquer maneira. No entanto, isso não é importante para o exemplo passo a passo que estou procurando e o exemplo de caracal abaixo parece realmente incrível. Vou trabalhar no meu caminho usando meus dados logo de manhã.
fonte
Respostas:
Entendo que o foco da questão é menos no lado teórico e mais no lado prático, ou seja, como implementar uma análise fatorial de dados dicotômicos em R.
Primeiro, vamos simular 200 observações de 6 variáveis, provenientes de 2 fatores ortogonais. Vou dar algumas etapas intermediárias e começar com dados contínuos normais multivariados que mais tarde dicotomizamos. Dessa forma, podemos comparar as correlações de Pearson com as correlações policóricas e comparar as cargas fatoriais de dados contínuos com as dos dados dicotômicos e as cargas verdadeiras.
Faça a análise fatorial para os dados contínuos. As cargas estimadas são semelhantes às verdadeiras ao ignorar o sinal irrelevante.
Agora vamos dicotomizar os dados. Manteremos os dados em dois formatos: como um quadro de dados com fatores ordenados e como uma matriz numérica.
hetcor()
from packagepolycor
nos fornece a matriz de correlação policórica que usaremos posteriormente para a FA.Agora use a matriz de correlação policórica para fazer uma FA regular. Observe que as cargas estimadas são bastante semelhantes às dos dados contínuos.
Você pode pular a etapa de cálculo da matriz de correlação policórica e usar diretamente
fa.poly()
do pacotepsych
, que faz a mesma coisa no final. Esta função aceita os dados dicotômicos brutos como uma matriz numérica.EDIT: Para pontuações de fatores, observe o pacote
ltm
que possui umafactor.scores()
função especificamente para dados de resultados politômicos. Um exemplo é fornecido nesta página -> "Pontuações fatoriais - Estimativas de capacidade".Você pode visualizar as cargas a partir da análise fatorial usando
factor.plot()
efa.diagram()
, ambos do pacotepsych
. Por algum motivo,factor.plot()
aceita apenas o$fa
componente do resultadofa.poly()
, não o objeto completo.A análise paralela e uma análise de "estrutura muito simples" fornecem ajuda na seleção do número de fatores. Novamente, o pacote
psych
tem as funções necessárias.vss()
toma a matriz de correlação policórica como argumento.A análise paralela da FA policromada também é fornecida pelo pacote
random.polychor.pa
.Observe que as funções
fa()
efa.poly()
oferecem muitas outras opções para configurar a FA. Além disso, editei parte da saída que fornece testes de ajuste de qualidade etc. A documentação para essas funções (e o pacotepsych
em geral) é excelente. Este exemplo aqui destina-se apenas a você começar.fonte
psych
permite estimar de alguma forma as pontuações dos fatores quando correlações poli / tetra-coricas são usadas no lugar da usual Pearson r?psych
deve ao fato de estarmos lidando com r tetracórico, não r usual, quando calcula escores fatoriais ou não?nearcor()
desfsmisc
oucor.smooth()
depsych
são usadas para este caso.psych
'sfactor.scores()
, esse não é o caso. Em vez disso, as pontuações são calculadas como no caso contínuo. No entanto, afactor.scores()
função no pacoteltm
parece implementar os procedimentos corretos, consulte este exemplo -> "Pontuações fatoriais - estimativas de capacidade" e a página de ajuda.