Skip to Content

Introdução à Análise de Fatorial - Interpretação

Análise fatorial
Multivariada
Interpretação

Introdução

Você não precisa usar o R… pode usar o Python também.


Análise Fatorial

Essa é a parte 2 da Análise Fatorial com a interpretação. A parte 1 contendo a discussão de pressuposto e a decisão sobre o número de fatores pode ser encontrada aqui. https://metodos.netlify.app/docs/af_continuas/

Exemplo: o ansiedade.RData (questionário de ansiedade com a linguagem R) Vamos prosseguir com nosso exemplo hipotético da pesquisa com o Questionário de Ansiedade com a linguagem R.

O banco de dados consiste nas seguintes questões:

  1. Estatísticas me fazem chorar
  2. Meus amigos vão pensar que sou estúpido por não ser capaz de lidar com R
  3. Adoro Desvios padrão
  4. Eu sonho que Pearson está me atacando com coeficientes de correlação
  5. Eu não entendo estatística
  6. Eu tenho pouca experiência com computadores
  7. Todos os computadores me odeiam
  8. Eu nunca fui bom em matemática

Vamos começar carregando a base de dados no R e construindo uma matriz de correlação de Pearson.

load(url("https://github.com/DATAUNIRIO/Base_de_dados/raw/master/ansiedade.RData"))
ls()
[1] "ansiedade"  "dicionario"
library(corrplot)
correlacao<-cor(ansiedade)
corrplot.mixed(correlacao)

Executando Análise Fatorial

library(psych)
analise_fatorial <- fa(correlacao, nfactors=2, rotate="varimax")
# 
analise_fatorial[["communalities"]]
       q01        q02        q03        q04        q05        q06        q07 
0.43392342 0.05187725 0.31920090 0.46074127 0.34486315 0.29452262 0.91175953 
       q08 
0.23618496 
# Cargas fatoriais (factor loadings)
analise_fatorial[["loadings"]]

Loadings:
    MR1    MR2   
q01  0.643  0.141
q02 -0.190 -0.126
q03 -0.492 -0.277
q04  0.625  0.265
q05  0.545  0.218
q06  0.237  0.488
q07  0.263  0.918
q08  0.443  0.200

                 MR1   MR2
SS loadings    1.702 1.351
Proportion Var 0.213 0.169
Cumulative Var 0.213 0.382
# PCA Variable Factor Map
library(FactoMineR)
resultado <- PCA(ansiedade) # graphs generated automatically 

Olhando o mapa de variáveis criado a partir do comando PCA do pacote FactoMineR, podemos ver que dois grupos.

Interpretação

As cargas fatoriais (factor loadings) indicam o quanto um fator explica uma variável. As cargas podem variar de -1 a 1.

Examine o padrão de carregamento para determinar o fator que tem maior influência em cada variável. Cargas próximas a -1 ou 1 indicam que o fator influencia fortemente a variável. Cargas próximas a 0 indicam que o fator tem uma influência fraca na variável. Algumas variáveis podem ter cargas elevadas em vários fatores.

Cargas fatoriais são a correlação de cada variável com o fator. Cargas indicam o grau de correspondência entre a variável e o fator, com cargas maiores tornando a variável representativa do fator. Cargas fatoriais são o meio de interpretar o papel que cada variável tem na definição de cada fator (Hair et al, 2006).

No nosso caso, a q02 (“Meus amigos vão pensar que sou estúpido por não ser capaz de lidar com R”) parece não estar relacionado com nenum fator.

Hair et al (2006) e Figueiredo Filho & Silva Junior,(2010) sugerem que um dos pressupostos da análise fatorial é a estrutura simples de seus componentes. O argumento defende que a mesma variável não pode contribuir para a construção de fatores distintos. Adota-se 0,40 como limite aceitável da contribuição da variável na criação do fator com o objetivo de evitar o problema da indeterminação da relação entre variáveis e fatores. Uma boa ideia seria eliminar a q02 da análise fatorial.

Cumpre registrar que o % Variabilidade Explicada é muito baixo.Apenas 0,382.

dados<-tibble::tribble(~q,~ROTULO,     ~MR1,     ~MR2,
  "q01","1.Estatísticas me fazem chorar",  "0.643",  "0.141",
  "q02", "2.Meus amigos vão pensar que sou estúpido por não ser capaz de lidar com R", "-0.19",  "-0.126",
  "q03","3.Adoro Desvios padrão", "-0.492", "-0.277",
  "q04","4.Eu sonho que Pearson está me atacando com coeficientes de correlação",  "0.625",  "0.265",
  "q05","5.Eu não entendo estatística",  "0.545",  "0.218",
  "q06","6.Eu tenho pouca experiência com computadores",  "0.237",  "0.488",
  "q07","7.Todos os computadores me odeiam",  "0.263",  "0.918",
  "q08","8.Eu nunca fui bom em matemática",  "0.443",    "0.2"
  )
library(formattable)
improvement_formatter <- formatter("span", 
           style = x ~ style(font.weight = "bold", 
           color = ifelse(x >  0.4, "blue", 
                   ifelse(x ==  -0.492, "red",        
                   ifelse(x > -0.2, "black", "black")))), 
                   x ~ icontext(ifelse(x>0, "arrow-up", "arrow-down"), x))
formattable(dados, align =c("l","l","r","r"), list(
  `ROTULO` = formatter("span", style = ~ style(color = "black",font.weight = "bold")), 
  `MR1`= improvement_formatter,
  `MR2`= improvement_formatter))
q ROTULO MR1 MR2
q01 1.Estatísticas me fazem chorar 0.643 0.141
q02 2.Meus amigos vão pensar que sou estúpido por não ser capaz de lidar com R -0.19 -0.126
q03 3.Adoro Desvios padrão -0.492 -0.277
q04 4.Eu sonho que Pearson está me atacando com coeficientes de correlação 0.625 0.265
q05 5.Eu não entendo estatística 0.545 0.218
q06 6.Eu tenho pouca experiência com computadores 0.237 0.488
q07 7.Todos os computadores me odeiam 0.263 0.918
q08 8.Eu nunca fui bom em matemática 0.443 0.2

Rótulo dos fatores:

Considerando as cargas fatorias, podemos rotular os fatores:

  1. Ansiedade Matemática/EStatística
  2. Ansiedade com computadores
dados<-tibble::tribble(~FATOR,~q,~ROTULO,     ~MR1,     ~MR2,
  "Fator 1","q01","1.Estatísticas me fazem chorar",  "0.643",  "0.141",
  "Fator 1","q03","3.Adoro Desvios padrão", "-0.492", "-0.277",
  "Fator 1","q04","4.Eu sonho que Pearson está me atacando com coeficientes de correlação",  "0.625",  "0.265",
  "Fator 1","q05","5.Eu não entendo estatística",  "0.545",  "0.218",
  "Fator 1","q08","8.Eu nunca fui bom em matemática",  "0.443",    "0.2",
  "Fator 2","q06","6.Eu tenho pouca experiência com computadores",  "0.237",  "0.488",
  "Fator 2","q07","7.Todos os computadores me odeiam",  "0.263",  "0.918"
  )

improvement_formatter <- formatter("span", 
           style = x ~ style(font.weight = "bold", 
           color = ifelse(x >  0.4, "blue", 
                   ifelse(x ==  -0.492, "red",        
                   ifelse(x > -0.2, "black", "black")))) )

formattable(dados, align =c("l","l","r","r"), list(
  `FATOR` = formatter("span", style = ~ style(color = "black",font.weight = "bold")), 
  `MR1`= improvement_formatter,
  `MR2`= improvement_formatter))
FATOR q ROTULO MR1 MR2
Fator 1 q01 1.Estatísticas me fazem chorar 0.643 0.141
Fator 1 q03 3.Adoro Desvios padrão -0.492 -0.277
Fator 1 q04 4.Eu sonho que Pearson está me atacando com coeficientes de correlação 0.625 0.265
Fator 1 q05 5.Eu não entendo estatística 0.545 0.218
Fator 1 q08 8.Eu nunca fui bom em matemática 0.443 0.2
Fator 2 q06 6.Eu tenho pouca experiência com computadores 0.237 0.488
Fator 2 q07 7.Todos os computadores me odeiam 0.263 0.918

Bibliografia

  1. FIGUEIREDO FILHO, Dalson Brito; SILVA JUNIOR, José Alexandre da. Visão além do alcance: uma introdução à análise fatorial. Opin. Publica, Campinas , v. 16, n. 1, p. 160-185, June 2010 . Available from http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0104-62762010000100007&lng=en&nrm=iso. access on 06 Sept. 2020. https://doi.org/10.1590/S0104-62762010000100007.
  2. HAIR, Jr; BLACK, W. C; BABIN, B. J; ANDERSON, R. E e TATHAM, R. L. Multivariate Data Analysis. 6ª edição. Upper Saddle River, NJ: Pearson Prentice Hall, 2006.
  3.  ______________3 Análise Fatorial.[https://www.maxwell.vrac.puc-rio.br/8741/8741_5.PDF](https://www.maxwell.vrac.puc-rio.br/8741/8741_5.PDF)