Stats & AI tech blog - '일단 시도함'

[R] CCA, Canonical Correlation Analysis (정준상관분석) 본문

Programming/R

[R] CCA, Canonical Correlation Analysis (정준상관분석)

justdoit ok? 2024. 1. 8. 15:58

CCA에 대한 개념 설명은 이전 포스팅 참고하면 된다.

2024.01.12 - [Machine Learning/Dimension Reduction] - [통계] CCA, Canonical Correlation Analysis (정준상관분석)

 

이번 포스팅에서는 "종속변수 y집합"과 "독립변수 x 집합"간의 상관 관계를 확인할 때 사용하는 정준상관분석(CCA)
R에서 수행하는 방법에 대해 설명한다.

 

예제)

  • 분석 목적 : "학업성취 변수군""학업태도 변수"군 사이의 상관 관계를 확인하고자 한다.

  • 데이터 설명
     - 종속 변수 y 집합 : 학업 성취 (국어 점수, 수학 점수, 영어점수 등)
     - 독립 변수 x 집합 : 학업 태도 (공부시간, 집중력, 수업 참여도 등)
국어 수학 영어 과학 역사 공부시간 집중도 과제수행 수업태도
80 60 90 70 80 2 9 8 80
60 50 60 80 70 2.5 7 8 60
70 80 80 60 90 1 7 5 70

 

  • R code
# 1. sperate x, y groups
y <- data[,c(1:5)]
x <- data[,c(6:9)]

# 2. scale data
y <- scale(y, scale = T)
x <- scale(x, scale = T)

# 3. CCA
# {CCA} cc() function
cc.subject <- cc(x, y)
cc.subject
plt.cc(cc.subject, type = 'b', var.label = T)

 

  • 분석 결과

     - $cor : 정준상관계수 : 1차 정준상관계수가 0.88로 두 선형 결합 간 상관이 높은 것을 확인할 수 있다.
$cor
[1] 0.8834332 0.4040608 0.2332060 0.1777027

 

        - $xcoef, $ycoef : 선형결합계수행렬

$xcoef
                     [,1]        [,2]        [,3]         [,4]
study_time    -0.18908114  0.02820381 -1.00301895 -0.117663673
concentration  0.03599579 -0.21717484 -0.02795791  1.002498591
assignment    -0.92961507 -0.53039911 -0.06078722  0.002215844
attitude      -0.22654993  1.03772870  0.10249923  0.019631941

$ycoef
              [,1]       [,2]       [,3]        [,4]
english  1.1584937  1.6785490 -0.2129507 -2.49433448
korean  -3.1378052  2.4999546 -1.0765159  1.17837317
math     3.6276099 -1.0399769 -0.2330914  1.02088516
science  0.2070512 -1.9876677 -4.5292201 -3.86621556
history -1.3091399 -0.4481416  5.7556986 -0.08420116