Capítulo X. Decomposição de matrizes de dados por fatores


No Capítulo I foram desenvolvidas técnicas descritivas básicas que forneceram ferramentas para olhar para dados multivariados. Basearam-se em adaptações de dispositivos bivariados ou univariados utilizados para reduzir as dimensões das observações. Nos três capítulos seguintes, serão discutidas questões de redução da dimensão de um conjunto de dados multivariado. As perspectivas serão diferentes, mas as ferramentas estarão relacionadas.

Neste capítulo, adotamos uma perspectiva descritiva e mostramos como o uso de uma abordagem geométrica fornece uma melhor maneira de reduzir a dimensão de uma matriz de dados. É derivado em relação a um critério de mínimos quadrados. O resultado serão imagens gráficas de baixa dimensão da matriz de dados. Isso envolve a decomposição da matriz de dados em fatores. Esses fatores serão classificados em ordem decrescente de importância. A abordagem é muito geral e é a ideia central de muitas técnicas multivariadas. Usamos deliberadamente a palavra fator aqui como ferramenta ou transformação para interpretação estrutural em uma análise exploratória. Na prática, a matriz a ser decomposta será alguma transformação da matriz de dados original e, conforme mostrado nos capítulos seguintes, essas transformações facilitam as interpretações dos gráficos obtidos em espaços de menor dimensão.

O Capítulo XI aborda a questão de reduzir a dimensionalidade de uma variável aleatória multivariada usando combinações lineares, os chamados componentes principais. Os componentes principais identificados são ordenados em ordem decrescente de importância. Quando aplicado na prática a uma matriz de dados, os componentes principais serão os fatores de uma matriz de dados transformada, os dados serão centralizados e eventualmente padronizados.

A análise fatorial é discutida no Capítulo XII. O mesmo problema de reduzir a dimensão de uma variável aleatória multivariada é abordado, mas neste caso o número de fatores é fixo desde o início. Cada fator é interpretado como uma característica latente dos indivíduos revelada pelas variáveis originais. A não singularidade das soluções é tratada procurando a representação com a interpretação mais fácil para a análise.

Resumindo, este capítulo pode ser visto como uma base, pois desenvolve uma ferramenta básica para reduzir a dimensão de uma matriz de dados multivariada.


X.1. Ponto de vista geométrico


Para introduzir certas idéias, suponha que a matriz \(n\times p\) de dados \(X\) seja composta de \(n\) observações ou indivíduos de \(p\) variáveis.

Existem, de fato, duas maneiras de olhar para \(X\), linha por linha ou coluna por coluna:
1. Cada linha ou observação é um vetor \(x_i^\top =(x_{i1},\cdots,x_{ip})\in \mathbb{R}^p\). Deste este ponto de vista, nossa matriz de dados \(X\) é representável como uma nuvem de \(n\) pontos em \(\mathbb{R}^p\) como mostrado na Figura X.1.

Figura X.1

  1. Cada coluna ou variável é um vetor \(x_{[j]} =(x_{1j},\cdots,x_{nj})^\top \in \mathbb{R}^n\). Deste este ponto de vista a matriz de dados \(X\) é uma nuvem de \(p\) pontos em \(\mathbb{R}^n\) como mostrado na Figura X.2.

Figura X.2

Acontece que quando \(n\) e/ou \(p\) são grandes, ou seja, maiores que 2 ou 3, não podemos produzir gráficos interpretáveis dessas nuvens de pontos. Portanto, o objetivo dos métodos fatoriais a serem desenvolvidos aqui é duplo. Tentaremos aproximar simultaneamente o espaço coluna \(C(X)\) e o espaço linha \(C(X^\top)\) com subespaços menores. A esperança é, claro, que isso possa ser feito sem perder muita informação sobre a variação e estrutura das nuvens de pontos em ambos os espaços. Idealmente, isso fornecerá percepções sobre a estrutura de \(X\) por meio de gráficos em \(\mathbb{R}\), \(\mathbb{R}^2\) ou \(\mathbb{R}^3\). O foco principal, então, é encontrar os fatores redutores de dimensão.


X.2. Ajustando a nuvem de pontos \(p\)-dimensional



Subespaços de dimensão 1


