Análise de Correlação Canônica

Author

Jessica Kubrusly

Análise de Correlação Canônica

A Análise de Correlação Canônica (Canonical Correlation Analysis - CCA) é uma técnica multivariada usada para investigar a relação entre dois conjuntos de variáveis. O principal objetivo é identificar e quantificar as relações lineares entre eles.

O Modelo Probabilístico

Suponha dois vetores aleatórios \(\mathbf{X} = (X_1, X_2, \ldots, X_p)\) e \(\mathbf{Y} = (Y_1, Y_2, \ldots, Y_p)\) no mesmo espaço de probabilidade. Por exemplo, \(\mathbf{X}\) pode conter variáveis aleatórias com informações socioeconômicas enquanto \(\mathbf{Y}\) contém variáveis aleatórias sobre o desempenho escolar (este é o exemplo que veremos mais adiante).

Sejam \(Var(\mathbf{X}) = \Sigma_{1,1}\), \(Var(\mathbf{Y}) = \Sigma_{2,2}\) e \(Cov(\mathbf{X},\mathbf{Y}) = \Sigma_{1,2}\). Sejam \(\mathbf{a} \in \mathbb{R}^p\) e \(\mathbf{b} \in \mathbb{R}^q\), \[ \begin{array}{ccccccc} U &=& \mathbf{a}^T\mathbf{X} &\Rightarrow& Var(U) &=& \mathbf{a}^T \Sigma_{1,1} \mathbf{a}\\ V &=& \mathbf{b}^T\mathbf{Y} &\Rightarrow& Var(V) &=& \mathbf{b}^T \Sigma_{2,2} \mathbf{b} \end{array} \] sendo \(U\) e \(V\) variáveis aleatórias definidas como combinação linear de \(\mathbf{X}\) e \(\mathbf{Y}\). Queremos encontrar os valores para \(\mathbf{a} \in \mathbb{R}^p\) e \(\mathbf{b} \in \mathbb{R}^q\) tais que \[ Var(U) = Var(V) = 1 \quad \text{e} \quad Cor(U,V) = \dfrac{\mathbf{a}^T\Sigma_{1,2}\mathbf{b}}{\sqrt{\mathbf{a}^T\Sigma_{1,1}\mathbf{a}}\sqrt{\mathbf{b}^T\Sigma_{2,2}\mathbf{b}}} \quad \text{seja máximna.} \]

Ou seja, buscamos vetores \(\mathbf{a} \in \mathbb{R}^p\) e \(\mathbf{b} \in \mathbb{R}^q\) que definem variáveis aleatórias \(U\) e \(V\) como combinação linear de \(\mathbf{X}\) e \(\mathbf{Y}\), respectivamente, de variância unitária, que maximizam a correlação entre \(U\) e \(V\). Uma vez encontrados \(\mathbf{a} \in \mathbb{R}^p\) e \(\mathbf{b} \in \mathbb{R}^q\), \(U_1 = \mathbf{a}^T\mathbf{X}\) e \(V_1 = \mathbf{b}^T\mathbf{Y}\) são as variáveis aleatorias que definem o primeiro par de variáveis canônicas.

Podemos encontrar até \(k = \min\{p,q\}\) pares de variáveis canônicas. Sempre o \(i\)-ésimo par será a solução do problema de maximização acima com a restrição adicional de ser linearmente independente dos pares anteriores. Ou seja, se \(U_i\) e \(V_i\) formam o \(i\)-ésimo par de variáveis canônicas então

  • \(Var(U_i) = Var(V_i) = 1\)

  • \(U_i\) é linearmente independente de \(U_1, U_2, \ldots, U_{i-1}\)

  • \(V_i\) é linearmente independente de \(V_1, V_2, \ldots, V_{i-1}\)

  • \(Cor(U_i,V_i)\) é máxima sob essas restrições.

É possível mostrar que o \(i\)-ésimo par de variáveis canônicas é definido por: \[ \begin{array}{ccccccc} U_i &=& \mathbf{e}_i^T \Sigma_{1,1}^{-1/2}\mathbf{X} &\Rightarrow& \mathbf{a}_i^T &=& \mathbf{e}_i^T \Sigma_{1,1}^{-1/2}\\ V_i &=& \mathbf{f}_i^T \Sigma_{2,2}^{-1/2}\mathbf{Y} &\Rightarrow& \mathbf{b}_i^T &=& \mathbf{f}_i^T \Sigma_{2,2}^{-1/2} \end{array} \] sendo \(\mathbf{e}_i\) o autovetor de \(\Sigma_{1,1}^{-1/2}\Sigma_{1,2}\Sigma_{2,2}^{-1}\Sigma_{2,1}\Sigma_{1,1}^{-1/2}\) associado ao \(i\)-ésimo autovalor de maior módulo e \(f_i\) é o \(i\)-ésimo autovetor de \(\Sigma_{2,2}^{-1/2}\Sigma_{2,1}\Sigma_{1,1}^{-1}\Sigma_{1,2}\Sigma_{2,2}^{-1/2}\) associado ao \(i\)-ésimo autovalor de maior módulo.

Além disso, \(Cor(U_i,V_i) = \rho_i\), \(\rho_1 < \rho_2 < \ldots < \rho_k\) autovalores de \(\Sigma_{1,1}^{-1/2}\Sigma_{1,2}\Sigma_{2,2}^{-1}\Sigma_{2,1}\Sigma_{1,1}^{-1/2}\) (e também de \(\Sigma_{2,2}^{-1/2}\Sigma_{2,1}\Sigma_{1,1}^{-1}\Sigma_{1,2}\Sigma_{2,2}^{-1/2}\)).

As principais saídas do método

Correlações Canônicas: Cada par variáveis canônicas tem uma correlação associada que nos mostra o quanto forte é a associação entre os grupos de variáveis.

Coeficientes Canônicos: Os pesos de cada variável original nas combinações lineares que definem as variáveos canônicas ajudam a interpretar quais variáveis contribuem mais para aquela relação.

Significância estatística: Testes para saber se as correlações canônicas encontradas são estatisticamente significativas.

Principais conclusões

  • Se existe ou não associação entre os dois conjuntos, ou seja, se um grupo de variáveis ajuda a explicar o outro grupo.

  • Quão forte é essa associação (via correlações canônicas).

  • Quais dimensões da relação são estatisticamente significativas.

  • Quais variáveis de cada conjunto são mais relevantes na associação (via coeficientes canônicos).

  • Quantas dimensões relevantes existem (às vezes só o primeiro ou os dois primeiros pares são significativos, o resto é ruído).

Exemplos de Alicação em diferentes áreas

Educação: podemos considerar o conjunto 1 de variáveis sobre características do aluno (ex.: tempo de estudo, frequência às aulas, participação em atividades extracurriculares) e o conjunto 2 variáveis de desempenho acadêmico (ex.: notas em matemática, português, ciências), a ACC mostrará se existe uma relação entre o perfil comportamental dos alunos e seu desempenho nas disciplinas.

Psicologia / Saúde Mental: Considere no conjunto 1 variáveis sobre o estilo de vida (ex.: horas de sono, prática de exercício, alimentação, uso de álcool) e no conjunto 2 indicadores de saúde mental (ex.: níveis de ansiedade, estresse, depressão), a ACC mostrará se há um padrão de associação entre estilo de vida e saúde mental.

Recursos Humanos (RH): Considere no conjunto 1 variáveis sobre as características dos funcionários (ex.: tempo de empresa, nível de escolaridade, idade) e no conjunto 2 indicadores de desempenho (ex.: produtividade, absenteísmo, avaliação de competências), a ACC mostrará se há uma relação entre o perfil dos funcionários e seu desempenho no trabalho.

Marketing / Comportamento do Consumidor: Considere no conjunto 1 variáveis sobre o perfil demográfico do consumidor (ex.: idade, renda, escolaridade) e no conjunto 2 variáveis sobre o comportamento de compra (ex.: frequência de compra, gasto médio, canais preferidos de compra), a ACC mostrará como o perfil do consumidor se relaciona com seus padrões de consumo.

Exemplo de Aplicação no R

Neste exemplo, usaremos o conjunto schooldata, disponível no pacote {heplots}. O conjunto schooldata contém dados de 70 escolas em Ontário, Canadá. Segue uma breve descrição das variáveis.

education Nível de escolaridade da mãe, medido pela porcentagem de mães com ensino médio completo.

occupation Maior ocupação de um membro da família, de acordo com uma escala de classificação pré-definida.

visit Índice de visitas dos pais, representando o número de visitas à escola.

counseling Índice de aconselhamento parental, calculado com base em dados sobre o tempo gasto com a criança em tópicos relacionados à escola, como leitura conjunta, entre outros.

teacher Número de professores na respectiva escola.

reading Pontuação em leitura, medida pelo Metropolitan Achievement Test.

mathematics Pontuação em matemática, medida pelo Metropolitan Achievement Test.

selfesteem Inventário de Autoestima de Coopersmith, utilizado como medida de autoestima.

data("schooldata", package = "heplots")
head(schooldata)
  education occupation visit counseling teacher reading mathematics selfesteem
1     86.13      16.24 48.21      49.69       9   54.53       58.98      38.16
2     29.26      10.24 41.96      40.65       5   24.69       33.89      26.02
3     43.12      11.31 38.19      35.03       9   36.41       40.62      28.51
4     24.96       6.14 24.81      25.15       7   14.94       17.58      16.19
5     11.62       2.21  6.85       6.37       4    7.81        6.94       5.37
6     11.88       4.97 18.73      18.04       4   12.59       16.85      12.84

Preparação das Variáveis

Vamos separar os dois blocos de variáveis para a CCA e padronizar seus valores.

# Variáveis socioeconômicas (X)
X <- schooldata[, c("education", "occupation", "visit", "counseling", "teacher")]
X <- scale(X)

# Variáveis de desempenho escolar (Y)
Y <- schooldata[, c("reading", "mathematics", "selfesteem")]
Y <- scale(Y)

Análise de Correlação Canônica (CCA)

A análise de correlação canônica no R é feita com a função cancor do pacote candisc.

# Executando a CCA
cca_result <- cancor(X,Y)

# Visualizando as correlações canônicas
cca_result

Canonical correlation analysis of:
     5   X  variables:  education, occupation, visit, counseling, teacher 
  with   3   Y  variables:  reading, mathematics, selfesteem 

    CanR CanRSQ    Eigen  percent    cum                          scree
1 0.9967 0.9934 151.0502 99.09963  99.10 ******************************
2 0.7456 0.5559   1.2516  0.82112  99.92                               
3 0.3283 0.1078   0.1208  0.07925 100.00                               

Test of H0: The canonical correlations in the 
current row and all that follow are zero

     CanR LR test stat approx F numDF  denDF   Pr(> F)    
1 0.99671      0.00261   87.272    15 171.56 < 2.2e-16 ***
2 0.74556      0.39627    9.270     8 126.00 5.476e-10 ***
3 0.32829      0.89222    2.577     3  64.00   0.06141 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

As correlações canônicas mostram a força da relação linear entre os pares de variáveis latentes formadas a partir de \(X\) e \(Y\). A primeira cluna da tabela acima, CanR, mostra as correlações entre os pares de variáveis canônicas, isto é, \(Cor(U_1,V_1)=\) 0.997, \(Cor(U_2,V_2)=\) 0.746 e \(Cor(U_3,V_3)=\) 0.328. A mesma tabela apresenta o p-valor para o teste que define quais dos pares de variáveis canônicas são significativos: para o exemplo os dois primeiros pares são significativos (p-valor pequeno) e o terceiro não.

Coeficientes Canônicos

Os coeficientes canônicos são os pesos numéricos usados na combinação linear das variáveis originais para formar cada variável canônica. Eles mostram quais variáveis têm mais peso na formação da combinação linear (ou seja, na construção das variáveis canônicas) e indicam como as variáveis originais entram na equação.

# Pesos canônicos
cca_result$coef
$X
                  Xcan1       Xcan2      Xcan3
education   0.102483657 -1.47631974 -0.9467795
occupation -0.852539795 -0.88937898  3.4855941
visit      -0.303629630  1.37977552 -6.6677251
counseling  0.069771738  0.69519282  4.4410777
teacher    -0.005529973  0.08601426 -0.7664147

$Y
                  Ycan1     Ycan2     Ycan3
reading      0.10009003 -4.404187 -4.639798
mathematics -0.03265962  1.936002  6.455933
selfesteem  -1.06272290  2.277733 -1.741828

A primeira dimensão canônica (mais forte) representa a principal direção de associação entre os dois conjuntos. Para este exemplo a análise mostra que a variável occupation do primeiro grupo e a variável selfesteem do segundo grupo são aquelas com maiores coeficientes.

A segunda dimensão canônica (associação secundária) representa uma nova combinação de variáveis, independente da primeira, que também apresenta uma associação significativa entre os conjuntos e revela outro padrão de relação, que a primeira dimensão não captou. Para este exemplo no grupo 1 a segunda dimensão tem maior contribuição de education e visit e no grupo 2 o maior peso é para reading.

Carregamentos Canônicos (Canonical Loadings ou Structure Coefficients)

Os carregamentos canônicos são as correlações entre as variáveis originais e suas respectivas variáveis canônicas. Mostram o quanto cada variável original está associada à sua variável canônica.

O que podemos interpretar a partir dos carregamentos canônicos?

  • Quanto maior (em valor absoluto) o carregamento de uma variável, maior sua contribuição prática para aquela dimensão canônica.

  • Um carregamento de 0,8 ou -0,8 indica uma forte correlação da variável com aquela dimensão.

  • Carregamentos próximos de zero indicam baixa relevância daquela variável naquela dimensão.

  • O sinal do carregamento (positivo ou negativo) mostra a direção da associação.

  • Variáveis que têm carregamentos altos na mesma dimensão estão atuando juntas naquela associação específica.

# Scores canônicos para X e Y:
x_scores <- as.matrix(X) %*% cca_result$coef$X
y_scores <- as.matrix(Y) %*% cca_result$coef$Y
# Carregamentos canônicos para X (loadings)
cor(X, x_scores)
                Xcan1       Xcan2       Xcan3
education  -0.8280984 -0.54486039 -0.05063295
occupation -0.9959065 -0.08685538  0.01902731
visit      -0.9929348  0.07135178 -0.04975134
counseling -0.9883301  0.04137886  0.06115402
teacher    -0.5948916 -0.10290410 -0.36849797

Para o primeiro grupo de variáveis percebemos que existe uma forte associação negativa entre a primeira dimensão e todas as variáveis, o que indica que essa dimensão representa um fator geral para as variáves socioconomicas: quanto menor essa dimensão, melhor a situação socioconomicas da escola.

Ainda sobre o primeiro grupo de variáveis (socioeconomicas), com realção à segunda dimensão, os carregamentos são bem mais baixos. Apenas education (-0.54) aparece com carregamento mediano, as demais variáveis têm carregamentos próximos de zero. Isso indica que a segunda dimensão é mais influenciada pela variável education: quanto menor essa dimensão, maior o valor de education da escola.

# Carregamentos canônicos para Y (loadings)
cor(Y, y_scores)
                 Ycan1       Ycan2       Ycan3
reading     -0.9290861 -0.35554375 0.101920179
mathematics -0.9374370 -0.26238385 0.228837454
selfesteem  -0.9996735 -0.02542246 0.002566474

Para o segundo grupo de variáveis a primeira dimensão apresenta forte correlação negativa com todas as variáveis. Novamente percebemos que essa variável indica um fator geral sobre o desempenho escolar e a autoestima, todos fortemente relacionados. Quanto menor essa dimensão, melhor o desempenho escolar da escola.

Agora em relação à segunda dimensão, observamos carregamentos moderados para leitura e matemática e mais fraco para autoestima. Quanto menor essa dimensão, melhor os indicadores de leitura e a matemática da escola.

Visualização dos Escores Canônicos

Aqui vamos vizualizar os pares de variáveis canônicas em gráfico de dispersão. O primeiro par de variávei apresentou grande correlação entre eles, 0.997, o que nos faz esperar um gráfico com pontos alinhados em torno de uma reta. Para este par de variáveis canônicas, os carregamentos canônicos indicam uma grande correlação entre todas as variáveis originais e as variáveis canônicas, tanto para o grupo 1 quanto para o grupo 2. Dessa forma, extremos no exio \(x\) indicam extremos socioeconômicos e extremos no eixo \(y\) indicam extremos no desempenho acadêmico.

df_scores <- data.frame(X1 = x_scores[,1], Y1 = y_scores[,1])

plot(df_scores,pch=19,
    main = "Relação entre os primeiros escores canônicos",
    xlab = "Escores Canônicos (Socioeconômico)",
    ylab = "Escores Canônicos (Desempenho Escolar)"
  )
grid()
i = which.min(x_scores[,1])
points(x_scores[i,1],y_scores[i,1],pch=1,col="green",cex=2)

Como esperado, os pontos estão distribuídos próximo de uma linha reta, o que confirma visualmente que há uma forte correlação canônica entre as dimensões. Aqui não percebemos nenhum aluno fora da tendencia geral, que mostrou que uma melhor situação socioeconomia resulta em um melhor desempenho escolar. Apenas destacamos os pontos isolados, que indicam escolas em situações extremas.

Por exemplo, as escolas marcadas com um circulo verde é a escola cujos variáveis são

schooldata[i,]
   education occupation  visit counseling teacher reading mathematics
59    139.65      35.03 119.56     130.83      22  120.17      144.67
   selfesteem
59      88.59

Comparando seus valores com o resumo dos dados percebemos que trata-se da escola com maiores valores para todas as variáveis. Isto significa que esta escola apresenta tanto melhor situação socioeconônica quanto melhor desempenho escolar.

summary(schooldata)
   education        occupation         visit          counseling    
 Min.   :  3.24   Min.   : 1.850   Min.   :  6.22   Min.   :  5.46  
 1st Qu.: 12.73   1st Qu.: 5.237   1st Qu.: 19.27   1st Qu.: 18.94  
 Median : 25.43   Median : 7.365   Median : 27.52   Median : 27.80  
 Mean   : 29.63   Mean   : 8.713   Mean   : 31.63   Mean   : 31.47  
 3rd Qu.: 39.14   3rd Qu.:11.505   3rd Qu.: 40.65   3rd Qu.: 41.62  
 Max.   :139.65   Max.   :35.030   Max.   :119.56   Max.   :130.83  
    teacher         reading        mathematics       selfesteem   
 Min.   : 2.00   Min.   :  4.59   Min.   :  6.16   Min.   : 4.99  
 1st Qu.: 4.00   1st Qu.: 13.15   1st Qu.: 16.23   1st Qu.:13.72  
 Median : 6.00   Median : 22.74   Median : 26.21   Median :19.59  
 Mean   : 7.00   Mean   : 25.36   Mean   : 29.83   Mean   :22.49  
 3rd Qu.: 8.75   3rd Qu.: 32.19   3rd Qu.: 38.49   3rd Qu.:28.49  
 Max.   :22.00   Max.   :120.17   Max.   :144.67   Max.   :88.59  

O gráfico de dispersão do segundo par de variáveis canônicas não será tão alinhado em uma reta quanto o primeiro, principalmente porque a correlação entre as variáveis do par é bem menor, 0.746, mais ainda assim este par de variáveis canônicas explica parte da linearidade entre os grupos 1 e 2 deste exemplo.

df_scores <- data.frame(X1 = x_scores[,2], Y1 = y_scores[,2])

plot(df_scores,pch=19,
    main = "Relação entre os primeiros escores canônicos",
    xlab = "Escores Canônicos (Socioeconômico)",
    ylab = "Escores Canônicos (Desempenho Escolar)"
  )
grid()
i = 54
points(x_scores[i,2],y_scores[i,2],pch=1,col="green",cex=2)
i = 8
points(x_scores[i,2],y_scores[i,2],pch=1,col="red",cex=2)
i = 35
points(x_scores[i,2],y_scores[i,2],pch=1,col="blue",cex=2)

Analisando o gráfico junto com os carregamentos canônicos já encontrados, podemos ver que o aumento ou diminuição de \(X_2\), que está relacionado com diminuição ou aumento de education, indica um aumento ou diminuição de \(Y_2\), que está relacionado com diminuição ou aumento de reading e mathematics. Ou seja, quanto maior a variável education da escola melhor será o seu desempenho em reading e mathematics.

Podemos destacar as observações marcadas em verde, vermelho e azul. Em verde temos a escola com maior valor de education e maiores valores para reading e mathematics - primeira linha da tabela abaixo. Em vermelho temos o oposto, a escola com menores valores para essas variáveis - segunda linha da tabela abaixo. Em azul foi marcada a escola que mais se afasta desse padrão, no caso esta escola apresenta education acima da média (pois está abaixo de 0 sua coordenada de x), mas reading e mathematics abaixo da média (pois está acima de 0 sua coordenada de y) - terceira linha da tabela abaixo.

schooldata[c(54,8,35),]
   education occupation visit counseling teacher reading mathematics selfesteem
54     82.45      15.52 45.00      44.23      13   59.63       64.41      35.89
8      20.79      12.97 54.85      52.07       8   20.29       30.64      33.16
35     61.60      15.56 53.98      50.29       6   34.64       45.46      39.22

Conclusão

A CCA revelou relações significativas entre o perfil socioeconômico das escolas e o desempenho acadêmico médio dos alunos. O método também possibilitou destacar duas escolas com situação econômica e desempenho escolar bem acima das demais. Além disso, a segunda dimensão da anális, mostrou que valores grandes para education indicam valores grandes para reading e mathematics e identificamos uma escola que não seguiu esse padrão, apresentou valor acima da média para education e abaixo da média para reading e mathematics.