요인분석 (Factor Analysis)
요인분석은 서로 상관관계가 있는 여러 변수들 속에 공통적으로 작용하는 잠재적인 요인(latent factors)을 추출하여, 데이터 구조를 단순화하고 변수들 간의 내재된 구조를 이해하려는 다변량 통계 기법이다. 쉽게 말하면, 공통 요인에 의해 설명된다고 판단되는 변수들을 하나의 묶음으로 정리함으로써, 데이터를 더 이해하기 쉽게 재구조화하고, 부수적으로 차원도 축소하는 기법이다.
크게 탐색적 방법(exploratory method)과 확증적 방법(confirmatory method)로 나뉜다. 탐색적 방법은 공통요인과 원래변수들 간에 내재하는 인과관계를 규명하는 방법으로, 변수들 사이의 관계를 가정하지 않고 적합한 모형을 찾아 나간다. 반대로 확증적 방법은 공통요인들의 개수가 요인들간 관계 등 모형에 관한 구체적 가설을 설계하고, 실제 자료로부터 검정하며, 이를 통해 모형을 수정한다.
어떤 방법이든 요인분석은 관측된 여러 변수들 속에 존재하는 잠재요인(latent factor)을 도출하는 것을 목적으로 말한다. 이러한 잠재요인은 유사한 특성을 지닌 변수들을 하나의 공통된 요인으로 묶는 방식으로 추정되며, 이를 통해 자료의 복잡성을 줄이고 핵심적인 정보를 요약할 수 있다. 즉, 상호 관련된 변수들을 하나의 요인으로 통합함으로써, 변수들 사이의 공통된 구조를 파악하고, 변수 내에 숨겨진 독립적인 특성들을 발견할 수 있다.
이렇게 변수들을 요인으로 묶음으로써 실험 가설 혹은 설계에서 임의로 변수들을 집단으로 만든 것에 대한 타당성을 검증할 수 있고 이를 확증적 방법에서 사용한다. 예를 들어서 '수학성적', '국어성적', '영어성적'이라는 변수가 '성적'이라는 특성으로 묶일 수 있다고 임의로 가정하고 실험을 설계했다고 하자. 이때 요인분석을 통해 '수학성적', '국어성적', '영어성적'이 하나의 요인으로 묶인다면 이 실험의 설계가 타당하다고 할 수 있다.
또한 상호 상관된 다수의 변수들을 소수의 요인으로 통합함으로써 데이터의 차원을 효과적으로 축소할 수 있다. 더욱이 요인에 포함되지 않아 설명력이 낮다고 평가되는 변수들을 분석에서 제외함으로써 변수를 정제할 수도 있어 차원 개수를 줄이는 데에 효과적이다.
단 요인분석을 수행하기 전 먼저 요인분석이 의미있고 신뢰성 있게 수행되기 위해서는 몇가지 조건이 필요하다.
모든 데이터가 등간척도 혹은 비율척도와 같은 정량 데이터(quantitative data)여야 한다. 즉 변수가 범주형 변수 혹은 더미변수라면 요인분석의 변수로 사용할 수 없다. 단 변수 중심의 통계 기법으로 관측 단위는 크게 중요하지 않다. 주로 공분산행렬 혹은 상관행렬을 분석하여 요인(factor)을 추출하기 때문이다. 주의해야 할 것은 독립변수와 종속변수 구분없다는 것이다.
또한 변수들이 정규분포를 따른다는 정규성(normality), 관찰치 간 상호 독립성을 가진다는 독립성(independence), 변수 간 분산이 같아야 한다는 등분산성(homoscedasticity)이 성립하는 것을 가정한다. 즉 독립항등분포(i.i.d.) 및 정규성 가정이 필요하다. 단 정규성 가정은 표본이 특정 수준 이상으로 커진다면 만족하는 것으로 간주하는 경우가 많다.
표본 수 역시 충분해야 한다. 모든 통계적 검정이 그렇지만 표본이 적다면 분석 결과가 불안정하여 신뢰를 얻기 부적합해진다. 단순 개수로 보면 최소 $50$ 이상, 가능한 $100$ 이상, 변수 수에 따라 보면 일반적으로 최소 변수 개수의 $5$배 이상이 권장된다.
조건과 비슷하게 요인분석이 의미가 있으려면 서로 관련되어 있는 변수들이 있어야 한다. 즉 변수들 사이에 일정 수준 이상의 상관관계가 존재해야 공통요인 추출이 가능하고, 공통요인 추출이 되어야 요인분석이 의미있다. 일정 수준 이상의 상관관계라는 것은 상관계수의 절댓값을 기준으로 한다.
- 요인(factor)
서로 상관계수가 높은 변수들끼리 모아서 작은 수의 변수집단으로 구성한 것이다.
- 공통요인(common factor)
뿌리를 같이하는 요인으로 예를 들어 '소득수준', '교육정도', '직업종류'의 다변량 자료에서 '사회적 계층'이라는 공통요인을 고려할 수 있다.
- 요인적재값(factor loading)
해당 변수와 요인 간의 상관계수로, 요인이 해당 변수의 분산을 얼마나 잘 설명하는지를 나타낸다. 적재값의 제곱은 그 변수 분산 중 요인으로 설명되는 비율을 의미한다.
- 요인행렬(factor matrix)
각 요인들에 대한 모든 변수들의 요인적재값을 모아놓은 행렬이다.
- 공통성(communality)
여러 요인에 의하여 설명될 수 있는 한 변수의 분산의 양을 백분율로 나타낸 것이다. 즉, 하나의 변수에 대해 추출된 요인들이 그 변수의 분산을 얼마나 잘 설명하는지를 나타내는 비율이다.
- 고유값(eigenvalue)
고유값은 각 요인이 전체 변수 분산 중 얼마나 많은 분산을 설명하는지를 나타내는 지표로 각 요인별로 모든 변수의 요인적재값을 제곱하여 더한 값이다. 고유값은 내림차순으로 정렬되며, 먼저 추출된 요인의 고유값이 이후 요인의 고유값보다 크다.
수행과정
가장 먼저 자료를 수집해야 한다. 자료가 수집되었다면 적절한 자료인지 판단하고 상관관계를 계산한다. 일반적으로 상관행렬(correlation matrix)을 검토한다. 요인분석의 목적이 측정변수들 간 동질적이거나 유사한 집단으로 묶는 것이므로 어느 한 특정 변수는 유사한 다른 변수와 높은 상관관계를 가져야 한다. 변수들간 상관관계가 높다는 것은 하나의 요인으로 나타낼 수 있다는 것을 의미하고 상관관계가 낮다는 것은 하나의 요인으로 묶기 적절하지 않다는 것을 의미한다.
상관행렬이 계산되면 요인을 추출한다. 이때 여러 모델이 사용될 수 있는데 주성분분석(PCA, principal component analysis), 최소제곱 요인추출법(least squares factor extraction), 최대우도 요인추출법(maximum likelihood), 주축 요인추출법(PAF, principal axis factoring), 알파 요인추출법(alpha factoring), 이미지 요인추출법(image factoring) 등이 있다. 주로 주성분분석을 많이 이용한다. 요인이 추출되었다면 요인적재량을 산출한다.
요인 추출 및 요인적재량 계산이 끝났다면 그 후 요인분석에서 중요한 요인회전(factor rotation)을 수행한다. 앞선 요인 추출을 통해 계산된 공통요인은 요인행렬(factor matrix)로 나타난다. 그런데 요인행렬은 변수들과 요인들간 관계를 명확하게 드러내지 못할 수 있다. 따라서 요인회전을 통해 요인을 해석하기 쉽고 의미있는 요인패턴을 갖도록 분산을 재분배한다. 여기서는 직각회전방식(orthogonal)과 비직각 회전방식(oblique)이 있다.
직각 회전은 요인들 간의 상관관계가 없다고 가정하고 요인을 회전시키는 방법으로, 요인 간의 각도를 항상 직각으로 유지하면서 회전시킨다. 이 방식은 변수들 간의 독립성을 유지하면서 요인 구조를 단순화하는 데 목적이 있다. 대표적인 직각 회전 방법으로는 베리맥스(varimax) 방식과 쿼티맥스(quartimax) 방식이 있다. 베리맥스 회전은 가장 널리 사용되는 직각 회전 방식으로, 요인행렬의 열을 단순화하는 데 중점을 둔다. 즉, 각 요인에 대한 요인적재량이 1 또는 0에 가까워지도록 하여, 변수와 요인 간의 관계를 명확하게 만들고 해석을 용이하게 한다. 반면 쿼티맥스 회전은 요인행렬의 행을 단순화하는 방식으로, 하나의 변수가 어떤 요인에 대해 높은 적재값을 가지면 다른 요인에 대해서는 낮은 적재값을 가지도록 조정한다. 이 방법은 단순한 요인 구조를 얻는 데에는 다소 한계가 있지만, 여러 변수들이 동시에 높은 적재값을 가질 경우 일반 요인(general factor)을 도출하는 데 유리하다는 장점이 있다. 이쿼맥스(equimax) 회전은 베리맥스 회전과 쿼티맥스 회전을 절충한 방법인데 잘 사용되지는 않는다.
비직각 회전은 요인들 간에 상관관계가 존재한다고 가정할 때 사용하는 방법이다. 이 회전 방식은 요인 간의 각도를 직각이 아닌 사선으로 유지하면서 요인 구조를 회전시키며, 요인들 간의 상호 관련성을 인정하는 것이 특징이다. 비직각 회전은 요인 간 독립성을 전제로 하지 않기 때문에 해석에 있어 다소 복잡하고 설득력이 떨어질 수 있지만, 실제 사회과학적 현상에서는 요인들 간의 상관이 존재하는 경우가 많기 때문에 실용적으로 널리 사용된다.
회전까지 끝났다면 모형은 다음과 같이 나올 수 있다.
$$ \mathbf{x} = \boldsymbol{\mu} + \boldsymbol{\Lambda} \mathbf{f} + \boldsymbol{\epsilon} $$
여기서 $ \mathbf{x} $ 는 관측변수 벡터로 $ p \times 1 $ 이다. $ \boldsymbol{\mu} $ 는 평균 벡터로 역시 $ p \times 1 $ 이다. $ \boldsymbol{\Lambda} $ 는 요인적재행렬로 $ p \times m $ 이다. $ \mathbf{f} $ 는 공통요인 벡터로 $ m \times 1 $ 이다. $ \boldsymbol{\epsilon} $ 는 특수요인(specific factor) 벡터로 $ p \times 1 $ 이다. 그리고 이는 다음과 같은 가정이 필요하다.
$$ \mathbf{f} \sim N_m (\mathbf{0}, \mathbf{I}), \qquad \boldsymbol{\epsilon} \sim N_p (\mathbf{0}, \boldsymbol{\Psi}), \qquad \mathrm{Cov}(\mathbf{f}, \boldsymbol{\epsilon}) = \mathbf{0} $$
즉 공통요인들은 서로 독립어야 하고, 오차변수들은 서로 독립이면서 동일한 분산을 가져야 하며, 공통요인과 특정요인은 서로 독립이어야 한다.
이렇게 통계모형이 나타나는 것이 주성분분석과 가장 크게 차이가 나는 부분이다.
모형이 만들어졌다면 요인들을 해석하고 요인점수를 산출하여 가설을 검정해볼 수 있겠다.
'Statistics > Multivariate Analysis' 카테고리의 다른 글
[Multivariate Analysis] 주성분분석(PCA, principal component analysis) (0) | 2025.05.28 |
---|---|
[Multivariate Analysis] 특이값 분해(SVD, singular value decomposition) (0) | 2025.05.28 |
[Multivariate Analysis] 차원(dimension) 및 차원 축소(dimensionality reduction) (0) | 2025.05.28 |
[Multivariate Analysis] 다변량분산분석(MANOVA, multivariate analysis variance) (0) | 2025.05.28 |
[Multivariate Analysis] 이원분산분석(two-way ANOVA) (0) | 2025.05.28 |