Análise Fatorial Exploratória

EST024 - Pesquisa de Opinião e Mercado

Helgem de Souza

Introdução

Antes de iniciar nossa aula:

  1. Abra o RStudio.

  2. Crie um novo script.

  3. Crie uma pasta na área de trabalho com seu nome.

  4. Defina a pasta como diretório de trabalho

  5. Salve o script criado na pasta com o nome "aula14_est024.R".

  6. Baixe do Moodle o arquivo Pesquisa Secom 07/2022.rar e extraia na pasta criada.

  7. Leia o arquivo Rodada 02_F2F_BDvFinal.xlsx para o objeto pesquisa_secom e limpe os nomes com a função clean_names do pacote janitor.

Introdução

Em um contexto de pesquisa de opinião, é comum a aplicação de questionários extensos, sobretudo questões relacionadas à avaliação de determinado produto, serviço, segmento, dentre outros.

Assim, como resultado são obtidos bancos de dados com um número significativo de variáveis.

Nesse contexto, além das técnicas de análise já mencionadas nessa disciplina, técnicas de redução de dimensionalidade também se tornam bastante relevantes.

Dentre as técnicas de redução de dimensionalidade, no contexto de pesquisas de opinião, utiliza-se com frequência a Análise Fatorial.

Análise Fatorial

A Análise Fatorial é uma técnica de estatística multivariada que tem como princípio analisar estruturas inter-relacionais entre variáveis.

Seu princípio intuitivo é de que variáveis correlacionadas podem representar estruturas/comportamentos latentes em um conjunto de variáveis.

Como toda técnica de redução de dimensionalidade, seu objetivo é explicar o comportamento de um conjunto de \(p\) variáveis em termos de um conjunto com \(m\) fatores, com \(m<p\) . Essas \(m\) variáveis são definidas como variáveis latentes ou fatores.

Tipos de Análise Fatorial

A análise fatorial se apresenta em dois formatos básicos:

  • Análise Fatorial Exploratória: Técnica que busca compreender a estrutura latente existente entre um conjunto de variáveis aleatórias correlacionadas, por meio da obtenção do menor conjunto de fatores que explique de forma significativa a variabilidade existente nos dados.

  • Análise Fatorial Confirmatória: Técnica que busca, por meio da definição de fatores latentes, verificar se os dados coletados convergem para um comportamento teórico esperado para o evento de interesse.

No contexto de pesquisas de opinião, a técnica mais utilizada é a Analise Fatorial Exploratória, que será nosso objeto de estudo nessa aula.

Modelo Estatístico

Seja um conjunto de dados com \(p\) variáveis \(X_1, X_2, \ldots, X_p\). O modelo fatorial pode ser descrito da seguinte forma:

\[ \begin{array} X X_1 = l_{11}F_1 + l_{12}F_2 + \ldots + l_{1m}F_m + \varepsilon_1\\ X_2 = l_{21}F_1 + l_{22}F_2 + \ldots + l_{2m}F_m + \varepsilon_2\\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\vdots\\ X_p = l_{p1}F_1 + l_{p2}F_2 + \ldots + l_{pm}F_m + \varepsilon_p\\ \end{array} \]