Nesta seção \(X\) é representado por uma nuvem de \(n\) pontos em \(\mathbb{R}^p\), considerando cada linha. A questão é como projetar essa nuvem de pontos em um espaço de menor dimensão. Para começar, considere o problema mais simples, ou seja, encontrar um subespaço de dimensão 1. O problema se resume a encontrar uma linha reta \(F_1\) através da origem. A direção desta linha pode ser definida por um vetor unitário \(u_1\in\mathbb{R}^p\). Portanto, estamos procurando o vetor \(u_1\) que fornece o melhor ajuste da nuvem inicial de \(n\) pontos. A situação está representada na Figura X.3.

Figura X.3. Projeção da nuvem de pontos no espaço \(u\) de menor dimensão

A representação do \(i\)-ésimo indivíduo \(x_i\in\mathbb{R}^p\) nesta linha é obtida pela projeção do ponto correspondente em \(u_1\), ou seja, o ponto de projeção \(p_{x_i}\). Sabemos que a coordenada de \(x_i\) em \(F_1\) é dada por \[ p_{x_i}=x_i^\top \dfrac{u_1}{||u_1||}=x_i^\top u_1\cdot \]

Definimos a melhor linha \(F_1\) no seguinte sentido de mínimos quadrados: Encontre \(u_1\in \mathbb{R}^p\) que minimiza \[ \sum_{i=1}^n ||x_i-p_{x_i} ||^2\cdot \]

Como \[ ||x_i-p_{x_i} ||^2 = ||x_i ||^2 - ||p_{x_i} ||^2 \] pelo Teorema de Pitágoras, o problema de minimizar \(\sum_{i=1}^n ||x_i-p_{x_i} ||^2\) é equivalente a maximizar \(\sum_{i=1}^n ||p_{x_i} ||^2\). Assim, o problema é encontrar \(u_1\in\mathbb{R}^p\) que maximize \(\sum_{i=1}^n ||p_{x_i} ||^2\) sob a restrição \(|| u_1||=1\). Podemos então escrever \[ \begin{pmatrix} p_{x_1} \\ p_{x_2} \\ \vdots \\ p_{x_n} \end{pmatrix} = \begin{pmatrix} x_1^\top u_1 \\ x_2^\top u_1 \\ \vdots \\ x_n^\top u_1 \end{pmatrix} = Xu_1 \]

e o problema pode finalmente ser reformulado como: encontrar \(u_\in\mathbb{R}^p\) com \(|| u_1||=1\) que maximiza a forma quadrática \((Xu_1)^\top (Xu_1)\) ou \[ \max_{u_1^\top u_1=1} u_1 (X^\top X)u_1\cdot \]


Teorema X.1

O vetor \(u_1\) que minimiza \[ \sum_{i=1}^n ||x_i-p_{x_i} ||^2\cdot \] é o autovetor de \(X^\top X\) associado ao maior autovalor \(\lambda_1\) de \(X^\top X\).


Observe que se os dados foram centrados, ou seja, \(\overline{x}=0\), então \(X=X_c\), onde \(X_c\) é a matriz de dados centrada e \(\frac{1}{n}X^\top X\) é a matriz de covariâncias. Assim, o Teorema X.1 diz que estamos procurando um máximo da forma quadrática dentro da matriz de covariâncias \(S_X=\frac{1}{n}X^\top X\).


Representação da nuvem em \(F_1\)


As coordenadas dos \(n\) indivíduos em \(F_1\) são dadas por \(Xu_1\). \(Xu_1\) é chamado a primeira variável fatorial ou o primeiro fator e \(u_1\) o primeiro eixo fatorial. Os \(n\) indivíduos, \(x_i\), são agora representados por uma nova variável fatorial \(z_1 = Xu_1\). Esta variável fatorial é uma combinação linear das variáveis originais \(x_{[1]},\cdots,x_{[p]}\) cujos coeficientes são dados pelo vetor \(u_1\), ou seja, \[ z_1 = u_{11}x_{[1]}+\cdots+u_{p1}z_{[p]}\cdot \]

Figura X.4. Representação dos indivíduos \(x_1,\cdots,x_n\) como uma nuvem de pontos bidimensional.


Subespaços de dimensão 2


Se aproximarmos os \(n\) indivíduos por um plano, ou seja, dimensão 2, pode-se mostrar pelo Teorema II.5 que este espaço contém \(u_1\). O plano é determinado pelo melhor ajuste linear, ou seja, pelo \(u_1\) e um vetor unitário \(u_2\) ortogonal a \(u_1\) que maximiza a forma quadrática sob as restrições \[ || u_2 ||=1 \qquad \mbox{e} \qquad u_1^\top u_2 =0\cdot \]


Teorema X.2

O segundo eixo fatorial, \(u_2\), é o autovetor de \(X^\top X\) correspondente ao segundo maior autovalor \(\lambda_2\) de \(X^\top X\).


O vetor unitário \(u_2\) caracteriza uma segunda linha \(F_2\), na qual os pontos são projetados. As coordenadas dos \(n\) indivíduos em \(F_2\) são dadas por \(z_2 = Xu_2\). A variável \(z_2\) é chamada de segunda variável fatorial ou segundo fator. A representação dos \(n\) indivíduos no espaço bidimensional \(z_1 = Xu_1\) vs. \(z_2 = Xu_2\) é mostrada na Figura X.4.


Subespaços de dimensão \(q\) \((q\leq p)\)


No caso de \(q\) dimensões a tarefa é novamente minimizar \(\sum_{i=1}^n ||x_i-p_{x_i} ||^2\) mas com pontos de projeção em um subespaço \(q\)-dimensional. Seguindo o mesmo argumento acima, pode-se mostrar pelo Teorema II.5 que este melhor subespaço é gerado por \(u_1, u_2,\cdots,u_q\), os autovetores ortonormais de \(X^\top X\) associados aos autovalores correspondentes \(\lambda_1\geq \lambda_2\geq \cdots \geq \lambda_q\). As coordenadas dos \(n\) indivíduos no \(k\)-ésimo eixo fatorial, \(u_k\), são dadas pela \(k\)-ésima variável fatorial \(z_k = Xu_k\) para \(k = 1,\cdots, q\).

Cada variável fatorial \(z_k = (z_{1k},z_{2k},\cdots, z_{nk})^\top\) é uma combinação linear das \(p\) variáveis originais \(x_{[1]},x_{[2]},\cdots,x_{[p]}\), cujos coeficientes são dados pelos elementos do \(k\)-ésimo vetor \(u_k\).


X.3. Ajustando a nuvem de pontos \(n\)-dimensional



Subespaços de dimensão 1


Suponha que \(X\) seja representado por uma nuvem de \(p\) pontos (variáveis) em \(\mathbb{R}^n\), considerando cada coluna. Como essa nuvem pode ser projetada em um espaço dimensional inferior? Começamos como antes com uma dimensão. Em outras palavras, temos que encontrar uma linha reta \(G_1\), que é definida pelo vetor unitário \(v_1\in\mathbb{R}^n\) e que fornece o melhor ajuste da nuvem inicial de \(p\) pontos.

Algebricamente, este é o mesmo problema acima, substitua \(X\) por \(X^\top\) e siga a Seção X.2: a representação da \(j\)-ésima variável \(x_{[j]}\in \mathbb{R}^n\) é obtida pela projeção do ponto correspondente na reta \(G_1\) ou na direção \(v_1\).

Portanto, temos que encontrar \(v_1\) tal que \(\sum_{j=1}^p ||p_{x_{[j]}} ||^2\) seja maximizado, ou equivalentemente, temos que encontrar o vetor unitário \(v_1\) que maximiza \((X^\top v_1)^\top (Xv_1) = v_1^\top (XX^\top) v_1\). A solução é dada pelo Teorema II.5.


Teorema X.3

\(v_1\) é um autovetor de \(XX^\top\) correspondente ao maior autovalor \(\mu_1\) de \(XX^\top\).


Representação da nuvem no \(G_1\)


A representação das \(p\) variáveis em um subespaço de dimensão \(q\) é feita da mesma forma que para os \(n\) indivíduos acima. O melhor subespaço é gerado pelos autovetores ortonormais \(v_1, v_2,\cdots,v_q\) de \(XX^\top\) associados aos autovalores \(\mu_1\geq \mu_2\geq \cdots \mu_q\).

As coordenadas das \(p\) variáveis no \(k\)-ésimo eixo fatorial são dadas pelas variáveis fatoriais \(w_k = X^\top v_k\), \(k=1,\cdots,q\). Cada variável fatorial \(w_k = (w_{k1},w_{k2},\cdots,w_{kp})^\top\) é uma combinação linear dos indivíduos originais \(x_1, x_2,\cdots, x_n\) cujos coeficientes são dados pelos elementos do \(k\)-ésimo vetor \(v_k\). A representação em um subespaço de dimensão \(q=2\) é mostrada na Figura X.5.

Figura X.5. Representação das variáveis \(x_{[1]},\cdots,x_{[n]}\) como uma nuvem de pontos bidimensional.


X.4. Relações entre subespaços


O objetivo desta seção é apresentar uma relação de dualidade entre as duas abordagens mostradas nas Seções X.2 e X.3. Considere as equações de autovetores em \(\mathbb{R}^n\) \[ (XX^\top)v_k = \mu_k v_k, \] para \(k\leq r\), onde \(r=\mbox{posto}(XX^\top)=\mbox{posto}(X)\leq \min(p,n)\).

Multiplicanfo por \(X^\top\), temos \[ X^\top (XX^\top) v_k = \mu_kX^\top v_k \qquad \mbox{ou} \qquad (X^\top X)(X^\top v_k)=\mu_k (X^\top v_k), \]

de modo que cada autovetor \(v_k\) de \(XX^\top\) corresponde a um autovetor \((X^\top v_k)\) de \(X^\top X\) associado ao mesmo autovalor \(\mu_k\).

Isso significa que todo autovalor diferente de zero de \(XX^\top\) é um autovalor de \(X^\top X\). Os autovetores correspondentes estão relacionados por \[ u_k = c_k X^\top v_k, \]

onde \(c_k\) é uma constante.

Agora considere as equações de autovetores em \(\mathbb{R}^p\) \[ (X^\top X)u_k = \lambda_k u_k \]

para \(k\leq r\). Multiplicando por \(X\), temos \[ (XX^\top)(Xu_k) = \lambda_k (X u_k), \] isto é, cada autovetor \(u_k\) de \(X^\top X\) corresponde a um autovetor \(X u_k\) de \(XX^\top\) associado ao mesmo autovalor \(\lambda_k\). Portanto, todo autovalor diferente de zero de \((X^\top X)\) é um autovalor de \(XX^\top\). Os autovetores correspondentes estão relacionados por \[ v_k =d_k Xu_k, \] sendo \(d_k\) uma constante. Agora, desde que \(u_k^\top u_k=v_k^\top v_k=1\) temos \(c_k=d_k=\dfrac{1}{\sqrt{\lambda_k}}\). Isto nos leva as seguinte resultado.


Teorema X.4 (Relação de Dualidade)

Seja \(r\) o posto de \(X\). Para \(k\leq r\), os autovalores \(\lambda_k\) de \(X^\top X\) e \(XX^\top\) são os mesmos e os autovetores \(u_k\) e \(v_k\), respectivamente, são relacionados por \[ u_k=\dfrac{1}{\sqrt{\lambda_k}}X^\top v_k \qquad \mbox{e} \qquad v_k=\dfrac{1}{\sqrt{\lambda_k}}Xu_k\cdot \]


Observe que a projeção das \(p\) variáveis no eixo \(v_k\) fatorial é dada por \[ w_k=X^\top v_k = \dfrac{1}{\sqrt{\lambda_k}}X^\top Xu_k = \sqrt{\lambda_k}u_k\cdot \]

Portanto, os autovetores \(v_k\) não precisam ser explicitamente recalculados para obter \(w_k\).

Observe que \(u_k\) e \(v_k\) fornecem a decomposição em valores singulares de \(X\), veja o Teorema II.2. Escolhendo \(U=(u_1, u_2, \cdots , u_r\), \(V=(v_1, v_2, \cdots, v_r)\) e \(\Lambda=(\lambda_1,\cdots,\lambda_r)\) temos \[ X= V\Lambda^{1/2} U^\top \] de forma que \[ x_{ij}=\sum_{k=1}^r \lambda^{1/2}u_{ik}u_{jk}\cdot \]

Na seção seguinte, este método é aplicado na análise do comportamento de consumo em diferentes tipos de domicílios.


X.5. Cálculos práticos


A implementação prática das diversas técnicas introduzidas começa com o cálculo dos autovalores \(\lambda_1\geq \lambda_2\geq \cdots \lambda_p\) e dos autovetores correspondentes \(u_1,\cdots,u_p\) de \(X^\top X\). Como \(p\) é geralmente menor que \(n\), isso é numericamente menos complicado do que calcular \(v_k\) diretamente para \(k=1,\cdots,p\).

A representação gráfica dos \(n\) indivíduos em um plano é então obtida traçando \(z_1=Xu_1\) vs \(z_2=Xu2\); \(z_3=Xu_3\) pode eventualmente ser adicionado se uma terceira dimensão for útil. Usando a Relação de Dualidade (Teorema X.4) as representações para as \(p\) variáveis podem ser facilmente obtidas.

Essas representações podem ser visualizadas em um gráfico de dispersão de \(w_1=\sqrt{\lambda_1}u_1\) contra \(w_2=\sqrt{\lambda_2}u_2\) e, eventualmente, contra \(w_3=\sqrt{\lambda_3} u_3\). Resoluções fatoriais dimensionais mais altas podem ser obtidas computando \(z_k\) e \(w_k\) para \(k > 3\), mas, é claro, não podem ser plotadas.

Uma maneira padrão de avaliar a qualidade das representações fatoriais em um subespaço de dimensão \(q\) é dada pela razão \[ \tau_q = \dfrac{\lambda_1+\lambda_2+\cdots+\lambda_q}{\lambda_1+\lambda_2+\cdots+\lambda_p}, \] onde \(0\leq \tau_q\leq\). Em geral, o produto escalar \(y^\top y\) é chamado de inércia de \(y\in\mathbb{R}^n\).

Portanto, a razão \(\tau_q\) é geralmente interpretada como a porcentagem da inércia explicada pelos primeiros \(q\) fatores. Observe que \(\lambda_j=(Xu_j)^\top (Xu_j)=z_j^\top z_j\). Assim, \(\lambda_j\) é a inércia da \(j\)-ésima variável fatorial, ou seja, a origem. O denominador em \(\tau_q\) é uma medida da inércia total das \(p\) variáveis, \(x_{[j]}\).

De fato \[ \sum_{j=1}^p \lambda_j = \mbox{tr}(X^\top X)=\sum_{j=1}^p \sum_{i=1}^n x_{ij}^2 = \sum_{j=1}^p x_{[j]}^\top x_{[j]}\cdot \]

É claro que a soma \(\sum_{j=1}~q \lambda_j\) é a soma da inércia das primeiras \(q\) variáveis fatoriais \(z_1,z_2,\cdots,z_q\).


Exemplo X.1

O conjunto de dados consiste nas despesas médias com alimentação para vários tipos diferentes de famílias na França: trabalhadores manuais = MA, funcionários = EM, gerentes = CA com diferentes números de filhos: 2, 3, 4 ou 5 filhos. Os dados são extraídos de Lebart, Morineau and Fénelon (1982).


FrenchFood = read.table(file = "http://leg.ufpr.br/~lucambio/MSM/FrenchFood.txt", sep = "")
head(FrenchFood)
##     Bread Vegetables Fruit Meat Poultry Milk Wine
## MA2   332        428   354 1437     526  247  427
## EM2   293        559   388 1527     567  239  258
## CA2   372        767   562 1948     927  235  433
## MA3   406        563   341 1507     544  324  407
## EM3   386        608   396 1501     558  319  363
## CA3   438        843   689 2345    1148  243  341


Estamos interessados em investigar se certos tipos de famílias preferem certos tipos de alimentos. Podemos responder a essa pergunta usando as aproximações fatoriais desenvolvidas aqui.

A matriz de correlação correspondente aos dados é

correla = cor(FrenchFood)
correla
##                Bread Vegetables      Fruit       Meat    Poultry        Milk
## Bread      1.0000000  0.5931102  0.1961388  0.3212691  0.2480083 0.855574797
## Vegetables 0.5931102  1.0000000  0.8562502  0.8810807  0.8267774 0.662798738
## Fruit      0.1961388  0.8562502  1.0000000  0.9594767  0.9255419 0.332188558
## Meat       0.3212691  0.8810807  0.9594767  1.0000000  0.9817853 0.374590641
## Poultry    0.2480083  0.8267774  0.9255419  0.9817853  1.0000000 0.232891845
## Milk       0.8555748  0.6627987  0.3321886  0.3745906  0.2328918 1.000000000
## Wine       0.3037612 -0.3564682 -0.4862806 -0.4372353 -0.4001570 0.006879604
##                    Wine
## Bread       0.303761226
## Vegetables -0.356468250
## Fruit      -0.486280578
## Meat       -0.437235281
## Poultry    -0.400157002
## Milk        0.006879604
## Wine        1.000000000


library(corrplot)
par(cex= 0.6)
corrplot.mixed(correla,
 upper = "square",
 lower = "number",
 addgrid.col = "black",
 tl.col = "black")

Observamos uma correlação bastante alta 0.9817853 entre carne (Meat) e aves (Poultry), enquanto a correlação para gastos com leite (Milk) e vinho (Wine) 0.006879604 é bastante pequena. Existem tipos domésticos que preferem, digamos, carne ao invés de pão (Bread)? Vamos agora representar os gastos com alimentação e as famílias usando dois fatores simultaneamente. Primeiro, observe que neste problema em particular a origem não tem um significado específico, representa um consumidor zero. Portanto, faz sentido comparar o consumo de qualquer família com o de uma família média e não com a origem.

Portanto, os dados são primeiro centrados, a origem é traduzida para o centro de gravidade, \(\overline{x}\). Além disso, como as dispersões das sete variáveis são bastante diferentes, cada variável é padronizada para que cada uma tenha o mesmo peso na análise: média 0 e variância 1. Finalmente, por conveniência, dividimos cada elemento da matriz por \(\sqrt{n}=\sqrt{12}\). Isto só irá alterar a escala dos apresentações no gráfico de representação.

A matriz de dados a ser analisada é \[ X_* = \dfrac{1}{\sqrt{n}}HXD^{-1/2}, \]

onde \(H\) é a matriz de centralização e \(D=\mbox{diag}(s_{X_1 X_j})\). Note que padronizando por \(\sqrt{n}\), segue que \(X_*^\top X_* = R\) onde \(R\) é a matriz de correlação dos dados originais. Calculando

H = diag(1,nrow(FrenchFood))-matrix(1/nrow(FrenchFood),nrow=nrow(FrenchFood),ncol=nrow(FrenchFood))
D = diag(1/sqrt(diag((nrow(FrenchFood)-1)*cov(FrenchFood)/nrow(FrenchFood))))
X1 = (H%*%as.matrix(FrenchFood)%*%D)/sqrt(nrow(FrenchFood))
t(X1)%*%X1
##           [,1]       [,2]       [,3]       [,4]       [,5]        [,6]
## [1,] 1.0000000  0.5931102  0.1961388  0.3212691  0.2480083 0.855574797
## [2,] 0.5931102  1.0000000  0.8562502  0.8810807  0.8267774 0.662798738
## [3,] 0.1961388  0.8562502  1.0000000  0.9594767  0.9255419 0.332188558
## [4,] 0.3212691  0.8810807  0.9594767  1.0000000  0.9817853 0.374590641
## [5,] 0.2480083  0.8267774  0.9255419  0.9817853  1.0000000 0.232891845
## [6,] 0.8555748  0.6627987  0.3321886  0.3745906  0.2328918 1.000000000
## [7,] 0.3037612 -0.3564682 -0.4862806 -0.4372353 -0.4001570 0.006879604
##              [,7]
## [1,]  0.303761226
## [2,] -0.356468250
## [3,] -0.486280578
## [4,] -0.437235281
## [5,] -0.400157002
## [6,]  0.006879604
## [7,]  1.000000000


valores.proprios = eigen(t(X1)%*%X1)$values
vetores.proprios = eigen(t(X1)%*%X1)$vectors

mostra que as direções dos dois primeiros autovetores desempenham um papel dominante, \(\tau_2=88\)%, enquanto as outras direções contribuem com menos de 15% da inércia. Calculamos os valores de \(\tau\) abaixo:

denom = sum(valores.proprios)
for(i in 1:ncol(FrenchFood)) {num = sum(valores.proprios[1:i]); print(num/denom)}
## [1] 0.6190339
## [1] 0.8805039
## [1] 0.9706234
## [1] 0.9889559
## [1] 0.9971782
## [1] 0.9998709
## [1] 1

Um gráfico bidimensional deve ser suficiente para interpretar este conjunto de dados.

W = sqrt(valores.proprios)*t(vetores.proprios)
colnames(W) = names(FrenchFood)
print(W, digits = 2)
##         Bread Vegetables   Fruit   Meat Poultry    Milk    Wine
## [1,] -0.49873    -0.9697 -0.9291 -0.962  -0.911 -0.5843  0.4282
## [2,]  0.84162     0.1331 -0.2779 -0.191  -0.266  0.7069  0.6482
## [3,]  0.00862     0.0494 -0.1155 -0.165  -0.283  0.3523 -0.6196
## [4,] -0.19476    -0.0082  0.1962 -0.019  -0.116  0.1611  0.1097
## [5,] -0.00872     0.1940  0.0160 -0.099  -0.054 -0.0818  0.0165
## [6,]  0.06974    -0.0413  0.0859 -0.013  -0.048 -0.0456 -0.0190
## [7,] -0.00071     0.0047 -0.0062  0.022  -0.018 -0.0045  0.0013


par(mfrow=c(1,1), pch = 19)
plot(W[1,], W[2,], xlim = c(-1.5,0.5), ylim = c(-0.5,1), 
     main = "Alimentos")
text(W[1,], W[2,],  colnames(W),
     cex = 0.88, pos = 1, col = "darkgreen")
abline(h=0,v=0)
grid()


Vamos primeiro examinar o gráfico de gastos com alimentos. Neste gráfico vemos a representação das \(p=7\) variáveis dadas pelos dois primeiros fatores. O gráfico mostra as variáveis fatoriais \(w_1\) e \(w_2\) da mesma forma que a Figura X.4. Vemos que os pontos para carnes, aves, legumes e frutas estão próximos uns dos outros no canto inferior esquerdo do gráfico. As despesas com pão e leite podem ser encontradas no canto superior esquerdo, enquanto o vinho fica sozinho no canto superior direito. O primeiro fator, \(w_1\), pode ser interpretado como o fator de consumo de carne/fruta, o segundo fator, \(w_2\), como o componente pão/vinho.

Z = X1%*%vetores.proprios
rownames(Z) = rownames(FrenchFood) 
print(Z, digits = 2)
##       [,1]   [,2]   [,3]   [,4]    [,5]   [,6]     [,7]
## MA2  0.862 -0.110 -0.122  0.109 -0.0682  0.019 -0.00736
## EM2  0.570 -0.540  0.394 -0.049  0.0277  0.021  0.00712
## CA2  0.036 -0.219 -0.429  0.059  0.1339 -0.047 -0.00384
## MA3  0.615  0.097  0.032  0.031 -0.0035 -0.021  0.01864
## EM3  0.511 -0.049  0.155  0.047  0.0530  0.016 -0.00931
## CA3 -0.511 -0.409 -0.300 -0.129  0.0229  0.081  0.00427
## MA4  0.281  0.414  0.083 -0.079 -0.0282  0.020 -0.01567
## EM4  0.076  0.191 -0.082  0.087 -0.0486 -0.033  0.00426
## CA4 -0.483 -0.523 -0.030 -0.121 -0.1271 -0.066 -0.00380
## MA5 -0.067  0.837 -0.171 -0.074 -0.0367  0.019  0.00712
## EM5 -0.588  0.341  0.298 -0.098  0.0983 -0.038 -0.00176
## CA5 -1.302 -0.030  0.172  0.217 -0.0235  0.029  0.00033


par(mfrow=c(1,1), pch = 19)
plot(Z[,1], Z[,2], xlim = c(-2,2), ylim = c(-1,1),
     main = "Famílias")
text(Z[,1], Z[,2],  row.names(Z),
     cex = 0.88, pos = 1, col = "darkgreen")
abline(h=0,v=0)
grid()


Mostramos agora as variáveis fatoriais \(z_1\) e \(z_2\) do ajuste dos \(n=12\) tipos de domicílio. Observe que pelas Relações de Dualidade do Teorema X.4, as variáveis fatoriais \(z_j\) são combinações lineares dos fatores \(w_k\)

As famílias dos gerentes estão localizadas no canto inferior esquerdo do gráfico, enquanto os trabalhadores manuais e empregados tendem a estar no canto direito. As variáveis fatoriais para CA5 (gestores com cinco filhos) aproximam-se do fator carne/fruta. Em relação ao consumidor médio, este tipo de agregado familiar é um grande consumidor de carne/aves e frutas/legumes. No Capítulo XI, voltaremos a essas tramas interpretando-as de maneira muito mais profunda. Nesta fase, basta notar que os gráficos fornecem uma representação gráfica em \(\mathbb{R}^2\) das informações contidas na matriz de dados original de alta dimensão \(12\times 7\).



X.6. Exercícios


  1. Prove que \(\frac{1}{n}Z^\top Z\) é a covariância da matriz de dados centrada, onde \(Z\) é a matriz formada pelas colunas \(z_k= Xu_k\).

  2. Aplicar as técnicas fatoriais às notas bancárias suíças.

  3. Aplicar as técnicas fatoriais ao conjunto de dados: Time Budget Data ou dados temporais de orçamento em In Volle (1985). Nestes arquivo de dados, 28 indivíduos identificados de acordo com o sexo, país onde vivem, atividade profissional e estado civil, indicando o tempo que cada pessoa gastou em 10 categorias de atividades ao longo de 100 dias, \(100 \times 24\)h = 2400 horas total em cada linha, em 1976.
    Foram registradas as seguintes variáveis:
    prof: atividade profissional
    tran: transporte vinculado à atividade profissional
    hous: ocupação doméstica
    kids: ocupação ligada a crianças
    shop: compras
    pers: tempo gasto para cuidados pessoais
    eat: comer
    slee: dormindo
    tele: assistindo televisão
    leis: outras atividades de lazer

    TimeBudgetData = read.table(file = "http://leg.ufpr.br/~lucambio/MSM/TimeBudgetData.txt", 
                                sep = "", header = TRUE)
    head(TimeBudgetData)
    ##    ind prof tran hous kids shop pers eat slee tele leis
    ## 1 maus  610  140   60   10  120   95 115  760  175  315
    ## 2 waus  475   90  250   30  140  120 100  775  115  305
    ## 3 wnus   10    0  495  110  170  110 130  785  160  430
    ## 4 mmus  615  140   65   10  115   90 115  765  180  305
    ## 5 wmus  179   29  421   87  161  112 119  776  143  373
    ## 6 msus  585  115   50    0  150  105 100  760  150  385

    Identificação dos indivíduos:
    maus: homens ativos nos Estados Unidos
    waus: mulheres ativas nos Estados Unidos
    wnus: mulheres não ativas nos Estados Unidos
    mmus: homens casados nos Estados Unidos
    wmus: mulheres casadas nos Estados Unidos
    msus: homens solteiros nos Estados Unidos
    wsus: mulheres solteiras nos Estados Unidos
    mawe: homens ativos de países ocidentais
    wawe: mulheres ativas de países ocidentais
    wnwe: mulheres não ativas de países ocidentais
    mmwe: homens casados de países ocidentais
    wmwe: mulheres casadas de países ocidentais
    mswe: homens solteiros de países ocidentais
    wswe: mulheres solteiras de países ocidentais
    mayo: homens ativos da Iugoslávia
    wayo: mulheres ativas da Iugoslávia
    wnyo: mulheres não ativas da Iugoslávia
    mmyo: homens casados da Iugoslávia
    wmyo: mulheres casadas da Iugoslávia
    msyo: homens solteiros da Iugoslávia
    wsyo: mulheres solteiras da Iugoslávia
    maes: homens ativos de países orientais
    waes: mulheres ativas de países orientais
    wnes: mulheres não ativas de países orientais
    mmes: homens casados de países orientais
    wmes: mulheres casadas de países orientais
    mses: homens solteiros de países orientais
    wses: mulheres solteiras de países orientais

  4. Suponha que você deseja analisar \(p\) variáveis aleatórias independentes distribuídas de forma idêntica. Qual é a porcentagem da inércia explicada pelo primeiro fator? Qual é a porcentagem da inércia explicada pelos primeiros \(q\) fatores?

  5. Suponha que você tenha \(p\) variáveis aleatórias i.i.d.. O que o autovetor, correspondente ao primeiro fator, parece.

  6. Suponha que você tenha duas variáveis aleatórias, \(X_1\) e \(X_2= 2X_1\). Como são os autovalores e autovetores de sua matriz de correlação? Quantos autovalores são diferentes de zero?

  7. Que porcentagem de inércia é explicada pelo primeiro fator na exercício anterior?

  8. Como os autovalores e autovetores no Exemplo X.1 mudam se considerarmos os preços em USD em vez de em EUR? Faz diferença se alguns dos preços estão em EUR e outros em USD?