Capítulo XII. Análise fatorial


Um paradigma frequentemente aplicado na análise de dados de observações multivariadas é modelar as informações relevantes, representadas em uma variável multivariada \(X\) como provenientes de um número limitado de fatores latentes.

Em uma pesquisa sobre o consumo das famílias, por exemplo, puderam ser observados os níveis de consumo \(X\), de \(p\) diferentes bens durante 1 mês. As variâncias e covariâncias dos \(p\) componentes de \(X\) ao longo da pesquisa podem de fato ser explicadas por dois ou três principais fatores de comportamento social do domicílio. Por exemplo, um desejo básico de conforto ou a vontade de atingir um certo nível social ou outros conceitos sociais latentes podem explicar a maior parte do comportamento de consumo. Esses fatores não observados são muito mais interessantes para o cientista social do que as próprias medidas quantitativas observadas \(X\), porque dão uma melhor compreensão do comportamento dos domicílios. Conforme mostrado nos exemplos abaixo, o mesmo tipo de análise fatorial é de interesse em muitos campos, como psicologia, marketing, economia e ciências políticas.

Como podemos fornecer um modelo estatístico abordando essas questões e como podemos interpretar o modelo obtido? Este é o objetivo da análise fatorial.

Como nos Capítulos X e XI o tema estatístico condutor deste capítulo é reduzir a dimensão dos dados observados. A perspectiva utilizada, no entanto, é diferente: assumimos que existe um modelo, que será chamado de modelo fatorial, afirmando que a maioria das covariâncias entre os \(p\) elementos de \(X\) pode ser explicada por um número limitado de fatores latentes.

A Seção XII.1 define os conceitos básicos e notações do modelo de fator ortogonal, enfatizando a não unicidade das soluções. Mostramos como aproveitar essa não-singularidade para derivar técnicas que levam a interpretações mais fáceis. Isso envolverá rotações geométricas dos fatores. A Seção XII.2 apresenta uma abordagem empírica para análise fatorial. Vários procedimentos de estimatição são propostos e um procedimento de rotação ótimo é definido. Muitos exemplos são usados para ilustrar o método.


XII.1. Modelo fatorial ortogonal


O objetivo da análise fatorial é explicar o resultado de \(p\) variáveis na matriz de dados \(X\) usando menos variáveis, os chamados fatores. Idealmente, todas as informações em \(X\) podem ser reproduzidas por um número menor de fatores. Esses fatores são interpretados como características comuns latentes, não observadas, do observado \(x\in \mathbb{R}^p\).

O caso que acabamos de descrever ocorre quando todo \(x=(x_1,\cdots,x_p)^\top\) observado pode ser escrito como \[ x_j = \sum_{\ell=1}^k q_{j,\ell}f_\ell + \mu_j, \qquad j=1,\cdots,p\cdot \]

Aqui \(f_\ell\) para \(\ell=1,\cdots,k\) denota os fatores. O número de fatores, \(k\), deve ser sempre muito menor que \(p\). Por exemplo, em psicologia \(x\) pode representar \(p\) resultados de um teste que mede pontuações de inteligência. Um fator latente comum que explica \(x\in\mathbb{R}^p\) pode ser o nível geral de inteligência. Nos estudos de marketing, \(x\) pode consistir em \(p\) respostas a uma pesquisa sobre os níveis de satisfação dos clientes. Essas \(p\) medidas podem ser explicadas por fatores latentes comuns, como o nível de atração do produto ou a imagem da marca, etc. De fato, é possível criar uma representação das observações semelhante à equação acima por meio de componentes principais, mas somente se os últimos \(p-k\) autovalores correspondentes à matriz de covariâncias forem iguais a zero.

Considere um vetor aleatório \(p\)-dimensional \(X\) com esperança \(\mu\) e matriz de variâncias e covariâncias \(\mbox{Var}(X)=\Sigma\). Um modelo semelhante à equação acima pode ser escrito para \(X\) em notação matricial, a saber \[ X=QF+\mu, \] onde \(F\) é o vetor \(k\)-dimensional dos \(k\) fatores.

Ao usar o modelo fatorial escrito em notação matricial, muitas vezes assume-se que os fatores \(F\) são centrados, não correlacionados e padronizados: \(\mbox{E}(F)=0\) e \(\mbox{Var}(F)=\pmb{I}_k\). Mostraremos agora que se os últimos \(p-k\) autovalores de \(\Sigma\) forem iguais a zero, podemos expressar \(X\) pelo modelo fatorial matricial.

A decomposição espectral de \(\Sigma\) é dada por \(\Gamma \Lambda\Gamma^\top\). Suponha que apenas os primeiros \(k\) autovalores sejam positivos, ou seja, \(\lambda_{k+1}=\cdots=\lambda_p=0\). Então a matriz de covariâncias (singular) pode ser escrita como \[ \Sigma = \sum_{\ell=1}^k \lambda_\ell \gamma_\ell \gamma_\ell^\top = \big( \Gamma_1 \; \Gamma_2\big)\begin{pmatrix} \Lambda_1 & 0 \\ 0 & 0 \end{pmatrix}\begin{pmatrix} \Gamma_1^\top \\ \Gamma_2^\top \end{pmatrix}\cdot \]

Para mostrar a conexão com o modelo fatorial, lembre-mos que as componentes principais são dados por \(Y=\Gamma^\top (X-\mu)\). Reorganizando temos \(X-\mu=\Gamma Y = \Gamma_1 Y_1 + \Gamma_2 Y_2\), onde as componentes de \(Y\) são particionados de acordo com a partição de \(\Gamma\) acima, ou seja \[ Y = \begin{pmatrix} Y_1 \\ Y_2 \end{pmatrix} = \begin{pmatrix} \Gamma_1^\top \\ \Gamma_2^\top \end{pmatrix}(X-\mu), \] onde \[ \begin{pmatrix} \Gamma_1^\top \\ \Gamma_2^\top \end{pmatrix} \sim \left(0,\begin{pmatrix} \Lambda_1 & 0 \\ 0 & 0 \end{pmatrix} \right)\cdot \]

Em outras palavras, \(Y_2\) tem uma distribuição singular com média e matriz de covariâncias iguais a zero. Portanto, \[ X-\mu = \Gamma_1 Y_1+\Gamma_2 Y_2 \]

implica que \(X-\mu\) é equivalente a \(\Gamma_1 Y_1\), que pode ser escrito como \[ X = \Gamma_1 \Lambda_1^{1/2}\Lambda_1^{-1/2}Y_1 + \mu\cdot \]

Definindo \(Q=\Gamma_1 \Lambda_1^{1/2}\) e \(F=\lambda_1^{-1/2}Y_1\), obtemos o modelo fatorial \(X=Qf+\mu\).

Observe que a matriz de covariância do modelo fatorial \(X=Qf+\mu\) pode ser escrita como \[ \Sigma = \mbox{E}\Big((X-\mu)(X-\mu)^\top\big)=Q \mbox{E}\Big(FF^\top\Big)Q^\top = QQ^\top = \sum_{\ell=1}^k \lambda_\ell \gamma_\ell \gamma_\ell^\top \cdot \]

Acabamos de mostrar como a variável \(X\) pode ser completamente determinada por uma soma ponderada de \(k\), onde \(k < p\) fatores não correlacionados. A situação usada na derivação, no entanto, é muito idealista. Na prática, a matriz de covariância raramente é singular.

É uma prática comum na análise fatorial dividir as influências dos fatores em comuns e específicas. Existem, por exemplo, fatores altamente informativos que são comuns a todos os componentes de \(X\) e fatores específicos a determinados componentes.

O modelo de análise fatorial usado na prática é uma generalização de \(X=QF+\mu\), \[ X=QF+U+\mu, \] onde \(Q\) é uma matriz \(p\times k\) dos carregamentos, não aleatórios, dos fatores comuns \(F\) (\(k\times 1\)) e \(U\) é uma matriz \(p\times 1\) dos fatores específicos, aleatórios. Assume-se que as variáveis fatoriais \(F\) são vetores aleatórios não correlacionados e que os fatores específicos são não correlacionados e têm covariância zero com os fatores comuns.

Mais especificamente, é assumido que: \[ \begin{array}{rcl} \mbox{E}(F) & = & 0 \\ \mbox{Var}(F) & = & \pmb{I}_k \\ \mbox{E}(U) & = & 0 \\ \mbox{Cov}(U_i,U_j) & = & 0, \quad i\neq j \\ \mbox{Cov}(F,U) & = & 0\cdot\end{array} \]

Definamos \[ \mbox{Var}(U) = \Psi = \mbox{diag}(\psi_{11},\cdots,\psi_{pp})\cdot \] O modelo fatorial generalizado \(X=QF+U+\mu\) juntamente com os pressupostos dados acima constituem o modelo fatorial ortogonal.


Modelo Fatorial Ortogonal

\[ \underbrace{X}_{p\times 1)} = \underbrace{Q}_{p\times k)}\times \underbrace{F}_{k\times 1)} + \underbrace{U}_{p\times 1)} + \underbrace{\mu}_{p\times 1)}, \] sendo que \[ \mu_j = \mbox{média da variável } j, \] \[ U_j = j\mbox{-ésimo fator específico}, \] \[ F_l = l \mbox{-ésimo fator comum}, \] \[ q_{jl} = \mbox{carregamento da } j \mbox{-ésima variável no } l\mbox{-ésimo fator}\cdot \]
Os vetores aleatórios \(F\) e \(U\) são não observáveis e não correlacionados.


Observe que \(X=QF+U+\mu\) implica para os componentes de \(X=(X_1,\cdots,X_p)^\top\) que \[ X_j = \sum_{l=1}^k q_{jl} F_l +U_j +\mu_j, \quad j=1,\cdots,p\cdot \]

Assumindo as suposições, obtemos que \[ \sigma_{X_j X_j}=\mbox{Var}(X_j)=\sum_{l=1}^k q_{jl}^2+\psi_{jj}\cdot \] A quantidade \[ h_j^2= \sum_{l=1}^k q_{jl}^2 \]

é chamada de comunalidade e \(\psi_{jj}\) de variância específica. Assim, a covariância de \(X\) pode ser reescrita como \[ \begin{array}{rcl} \Sigma & = & \mbox{E}\Big((X-\mu)(X-\mu)^\top\big)= \mbox{E}\Big((QF+U)(QF+U)^\top\big) \\ & = & Q\mbox{E}(FF^\top)Q^\top+ \mbox{E}(UU^\top))= Q\mbox{Var}(F)Q^\top + \mbox{Var}(U) \\ & = & QQ^\top +\Psi\cdot \end{array} \]

Em certo sentido, o modelo fatorial explica as variações de \(X\) em grande parte por um pequeno número de fatores latentes \(F\) comuns aos seus \(p\) componentes e explica inteiramente toda a estrutura de correlação entre seus componentes, além de algum ruído \(U\) que permite variações específicas de cada componente para entrar. Os fatores específicos se ajustam para capturar a variação individual de cada componente. A análise fatorial baseia-se nas premissas apresentadas acima.

Se as suposições não forem atendidas, a análise pode ser espúria. Embora a análise de componentes principais e a análise fatorial possam estar relacionadas, isso foi sugerido na derivação do modelo fatorial, elas são de natureza bastante diferente. As componentes principais são transformações lineares de \(X\) dispostas em ordem decrescente de variância e usadas para reduzir a dimensão do conjunto de dados, enquanto na análise fatorial, tentamos modelar as variações de \(X\) usando uma transformação linear de um número fixo e limitado de fatores latentes. O objetivo da análise fatorial é encontrar as cargas \(Q\) e a variância específica \(\Psi\). As estimativas de \(Q\) e \(\Psi\) são deduzidas da estrutura de covariância.


XII.1.1. Interpretação dos fatores


Suponha que um modelo fatorial com \(k\) fatores seja razoável, ou seja, a maioria das covariações das \(p\) medidas em \(X\) foram explicadas pelos \(k\) fatores latentes fixos. O próximo passo natural é tentar entender o que esses fatores representam.

Para interpretar \(F_l\), faz sentido calcular suas correlações com as variáveis originais \(X_j\) primeiro. Isso é feito para \(l=1,\cdots,k\) e para \(j=1,\cdots,p\) para obter a matriz \(P_{XF}\). A sequência de cálculos usada aqui é de fato a mesma que foi usada para interpretar as componentes principais na análise de componentes principais.

A seguinte covariância entre \(X\) e \(F\) é obtida \[ \Sigma_{XF}=\mbox{E}\Big( \big(QF+U\big)F^\top\Big)=Q\cdot \] A correlação é \[ P_{XF}=D^{-1/2}Q, \]

onde \(D=\mbox{diag}(\sigma_{X_1X_1,\cdots,\sigma_{X_pX_p}})\).


Exemplo XII.1

Exemplo da psicologia em que \(X\) são as pontuações observadas para \(p\) testes de inteligência diferentes:

WAIS = read.table(file = "http://leg.ufpr.br/~lucambio/MSM/WAIS.txt", sep = "", header = TRUE)
head(WAIS)
##   Subject Information Similarities Arithmetic Picture.Completion Group
## 1       1           7            5          9                  8     1
## 2       2           8            8          5                  6     1
## 3       3          16           18         11                  9     1
## 4       4           8            3          7                  9     1
## 5       5           6            3         13                  9     1
## 6       6          11            8         10                 10     1
Estes dados foram apresentados em Morrison (1990), nesse artigo comparam-se os resultados de 4 subtestes da WWechsler Adult Intelligence Scale (WAIS) para 2 categorias de pessoas. No grupo 1 estão \(n_1 = 37\) pessoas que não apresentam fator senil; no grupo 2 estão aqueles \(n_2 = 12\) que apresentam fator senil.

Subtestes WAIS: Information: informações Similarities: semelhanças Arithmetic: aritmética Picture.Completion: conclusão da imagem

Ainda temos Subject que é um indicador do indivíduo ou unidade amostral e Group, indicando o grupo ao qual pertencem.

Esperaríamos que um modelo com um fator produzisse um fator positivamente correlacionado com todos os componentes em \(X\). Para este exemplo, o fator representa o nível geral de inteligência de um indivíduo. Um modelo com dois fatores poderia produzir um refinamento na explicação das variações dos \(p\) escores.


WAIS.fatores <- factanal(WAIS[,2:6], factors = 2)
print(WAIS.fatores)
## 
## Call:
## factanal(x = WAIS[, 2:6], factors = 2)
## 
## Uniquenesses:
##        Information       Similarities         Arithmetic Picture.Completion 
##              0.166              0.200              0.450              0.005 
##              Group 
##              0.677 
## 
## Loadings:
##                    Factor1 Factor2
## Information         0.844   0.349 
## Similarities        0.862   0.237 
## Arithmetic          0.689   0.275 
## Picture.Completion  0.251   0.965 
## Group              -0.375  -0.427 
## 
##                Factor1 Factor2
## SS loadings      2.134   1.368
## Proportion Var   0.427   0.274
## Cumulative Var   0.427   0.700
## 
## Test of the hypothesis that 2 factors are sufficient.
## The chi square statistic is 0.44 on 1 degree of freedom.
## The p-value is 0.509


Por exemplo, o primeiro fator pode ser o nível geral de inteligência, enquanto o segundo fator pode ser positivamente correlacionado com alguns dos testes, \(X_j\), que estão relacionados à capacidade do indivíduo de pensar abstratamente e negativamente correlacionados com outros testes, \(X_i\), que estão relacionados com a capacidade prática do indivíduo. O segundo fator, então, diz respeito a uma dimensão particular da inteligência, enfatizando as distinções entre as habilidades “teóricas” e “práticas” do indivíduo. Se o modelo for verdadeiro, a maioria das informações provenientes dos \(p\) escores podem ser resumidas por esses dois fatores latentes.


XII.1.2. Invariância de escala


O quê acontece se modificamos a esala de \(X\) para \(Y=CX\) com \(C=\mbox{diag}(c_1,\cdots,c_p)\)? se o modelo de \(k\) fatores \(X_j = \sum_{l=1}^k q_{jl} F_l +U_j +\mu_j\), \(j=1,\cdots,p\cdot\) for verdadeiro para \(X\) com \(Q=Q_X\), \(\Psi=\Psi_X\), então, desde que \[ \mbox{Var}(Y)=C\Sigma C^\top = CQ_XQ_X^\top C^\top +C\Psi_X C^\top, \]

o mesmo modelo de \(k\) fatores também é verdadeiro para \(Y\) com \(Q_Y= CQ_X\) e \(\Psi_Y = C\Psi_X C^\top\).

Em muitas aplicações, a busca pelas cargas \(Q\) e pela variância específica \(\Psi\) será feita pela decomposição da matriz de correlação de \(X\) ao invés da matriz de covariância \(\Sigma\). Isso corresponde a uma análise fatorial de uma transformação linear de \(X\), ou seja, \[ Y = D^{-1/2}(X-\mu)\cdot \]

O objetivo é tentar encontrar os carregamentos \(Q_Y\) e a variância específica \(\Psi_Y\) tal que \[ Y= Q_Y Q_Y^\top+\Psi_Y\cdot \]

Neste caso, a interpretação dos fatores \(F\) segue imediatamente de \(P_{XF}=D^{-1/2}Q\), dada a seguinte matriz de correlação: \[ P_{XF} = P_{YF}+ Q_Y\cdot \]

Devido à invariância de escala dos fatores, as cargas e a variância específica do modelo, onde \(X\) é expresso em suas unidades de medida originais, são dadas por \[ Q_X = D^{1/2}Q_Y \]

e

\[ \Psi_X = D^{1/2}\Psi_Y D^{1/2}\cdot \]

Deve-se notar que, embora o modelo de análise fatorial \(X=QF+U+\mu\) tenha a propriedade de invariância de escala, os fatores reais estimados podem ser dependentes da escala. Voltaremos a este ponto mais tarde, quando discutirmos o método dos fatores principais.


XII.1.3. Não exclusividade das cargas fatoriais


As cargas fatoriais não são únicas! Suponha que \(G\) é uma matriz ortogonal. Então \(X=QF+U+\mu\) também pode ser escrito como \[ X = (QG)(G^\top F)+U+\mu\cdot \]

Isso implica que, se um \(k\)-fator de \(X\) com fatores \(F\) e cargas \(Q\) for verdadeiro, então o modelo de \(k\)-fator com fatores \(G^\top F\) e cargas \(QG\) também é verdadeiro. Na prática, aproveitaremos essa não-singularidade. De fato, podemos concluir que pré-multiplicar um vetor \(F\) por uma matriz ortogonal corresponde a uma rotação do sistema de eixos, sendo a direção do primeiro novo eixo dado pela primeira linha da matriz ortogonal. Será mostrado que a escolha de uma rotação adequada resultará em uma matriz de cargas \(QG\) mais fácil de interpretar.

Vimos que as cargas fornecem as correlações entre os fatores e as variáveis originais; portanto, faz sentido procurar rotações que forneçam fatores que são correlacionados ao máximo com vários grupos de variáveis.

Do ponto de vista numérico, a não exclusividade é uma desvantagem. Temos que encontrar cargas \(Q\) e variâncias específicas \(\Psi\) que satisfaçam a decomposição \(\Sigma = QQ^\top+\Psi\), mas nenhum algoritmo numérico direto pode resolver este problema devido à multiplicidade das soluções.

Uma técnica aceitável é impor algumas restrições escolhidas para obter - na melhor das hipóteses - uma solução única para a decomposição. Então, como sugerido acima, assim que tivermos uma solução, aproveitaremos as rotações para obter uma solução mais fácil de interpretar.

Uma pergunta óbvia é: que tipo de restrições devemos impor para eliminar o problema da não-unicidade? Normalmente, impomos restrições adicionais onde \[ Q^\top \Psi^{-1}Q \qquad \mbox{seja diagonal} \]

ou \[ Q^\top D^{-1}Q \qquad \mbox{seja diagonal}\cdot \]

Quantos parâmetros o modelo possui sem restrições? \[ Q \quad \mbox{tem } p\times k \mbox{ parâmetros e } \Psi \quad \mbox{tem } p \mbox{ parâmetros}\cdot \]

Portanto, temos que determinar os \(pk+p\) parâmetros! As condições respectivamente introduzem \(\frac{1}{2}k(k-1)\) restrições, uma vez que exigimos que as matrizes sejam diagonais.

Portanto, os graus de liberdade de um modelo com \(k\) fatores são: \[ \begin{array}{rcl} d & = & (\mbox{número de parâmetros de } \Sigma \mbox{ sem restrições}) - (\mbox{número de parâmetros de } \Sigma \mbox{ com restrições}) \\ & = & \frac{1}{2}p(p+1)-(pk+p-\frac{1}{2}k(k-1)) \, = \, \frac{1}{2}(p-k)^2-\frac{1}{2}(p+k)\cdot \end{array} \]

Se \(d < 0\), então o modelo é indeterminado: existem infinitas soluções. Isso significa que o número de parâmetros do modelo fatorial é maior que o número de parâmetros do modelo original ou que o número de fatores \(k\) é muito grande em relação a \(p\). Em alguns casos \(d=0\): existe uma solução única para o problema, exceto rotação. Na prática geralmente temos que \(d > 0\): existem mais equações do que parâmetros, portanto não existe uma solução exata. Neste caso, soluções aproximadas são usadas. Uma aproximação de \(\Sigma\), por exemplo, é \(QQ^\top+\Psi\). O último caso é o mais interessante, pois o modelo fatorial possui menos parâmetros que o original. Os métodos de estimação são apresentados na próxima seção.

Avaliar os graus de liberdade, \(d\), é particularmente importante, porque já dá uma ideia do limite superior do número de fatores que podemos esperar identificar em um modelo fatorial. Por exemplo, se \(p=4\), não poderíamos identificar um modelo fatorial com dois fatores, isso resulta em \(d=-1\), que tem infinitas soluções. Com \(p=4\), apenas um modelo de um fator fornece uma solução aproximada (\(d=2\)). Quando \(p=6\), modelos com 1 e 2 fatores fornecem soluções aproximadas e um modelo com três fatores resulta em uma solução única, até as rotações, desde \(d =0\). Um modelo com quatro ou mais fatores não seria permitido, obviamente, o objetivo da análise fatorial é encontrar modelos adequados com um pequeno número de fatores, ou seja, menor que \(p\). Os próximos dois exemplos fornecem mais informações sobre a noção de graus de liberdade.


Exemplo XII.2

Seja \(p=3\) e \(k=1\), então \(d=0\) e \[ \Sigma = \begin{pmatrix} \sigma_{11} & \sigma_{12} & \sigma_{13} \\ \sigma_{21} & \sigma_{22} & \sigma_{23} \\ \sigma_{31} & \sigma_{32} & \sigma_{33} \end{pmatrix} = \begin{pmatrix} q_1+\psi_{11} & q_1 q_2 & q_1 q_3 \\ q_1 q_2 & q_2^2 +\psi_{22} & q_2 q_3 \\ q_1 q_3 & q_2 q_3 & q_3^2+\psi_{33} \end{pmatrix}, \]

com \(Q=(q_1, q_2,q_3)^\top\) e \[ \Psi = \begin{pmatrix} \psi_{11} & 0 & 0 \\ 0 & \psi_{22} & 0 \\ 0 & 0 & \psi_{33} \end{pmatrix}\cdot \]

Observe que aqui a restrição \(Q^\top \Psi^{-1}Q\) ser diagonal, é verificada automaticamente desde \(k=1\). Temos \[ q_1^2 = \dfrac{\sigma_{12}\sigma_{13}}{\sigma_{23}}, \quad q_2^2 = \dfrac{\sigma_{12}\sigma_{23}}{\sigma_{13}}, \quad q_3^2 = \dfrac{\sigma_{13}\sigma_{23}}{\sigma_{12}} \]

e \[ \psi_{11}= \sigma_{11}-q_1^2, \quad \psi_{22}=\sigma_{22}-q_2^2, \quad \psi_{33}=\sigma_{33}-q_3^2\cdot \]

Neste caso particular \(k=1\), a única rotação é definida por \(G=-1\), então a outra solução para os carregamentos é fornecida por \(-Q\).



Exemplo XII.3

Suponhamos agora \(p=2\) e \(k=1\), então \(d<0\) e \[ \Sigma = \begin{pmatrix} 1 & \rho \\ \rho & 1 \end{pmatrix} = \begin{pmatrix} q_1^2 +\psi_{11} & q_1 q_2 \\ q_1 q_2 & q_2^2+\psi_{22} \end{pmatrix}\cdot \]

Temos infinitas soluções: para qualquer \(\alpha\), \(\rho<\alpha<1\), solução é fornecida por \[ q_1= \alpha, \quad q_2=\rho/\alpha, \quad \psi_{11}=1-a^2, \quad \psi_{22}=1-(\rho/\alpha)^2\cdot \]

A solução do Exemplo XII.2 pode ser única, até uma rotação, mas não é adequada no sentido de que não pode ser interpretada estatisticamente. O Exercício 5 dá um exemplo em que a variância específica \(\psi_{11}\) é negativa.

Mesmo no caso de uma solução única, \(d=0\), a solução pode ser inconsistente com as interpretações estatísticas.


XII.2. Estimação do modelo fatorial


Na prática, temos que encontrar estimativas \(\widehat{Q}\) das cargas \(Q\) e estimativas \(\widehat{\Psi}\) das variâncias específicas \(\Psi\) tal que analogamente \[ S=\widehat{Q}\widehat{Q}^\top + \widehat{\Psi}, \] onde \(S\) a covariância empírica de \(X\).

Dada uma estimativa \(\widehat{Q}\) de \(Q\), é natural definir \[ \widehat{\psi}_{jj} = s_{_{X_j,X_j}}-\sum_{\ell=1}^k \widehat{q}_{j\ell}^2\cdot \] Temos que \(\widehat{h}_j^2=\sum_{\ell=1}^k \widehat{q}_{j\ell}^2\) é uma estimativa para a comunalidade \(h_j^2\).

No caso ideal \(d=0\), existe uma solução exata. No entanto, \(d\) geralmente é maior que zero, portanto temos que encontrar \(\widehat{Q}\) e \(\widehat{\Psi}\) tais que \(S\) seja aproximado por \(\widehat{Q}\widehat{Q}^\top+\widehat{\Psi}\). Como mencionado acima, muitas vezes é mais fácil calcular as cargas e as variâncias específicas do modelo padronizado.

Definamos \(Y=H X D^{-1/2}\), a padronização da matriz de dados \(X\), onde \(D=\mbox{diag}(s_{_{X_1,X_1}},\cdots,s_{_{X_p,X_p}} )\) e a matriz de centralização \(H=\pmb{I}-n^{-1}\pmb{1}_n\pmb{1}_n^\top\), lembrando do Capítulo II que \(S=\frac{1}{n}X^\top H X\).

A matriz de carga fatorial estimada \(\widehat{Q}_Y\) e a variância específica estimada \(\widehat{\Psi}_Y\) de \(Y\) são \[ \widehat{Q}_Y=D^{-1/2} \widehat{Q}_X \qquad \mbox{e} \qquad \widehat{\Psi}_Y=D^{-1}\widehat{\Psi}_X\cdot \]

Para a matriz de correlação \(R\) de \(X\), temos que \[ R = \widehat{Q}_Y \widehat{Q}_Y^\top+\widehat{\Psi}_Y\cdot \] As interpretações dos fatores são formuladas a partir da análise das cargas \(\widehat{Q}_Y\).


Exemplo XI.4.

Vamos calcular as matrizes que acabamos de definir para os dados Car Marks, marcas médias para 24 tipos de carros de uma amostra de 40 pessoas, apresentados no Exercício 4, Seção XI.8. Considerando as três variáveis Service, Value e Safety, obtemos a seguinte matriz de correlação:

CarMarks = read.table(file = "http://leg.ufpr.br/~lucambio/MSM/CarMarks.txt", sep = "", header = TRUE)
R = cor(CarMarks[,c(4,5,9)])
R
##           Service     Value    Safety
## Service 1.0000000 0.9311772 0.9179337
## Value   0.9311772 1.0000000 0.9019089
## Safety  0.9179337 0.9019089 1.0000000

Vamos primeiro procurar um fator, ou seja, \(k=1\). Observe que o número de parâmetros de \(\Sigma\) irrestrito - onúmero de parâmetros de \(\Sigma\) restrito é igual a \[ \frac{1}{2}(p-k)^2-\frac{1}{2}(p+k)=\frac{1}{2}(3-1)^2-\frac{1}{2}(3+1)= 0\cdot \] Isso implica que existe uma solução exata! A equação \[ \begin{pmatrix} 1 & r_{X_1 X_2} & r_{X_1 X_3} \\ r_{X_1 X_2} & 1 & r_{X_2 X_3} \\ r_{X_1 X_3} & r_{X_2 X_3} & 1 \end{pmatrix} = R = \begin{pmatrix} \widehat{q}_1^2 +\widehat{\psi}_{11} & \widehat{q}_1\widehat{q}_2 & \widehat{q}_1\widehat{q}_3\\ \widehat{q}_1\widehat{q}_2 & \widehat{q}_2^2+\widehat{\psi}_{22} & \widehat{q}_2\widehat{q}_3 \\ \widehat{q}_1\widehat{q}_3 & \widehat{q}_2 \widehat{q}_3 & \widehat{q}_3^2+\widehat{\psi}_{33} \end{pmatrix}, \]

produz as comunalidades \(\widehat{h}_i^2=\widehat{q}_i^2\), onde \[ \widehat{q}_1^2= \dfrac{r_{X_1 X_2} r_{X_1 X_3}}{r_{X_2 X_3}}, \quad \widehat{q}_2^2= \dfrac{r_{X_1 X_2} r_{X_2 X_3}}{r_{X_1 X_3}} \quad \mbox{e} \quad \widehat{q}_3^2= \dfrac{r_{X_1 X_3} r_{X_2 X_3}}{r_{X_1 X_2}}\cdot \]

Combinando isso com as variâncias específicas \(\widehat{\psi}_{11}=1-\widehat{q}_1^2\), \(\widehat{\psi}_{22}=1-\widehat{q}_2^2\) e \(\widehat{\psi}_{33}=1-\widehat{q}_3^2\), obtemos a seguinte solução \[ \widehat{q}_1 = 0.947722, \quad \widehat{q}_2 = 0.9149212, \quad \widehat{q}_3 = 0.8890817, \\ \widehat{\psi}_{11} = 0.101823, \quad \widehat{\psi}_{22} = 0.1629192, \quad \widehat{\psi}_{33} = 0.2095337\cdot \]

Como as duas primeiras comunalidades (\(\widehat{h}_i^2=\widehat{q}_i^2\)) são próximas de um, maiores do qu 0.8, podemos concluir que as duas primeiras variáveis, a saber, Service e Value, são explicadas muito bem pelo fator único. Este fator pode ser interpretado como um fator “Service+Value”.


XII.2.1. Método da máxima verossimilhança


Relembrando, a função de log-verossimilhança \(\ell\) para uma matriz de dados \(X\) de observações de \(X\sim N_p(\mu,\Sigma)\): \[ \begin{array}{rcl} \ell(X;\mu,\Sigma) & = & \displaystyle -\frac{n}{2}\log\big( 2\pi|\Sigma|\big)-\frac{1}{2}\sum_{i=1}^n (x_i-\mu)\Sigma^{-1}(x_i-\mu)^\top \\ & = & \displaystyle -\frac{n}{2}\log\big( 2\pi|\Sigma|\big)-\frac{1}{2}\mbox{tr}\big(\Sigma^{-1}S\big)-\frac{n}{2} (\overline{x}-\mu)\Sigma^{-1}(\overline{x}-\mu)^\top\cdot \end{array} \]

Isso pode ser reescrito como \[ \ell(X;\widehat{\mu},\Sigma) = -\frac{n}{2}\Big( \log\big( 2\pi|\Sigma|\big)+\mbox{tr}\big(\Sigma^{-1}S\big)\Big)\cdot \]
Substituindo \(\mu\) por \(\widehat{\mu}=\overline{x}\) e substituindo \(\Sigma=QQ^\top+\Psi\) fica \[ \ell(X;\widehat{\mu},Q,\Psi) = -\frac{n}{2}\Big( \log\big( 2\pi|QQ^\top+\Psi|\big)+\mbox{tr}\big((QQ^\top+\Psi)^{-1}S\big)\Big)\cdot \]

Mesmo no caso de um único fator, \(k=1\), essas equações são bastante complicadas e algoritmos numéricos iterativos devem ser usados, para mais detalhes, ver Mardia, Kent & Bibby, 1979. Um esquema de computação prático também é fornecido no Suplemento 9A de Johnson and Wichern (1998).


XII.2.2. Teste de razão de verossimilhança para o número de fatores comuns


Utilizando a metodologia dos capítulos anteriores podemos testar a adequação do modelo de análise fatorial comparando a verossimilhança sob as hipóteses nula, análise fatorial e a alternativa, sem restrições na matriz de covariância.

Assumindo que \(\widehat{Q}\) e \(\widehat{\Psi}\) são as estimativas de máxima verossimilhança correspondentes, obtemos a seguinte estatística de teste da razão de verosimilhanças: \[ -2\log\left( \dfrac{\mbox{Máxima verossimilhança sob } H_0}{\mbox{máxima verossimilhança irrestrita} }\right)= n \log\left(\dfrac{|\widehat{Q}\widehat{Q}^\top+\widehat{\Psi}|}{|S|}\right), \] a qual, assintoticamente, tem distribuição \(\chi^2_{\frac{1}{2}(p-k)^2-(p+k)}\).

A aproximação \(\chi^2\) pode ser melhorada se substituirmos \(n\) por \(n-1-(2p+4k+5)/6\) acima, Bartlett (1954). Usando a orientação de Bartlett, rejeitamos o modelo de análise fatorial no nível \(\alpha\)˛ se \[ \big(n-1-(2p+4k+5)/6 \big)\log\left(\dfrac{|\widehat{Q}\widehat{Q}^\top+\widehat{\Psi}|}{|S|}\right)> \chi^2_{\frac{1}{2}(p-k)^2-(p+k)}(1-\alpha), \] e se o número de observações \(n\) for grande e o número de fatores comuns \(k\) for tal que a estatística \(\chi^2\) tenha um número positivo de graus de liberdade.


XII.2.3. O método dos fatores principais


O método dos fatores principais concentra-se na decomposição da matriz de correlação \(R\) ou da matriz de covariâncias \(S\). Por simplicidade, apenas o método para a matriz de correlação \(R\) será discutido. Como apontado, as decomposições espectrais de \(R\) e \(S\) produzem resultados diferentes e, portanto, o método dos fatores principais pode resultar em estimadores diferentes.

O método pode ser motivado da seguinte forma: Suponha que conhecemos o \(\Psi\) exato, então a restrição \(Q^\top D^{-1}Q\) seja diagonal implica que as colunas de \(Q\) são ortogonais desde \(D=\pmb{I}\) e isso implica que elas são autovetores de \(QQ^\top = R-\Psi\). Além disso, suponha que os primeiros \(k\) autovalores sejam positivos. Neste caso poderíamos calcular \(Q\) por meio de uma decomposição espectral de \(QQ^\top\) e \(k\) seria o número de fatores.

O algoritmo de estimação dos fatores principais é baseado em bons estimadores preliminares \(\widehat{h}^2_j\) das comunalidades \(h^2_j\), para \(j=1,\cdots,p\). Existem duas propostas tradicionais:

Dado \(\widetilde{\psi}_{jj}=1-\widehat{h}^2_j\), podemos construir a matriz de correlação reduzida, \(R-\widehat{\Psi}\). O Teorema da Decomposição Espectral diz que \[ R-\widehat{\Psi}=\sum_{l=1}^p \lambda_l \gamma_l \gamma_l^\top, \] com autovalores \(\lambda_1\geq \cdots\geq \lambda_p\). Suponha que os primeiros \(k\) valores próprios \(\lambda_1,\cdots,\lambda_p\) são positivos e grandes em comparação com os outros. Então podemos definir \[ \widehat{q}_l = \sqrt{\lambda_l}\gamma_l, \quad l=1,\cdots,k \] ou \[ \widehat{Q}=\Gamma_1\lambda_1^{1/2}, \]

com \[ \Gamma_1=(\gamma_1,\cdots,\gamma_k) \qquad \mbox{e} \qquad \Lambda_1=\mbox{diag}(\lambda_1,\cdots,\lambda_k)\cdot \]

No próximo passo definimos \[ \widehat{\psi}_{jj}=1-\sum_{l=1}^k \widehat{q}^2_{jl}, \qquad j=1,\cdots,p\cdot \]

Observe que o procedimento pode ser iterado: a partir de \(\widehat{\psi}_{jj}\) podemos calcular uma nova matriz de correlação reduzida \(R-\widehat{\Psi}\) seguindo o mesmo procedimento. A iteração geralmente para quando o \(\widehat{\psi}_{jj}\) convergiu para um valor estável.


XII.2.4. Rotação


As restrições \(Q^\top \Psi^{-1}Q\) ser diagonal e \(Q^\top D^{-1}Q\) ser diagonal são dadas por conveniência matemática, para criar soluções únicas e podem, portanto, complicar o problema de interpretação. A interpretação dos carregamentos seria muito simples se as variáveis pudessem ser divididas em conjuntos disjuntos, cada um associado a um fator.

Um algoritmo analítico bem conhecido para rotacionar os carregamentos é dado pelo método de rotação varimax proposto por Kaiser (1985). No caso mais simples de \(k=2\) fatores, uma matriz de rotação \(G\) é dada por \[ G(\theta)=\begin{pmatrix} \cos(\theta) & \sin(\theta) \\ -\sin(\theta) & \cos(\theta) \end{pmatrix}, \] representando uma rotação no sentido horário dos eixos coordenados pelo ângulo \(\theta\).

A rotação correspondente das cargas é calculada via \(\widehat{Q}^*=\widehat{Q}G(\theta)\). A idéia do método varimax> é encontrar o ângulo que maximiza a soma das variâncias das cargas quadradas \(\widehat{q}^*_{ij}\) dentro de cada coluna de \(\widehat{Q}^*\).

Mais precisamente, definindo \(\widetilde{q}^*_{jl}=\widehat{q}^*_{jl}/\widehat{h}^*_{j}\), o critério varimax escolhe \(\theta\) de modo que \[ V=\frac{1}{p}\sum_{l=1}^k \left(\sum_{j=1}^p (\widetilde{q}^*_{jl})^4- \Big(\frac{1}{p}\sum_{j=1}^p(\widetilde{q}^*_{jl})^2 \Big)^2 \right) \] seja maximizado.


Exemplo XII.4

No software R, a análise fatorial é implementada pela função factanal() do pacote stats. A função executa a análise fatorial por máxima verossimilhança em uma matriz de covariância ou matriz de dados. O número de fatores a serem ajustados é especificado pelo argumento factors. Além disso, as pontuações dos fatores podem ser calculadas usando o estimador de Thompson ou o método de pontuação dos mínimos quadrados ponderados de Bartlett. O método específico é especificado por um argumento adicional scores = “regression” ou scores = “Bartlett”. Além disso, pelo argumento adicional rotatio, a transformação dos fatores pode ser especificada por qualquer rotation = “varimax” para rotação ortogonal, rotation = “Bartlett” para rotação oblíqua ou rotation = “none”.

food <- read.csv("http://leg.ufpr.br/~lucambio/MSM/food-texture.csv", row.names = "X")
str(food)
## 'data.frame':    50 obs. of  5 variables:
##  $ Oil     : num  16.5 17.7 16.2 16.7 16.3 19.1 18.4 17.5 15.7 16.4 ...
##  $ Density : int  2955 2660 2870 2920 2975 2790 2750 2770 2955 2945 ...
##  $ Crispy  : int  10 14 12 10 11 13 13 10 11 11 ...
##  $ Fracture: int  23 9 17 31 26 16 17 26 23 24 ...
##  $ Hardness: int  97 139 143 95 143 189 114 63 123 132 ...

O conjunto de dados no qual vamos aplicar uma análise fatorial é um conjunto de dados de textura de alimentos. Este conjunto de dados de código aberto está disponível aqui e descreve as medidas de textura de um alimento do tipo pastel. Consiste em 50 linhas (observações) e 6 colunas (características/variáveis).

As características são:


A chamada da função factanal()


Além do conjunto de dados, a função factanal() requer uma estimativa do número de fatores factanal(dados, factors = n). Este é um aspecto complicado da análise fatorial. Se tivermos uma hipótese sobre as variáveis latentes, podemos começar com um palpite informado. Se não tivermos nenhuma pista sobre o número de fatores e o número de variáveis no conjunto de dados não for muito grande, pode-se simplesmente tentar vários valores para inicializar o modelo. Outra abordagem mais sofisticada é usar a análise de componentes principais para obter uma boa estimativa inicial do número de fatores.

Neste exemplo, apenas fazemos um palpite e definimos o número de fatores como 2.

food.fa <- factanal(food, factors = 2)

Interpretação dos resultados


Antes de interpretarmos os resultados da análise fatorial, lembre-se da ideia básica por trás dela. A análise fatorial cria combinações lineares de fatores para abstrair a comunalidade subjacente da variável. Na medida em que as variáveis têm uma comunalidade subjacente, menos fatores capturam a maior parte da variação no conjunto de dados. Isso nos permite agregar um grande número de variáveis observáveis em um modelo para representar um conceito subjacente, facilitando a compreensão dos dados.

A variabilidade em nossos dados, \(X\), é dada por \(\Sigma\) e sua estimativa \(\widehat{\Sigma}\) é composta pela variabilidade explicada pelos fatores explicados por uma combinação linear dos fatores, a comunalidade communality e pela variabilidade, que não pode ser explicada por um combinação linear dos fatores ou unicidade uniqueness: \[ \widehat{\Sigma}=\underbrace{\widehat{Q}\widehat{Q}^\top}_{comunalidade}+\underbrace{\widehat{\Psi}}_{unicidade} \]

food.fa
## 
## Call:
## factanal(x = food, factors = 2)
## 
## Uniquenesses:
##      Oil  Density   Crispy Fracture Hardness 
##    0.334    0.156    0.042    0.256    0.407 
## 
## Loadings:
##          Factor1 Factor2
## Oil      -0.816         
## Density   0.919         
## Crispy   -0.745   0.635 
## Fracture  0.645  -0.573 
## Hardness          0.764 
## 
##                Factor1 Factor2
## SS loadings      2.490   1.316
## Proportion Var   0.498   0.263
## Cumulative Var   0.498   0.761
## 
## Test of the hypothesis that 2 factors are sufficient.
## The chi square statistic is 0.27 on 1 degree of freedom.
## The p-value is 0.603


A saída do modelo começa com a chamada de função para nos lembrar das especificações de nossa chamada de função.

O primeiro bloco fornece as unicidades, que variam de 0 a 1. A unicidade, às vezes chamada de ruído, corresponde à proporção da variabilidade, que não pode ser explicada por uma combinação linear dos fatores. Este é o \(\widehat{\Psi}\) na equação acima. Uma alta unicidade para uma variável indica que os fatores não explicam bem sua variância.

food.fa$uniquenesses
##       Oil   Density    Crispy  Fracture  Hardness 
## 0.3338599 0.1555255 0.0422238 0.2560235 0.4069459


A próxima seção são os carregamentos, que variam de −1 a 1. Este é \(\widehat{Q}\) na equação acima. As cargas são a contribuição de cada variável original para o fator. Variáveis com carga alta são bem explicadas pelo fator. Observe que não há entrada para determinadas variáveis. Isso ocorre porque o R não imprime carregamentos menores que 0.1. Isso serve para nos ajudar a identificar grupos de variáveis. Digite help(loadings) em seu console para mais detalhes.

Ao elevar ao quadrado o carregamento, calculamos a fração da variância total da variável explicada pelo fator (Teetor, 2011). Essa proporção da variabilidade é denotada como comunalidade. Outra maneira de calcular a comunalidade é subtrair as unicidades de 1. Um modelo de fator apropriado resulta em valores baixos para unicidade e valores altos para comunalidade.

apply(food.fa$loadings^2,1,sum) # communality
##       Oil   Density    Crispy  Fracture  Hardness 
## 0.6661398 0.8444745 0.9577762 0.7439766 0.5930539


1 - apply(food.fa$loadings^2,1,sum) # uniqueness
##       Oil   Density    Crispy  Fracture  Hardness 
## 0.3338602 0.1555255 0.0422238 0.2560234 0.4069461


A tabela abaixo das cargas mostra a proporção da variância explicada por cada fator. A linha Var Cumulativo fornece a proporção cumulativa da variância explicada. Esses números variam de 0 a 1. A proporção Var da linha fornece a proporção da variância explicada por cada fator, e as cargas SS da linha fornecem a soma das cargas ao quadrado. Isso às vezes é usado para determinar o valor de um fator específico. Vale a pena manter um fator se a carga SS for maior que 1 (regra de Kaiser).

A última seção da saída da função mostra os resultados de um teste de hipótese. A hipótese nula, \(H_0\), é que o número de fatores no modelo, em nosso exemplo 2 fatores, é suficiente para capturar a dimensionalidade total do conjunto de dados. Convencionalmente, rejeitamos \(H_0\) se o \(p\)-valor for menor que 0.05. Tal resultado indica que o número de fatores é muito pequeno.

Em contraste, não rejeitamos \(H_0\) se o \(p\)-valor exceder 0.05. Tal resultado indica que há fatores prováveis suficientes ou mais do que suficientes, para capturar a dimensionalidade total do conjunto de dados (Teetor, 2011). O alto \(p\)-valor em nosso exemplo acima nos leva a não rejeitar o \(H_0\) e indica que ajustamos um modelo apropriado. Este teste de hipótese está disponível graças ao nosso método de estimativa, máxima verossimilhança. Observe que se você fornecer uma matriz de covariância para a função factanal() e não um quadro de dados, o teste de hipótese não será fornecido se não indicamos explicitamente o número de observações (n.obs) como um argumento adicional para a chamada da função.


A matriz residual


Lembre-se do modelo de análise fatorial: \(\widehat{\Sigma}=\widehat{Q}\widehat{Q}^\top+\widehat{\Psi}\). Usando nosso modelo fatorial food.fa podemos calcular \(\widehat{\Sigma}\) e compará-lo com a matriz de correlação observada, \(S\), por álgebra matricial simples. O operador %*% executa a multiplicação de matrizes. A função t() transpõe uma matriz. A função diag() cria uma matriz \(k\times k\) com os números na diagonal o vetor de \(k\) números no argumento e zeros em todos os outros lugares.

Lambda <- food.fa$loadings
Psi <- diag(food.fa$uniquenesses)
S <- food.fa$correlation
Sigma <- Lambda %*% t(Lambda) + Psi

Agora subtraímos a matriz de correlação ajustada (Sigma) da matriz de correlações observada (S). Também arredondamos o resultado para 6 dígitos.

round(S - Sigma, 6)
##                Oil   Density    Crispy  Fracture  Hardness
## Oil       0.000000  0.000001 -0.002613 -0.018220 -0.000776
## Density   0.000001  0.000000 -0.001081 -0.007539 -0.000320
## Crispy   -0.002613 -0.001081  0.000000  0.000000  0.000005
## Fracture -0.018220 -0.007539  0.000000  0.000000  0.000033
## Hardness -0.000776 -0.000320  0.000005  0.000033  0.000000

A matriz resultante é chamada de matriz residual. Números próximos de 0 indicam que nosso modelo fatorial é uma boa representação do conceito subjacente.


Interpretação dos fatores


O propósito de uma rotação é produzir fatores com uma mistura de cargas altas e baixas e poucas cargas de tamanho moderado. A ideia é dar sentido aos fatores, o que ajuda a interpretá-los. Do ponto de vista matemático, não há diferença entre uma matriz girada e não girada. O modelo ajustado é o mesmo, as unicidades são as mesmas e a proporção de variância explicada é a mesma.

Vamos ajustar três modelos de fatores: um sem rotação, um com rotação varimax e outro com rotação promax. Depois faremos gráficos de dispersão do primeiro e do segundo carregamentos.


food.fa.none <- factanal(food, factors = 2, rotation = "none")
food.fa.varimax <- factanal(food, factors = 2, rotation = "varimax")
food.fa.promax <- factanal(food, factors = 2, rotation = "promax")

par(mfrow = c(1,3))
plot(food.fa.none$loadings[,1], 
     food.fa.none$loadings[,2],
     xlab = "Fator 1", 
     ylab = "Fator 2", 
     ylim = c(-1,1),
     xlim = c(-1,1),
     pch = 19,
     main = "Sem rotaçao")
abline(h = 0, v = 0)

plot(food.fa.varimax$loadings[,1], 
     food.fa.varimax$loadings[,2],
     xlab = "Fator 1", 
     ylab = "Fator 2", 
     ylim = c(-1,1),
     xlim = c(-1,1),
     pch = 19,
     main = "Rotação Varimax")

text(food.fa.varimax$loadings[,1]-0.08, 
     food.fa.varimax$loadings[,2]+0.08,
      colnames(food),
      col="blue")
abline(h = 0, v = 0)

plot(food.fa.promax$loadings[,1], 
     food.fa.promax$loadings[,2],
     xlab = "Fator 1", 
     ylab = "Fator 2",
     ylim = c(-1,1),
     xlim = c(-1,1),
     pch = 19,
     main = "Rotação Promax")
abline(h = 0, v = 0)


library(psych)
fa.food <- fa(r=food, nfactors = 2, fm="minres", max.iter=100)
fa.food
## Factor Analysis using method =  minres
## Call: fa(r = food, nfactors = 2, max.iter = 100, fm = "minres")
## Standardized loadings (pattern matrix) based upon correlation matrix
##            MR1   MR2   h2    u2 com
## Oil      -0.85 -0.12 0.68 0.323 1.0
## Density   0.94  0.13 0.83 0.169 1.0
## Crispy   -0.66  0.56 0.95 0.048 1.9
## Fracture  0.58 -0.51 0.75 0.252 2.0
## Hardness  0.22  0.80 0.60 0.399 1.2
## 
##                        MR1  MR2
## SS loadings           2.48 1.32
## Proportion Var        0.50 0.26
## Cumulative Var        0.50 0.76
## Proportion Explained  0.65 0.35
## Cumulative Proportion 0.65 1.00
## 
##  With factor correlations of 
##       MR1   MR2
## MR1  1.00 -0.26
## MR2 -0.26  1.00
## 
## Mean item complexity =  1.4
## Test of the hypothesis that 2 factors are sufficient.
## 
## The degrees of freedom for the null model are  10  and the objective function was  3.33 with Chi Square of  154.99
## The degrees of freedom for the model are 1  and the objective function was  0.01 
## 
## The root mean square of the residuals (RMSR) is  0 
## The df corrected root mean square of the residuals is  0.02 
## 
## The harmonic number of observations is  50 with the empirical chi square  0.02  with prob <  0.87 
## The total number of observations was  50  with Likelihood Chi Square =  0.32  with prob <  0.57 
## 
## Tucker Lewis Index of factoring reliability =  1.048
## RMSEA index =  0  and the 90 % confidence intervals are  0 0.312
## BIC =  -3.59
## Fit based upon off diagonal values = 1
## Measures of factor score adequacy             
##                                                    MR1  MR2
## Correlation of (regression) scores with factors   0.96 0.93
## Multiple R square of scores with factors          0.93 0.87
## Minimum correlation of possible factor scores     0.86 0.75
fa.diagram(fa.food)


Agora vem o aspecto complicado na análise fatorial: interpretar os próprios fatores. Se duas variáveis têm grandes cargas para o mesmo fator, então sabemos que elas têm algo em comum. Como pesquisador, temos que entender os dados e seu significado para dar um nome a esse terreno comum. Dando uma olhada nas figuras acima, parece que o fator 1 é responsável pela massa, que é densa e pode dobrar muito antes de quebrar. Considerando que o fator 2 é responsável por uma massa crocante e difícil de quebrar. Então, se precisarmos nomear esses fatores, provavelmente os chamaríamos de massa mole (fator 1) e massa dura (fator 2).


XII.3. Exercícios


  1. Faça uma análise fatorial para o banco de dados banknote

  2. Faça uma análise fatorial sobre o tipo de famílias no conjunto de dados de alimentos franceses, Exemplo XI.6. Gire os fatores resultantes de uma maneira que forneça a interpretação mais razoável.

  3. Analise o conjunto de dados de registros atléticos, Exercício 5, Seção XI.8. Você consegue reconhecer algum padrão se classificar os países de acordo com as estimativas das pontuações dos fatores?

  4. Faça uma análise fatorial nas variáveis contínuas no conjunto de dados de crimes dos EUA, Exercício 8, Seção XI.8. Faria sentido usar todas as variáveis para a análise?

  5. Faça uma análise fatorial no conjunto de dados de saúde dos EUA, Exercício 9, Seção XI.8 e estime os escores dos fatores.

  6. Faça uma análise fatorial no conjundo de dados:

    Vocabulary = read.table(file = "http://leg.ufpr.br/~lucambio/MSM/Vocabulary.txt", 
                            sep = "", header = TRUE)
    str(Vocabulary)
    ## 'data.frame':    64 obs. of  6 variables:
    ##  $ Subjects: int  1 2 3 4 5 6 7 8 9 10 ...
    ##  $ Grade.8 : num  1.75 0.9 0.8 2.42 -1.31 -1.56 1.09 -1.92 -1.61 2.47 ...
    ##  $ Grade.9 : num  2.6 2.47 0.93 4.15 -1.31 1.67 1.5 1.03 0.29 3.64 ...
    ##  $ Grade.10: num  3.76 2.44 0.4 4.56 -0.66 0.18 0.52 0.5 0.73 2.87 ...
    ##  $ Grade.11: num  3.68 3.43 2.27 4.21 -2.22 2.33 2.33 3.04 3.24 5.38 ...
    ##  $ Mean    : num  2.95 2.31 1.1 3.83 -1.38 0.66 1.36 0.66 0.66 3.59 ...


    Este exemplo da evolução do vocabulário das crianças pode ser encontrado em Bock (1975). Os dados são extraídos dos resultados dos testes arquivados no Escritório de Registros da Escola de Laboratório da Universidade de Chicago. Eles consistem em pontuações, obtidas de uma coorte de alunos do 8º ao 11º ano, em formas alternativas da seção de vocabulário do Teste de Leitura Cooperativa. Ele fornece as pontuações em escala mostradas para a amostra de 64 sujeitos (a origem e as unidades são fixadas arbitrariamente).