Em que:

  • \(X_i\) - Variáveis originais

  • \(l_{ij}\) - Cargas fatoriais da i-ésima variável no j-ésimo fator. Representa a importância do j-ésimo fator na i-ésima variável.

  • \(F_j\) - Variáveis latentes, denominadas fatores comuns.

  • \(\varepsilon_i\) - Fatores específicos, que descrevem a variância residual da variável (variância não explicada pelos fatores comuns.

A partir desse modelo básico, deriva-se dois modelos: o modelo ortogonal, no qual os fatores são ortogonais entre si (não correlacionados) e o oblíquo, que permite a correlação entre fatores.

Comunalidades

A variância de cada variável pode ser decomposta em duas partes:

  • Variância específica (\(\psi_i\)): variância não explicada pelos fatores comuns.

  • Comunalidade (\(h_i^2\)): porção de variância que a variável contribui para o fator comum.

Assim, a variância total de cada variável pode ser decomposta como

\[ Var(X_i) = h_i^2 + \psi_i \]

em que \(h_i^2 = l_{i1}^2 + l_{i2}^2 + \ldots + l_{im}^2\)

A comunalidade representa o total de variabilidade explicada pelos fatores comuns. . Nesse sentido, quanto maior a comunalidade, melhor o modelo fatorial. Autores consideram valores acima de 0,7 aceitáveis.

Requisitos da Análise Fatorial

Alguns requisitos e recomendações devem ser verificados para a aplicação da Análise Fatorial:

  • Os dados devem ser correlacionados. Podemos verificar isso com um teste de esfericidade, como o de Bartlett.

  • Devem existir observações suficientes: Sugere-se um número de observações que seja no mínimo 5x o número de variáveis, com um mínimo de 100 observações. Idealmente se sugere 20x o número de variáveis.

  • Outros autores Nunca devem ser utilizadas menos de 50 observações

Etapas de aplicação

Uma análise fatorial segue as seguintes etapas:

  1. Formulação do problema

  2. Cálculo da matriz de correlação e verificação de correlação adequada.

  3. Determinação do número de fatores retidos.

  4. Método de análise - Componentes principais, Fatores principais ou máxima verossimilhança.

  5. Extração dos fatores.

  6. Rotação dos fatores - ortogonal ou oblíqua

  7. Cálculo dos escores fatoriais.

  8. Determinação do Ajuste do modelo.

Vamos passar por todas essas etapas por meio de um exemplo prático.

Exemplo

Em nosso banco de dados, a variável P15 se refere à avaliação do governo em diversos espectros: saúde, educação, segurança pública, etc.

Vamos verificar se existem fatores subjacentes dentre as áreas avaliadas. Para isso, vamos codificar os níveis de escala Likert para númerico da seguinte forma:

  • Péssimo = 1

  • Ruim = 2

  • Regular = 3

  • Bom = 4

  • Ótimo = 5

O ideal é utilizar medidas de correlação voltadas para dados categóricos, como a correlação policórica. Mas é bastante comum a utilização de coeficientes de correlação de Pearson e Spearman.

Exemplo

Primeiramente, vamos recodificar as variáveis e selecionar os dados.

#Recodificação dos níveis
dados <- pesquisa_secom %>% 
  mutate(across(
    .cols = starts_with("t_p15"), .fns = ~ case_when(. == "Ótimo" ~ 5,
                                          . == "Bom"  ~ 4,
                                          . == "Regular" ~ 3,
                                          . == "Ruim" ~ 2,
                                          . == "Péssimo" ~ 4,
                                          .default = NA))) %>% 
  select(starts_with("t_p15"))

Exemplo - Matriz de Correlação

Agora vamos calcular a matriz de correlação policórica usando a função polychoric do pacote psych. A matriz é armazenada no objeto rho.

pacman::p_load(psych, ggcorrplot)

matcor <- polychoric(dados)$rho
ggcorrplot(matcor, hc.order = TRUE)

Exemplo - Teste de Esfericidade

A matriz aparentemente é formada por correlações significativas. Para assegurar, vamos utilizar o teste de Bartlett. Vamos usar a função cortest.bartlett do pacote psych. Suas hipóteses são:

  • \(H_0\): A matriz de correlação é a matriz identidade.

  • \(H_1\): A matriz de correlação não é a matriz identidade, ou seja, há correlação

#Teste de Esfericidade de Bartlett
cortest.bartlett(matcor)
$chisq
[1] 447.8856

$p.value
[1] 1.477741e-48

$df
[1] 91

Como o p-valor é significativo, podemos concluir que a matriz de correlações é diferente da identidade, logo a análise pode ser realizada.

Exemplo - Determinação do Número de Fatores

Antes de ajustar o modelo fatorial, devemos definir quantos fatores serão retidos. Para isso podemos usar o critério de Kaiser, que define o número de fatores retidos como o número de autovalores da matriz de correlação maiores que 1.

Sua visualização pode ser feita por meio do gráfico scree-plot.

#Critério de Kaiser
scree(matcor)

Note que existem dois autovalores acima do 1, logo, pelo critério de Kaiser sugere a retenção de 2 fatores.

Exemplo - Ajuste do Modelo Fatorial

O ajuste da análise fatorial pode ser feito com base em diversas funções. Como estamos usando o pacote psych, vamos utilizar sua função voltada a essa finalidade: fa.

Note que utilizamos o parâmetro rotate = "varimax". Ele garante que os fatores criados são ortogonais entre si.

anfat <- fa(matcor, nfactors = 2, fm = "pa", rotate = "varimax")
anfat
Factor Analysis using method =  pa
Call: fa(r = matcor, nfactors = 2, rotate = "varimax", fm = "pa")
Standardized loadings (pattern matrix) based upon correlation matrix
          PA1  PA2   h2   u2 com
t_p15_1  0.41 0.43 0.35 0.65 2.0
t_p15_2  0.25 0.61 0.43 0.57 1.3
t_p15_3  0.48 0.40 0.39 0.61 1.9
t_p15_4  0.66 0.26 0.51 0.49 1.3
t_p15_5  0.30 0.49 0.33 0.67 1.7
t_p15_6  0.55 0.30 0.39 0.61 1.5
t_p15_7  0.59 0.23 0.40 0.60 1.3
t_p15_8  0.59 0.27 0.42 0.58 1.4
t_p15_9  0.33 0.53 0.39 0.61 1.7
t_p15_10 0.43 0.39 0.34 0.66 2.0
t_p15_11 0.20 0.71 0.54 0.46 1.2
t_p15_12 0.24 0.68 0.52 0.48 1.3
t_p15_13 0.42 0.49 0.41 0.59 1.9
t_p15_14 0.65 0.22 0.47 0.53 1.2

                       PA1  PA2
SS loadings           2.97 2.92
Proportion Var        0.21 0.21
Cumulative Var        0.21 0.42
Proportion Explained  0.50 0.50
Cumulative Proportion 0.50 1.00

Mean item complexity =  1.6
Test of the hypothesis that 2 factors are sufficient.

df null model =  91  with the objective function =  4.79
df of  the model are 64  and the objective function was  0.19 

The root mean square of the residuals (RMSR) is  0.02 
The df corrected root mean square of the residuals is  0.02 

Fit based upon off diagonal values = 1
Measures of factor score adequacy             
                                                   PA1  PA2
Correlation of (regression) scores with factors   0.85 0.85
Multiple R square of scores with factors          0.73 0.73
Minimum correlation of possible factor scores     0.45 0.46

Exemplo - Fatores

Vamos agora explorar os fatores:

  PA1 PA2
Saúde 0.4057 0.4339
Educação 0.2507 0.6081
Segurança 0.4779 0.3979
Economia 0.664 0.2623
Programas Sociais 0.3046 0.4921
Geração de emprego 0.5465 0.2991
Combate à corrupção 0.5873 0.2263
Combate às drogas 0.5925 0.2704
Habitação 0.3295 0.5266
Proteção ao meio ambiente 0.4338 0.3898
Atenção às crianças 0.1956 0.7081
Atenção aos jovens 0.2431 0.6756
Infraestrutura 0.4169 0.4905
Controle da Inflação 0.6497 0.2196

Exemplo Fatores

Variáveis associadas aos fatores:

Fator 1: Segurança, Economia, Geração de emprego, Combate à corrupção, Combate às drogas, Controle da inflação, Infraestrutura, Proteção ao meio ambiente.

Fator 2: Saúde, Educação, Programas sociais, Habitação, Atenção às crianças, Atenção aos jovens, Infraestrutura, Proteção ao meio ambiente.

Podemos interpretar os fatores da seguinte forma:

  • Fator 1 - Pautas conservadoras.

  • Fator 2 - Pautas sociais.

Definidos os fatores, podemos utilizar seus scores para fazer análises.

Exemplo: Escores fatoriais

A extração dos fatores se dá por meio da função factor.scores(data, fa), em que:

data - dados utilizados na análise fatorial

fa - Resultados da análise fatorial

No nosso caso, para obter os scores, faremos o seguinte procedimento:

#Obtenção dos escores fatoriais
scores <- factor.scores(dados, anfat)

#Agregando os scores aos dados
pesquisa_secom <- pesquisa_secom %>% bind_cols(scores$scores)

Exemplo: Escores fatoriais

Vamos agora verificar se existe diferenças nos scores de cada fator por nível de avaliação do governo: