EST024 - Pesquisa de Opinião e Mercado
Antes de iniciar nossa aula:
Abra o RStudio.
Crie um novo script.
Crie uma pasta na área de trabalho com seu nome.
Defina a pasta como diretório de trabalho
Salve o script criado na pasta com o nome "aula14_est024.R".
Baixe do Moodle o arquivo Pesquisa Secom 07/2022.rar e extraia na pasta criada.
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.
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.
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.
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.
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.
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.
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
Uma análise fatorial segue as seguintes etapas:
Formulação do problema
Cálculo da matriz de correlação e verificação de correlação adequada.
Determinação do número de fatores retidos.
Método de análise - Componentes principais, Fatores principais ou máxima verossimilhança.
Extração dos fatores.
Rotação dos fatores - ortogonal ou oblíqua
Cálculo dos escores fatoriais.
Determinação do Ajuste do modelo.
Vamos passar por todas essas etapas por meio de um exemplo prático.
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.
Primeiramente, vamos recodificar as variáveis e selecionar os dados.
Agora vamos calcular a matriz de correlação policórica usando a função polychoric do pacote psych. A matriz é armazenada no objeto rho.
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
$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.
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.
Note que existem dois autovalores acima do 1, logo, pelo critério de Kaiser sugere a retenção de 2 fatores.
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.
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
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 |
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.
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:
Vamos agora verificar se existe diferenças nos scores de cada fator por nível de avaliação do governo: