Data Business

[Data Business] 통계 기반 & 머신러닝 분석 방법론

Minhyuc 2024. 3. 27. 18:42

■ 통계 기반 분석 방법론

분석 모델 개요
데이터 분석 방법론은 크게 두 축으로 나뉜다.
· 통계 모델(Statistical models): 통계학에 기반한다. 모형과 해석을 중요하게 생각하며, 오차와 불확정성을 강조한다.
· 기계학습(Machine learning): 인공지능에서 파생되었다. 대용량 데이터를 활용하여 예측의 정확도를 높이는 것을 중요하게 생각한다.

 

기계학습 데이터 분석 방법론은 두 가지 기준으로 구분 가능하다.

1. 종속변수 유무에 따라 결정
지도학습(Supervised learning)
비지도 학습(Unsupervised learning)
강화학습(Reinforcement learning)

2. 독립변수와 종속변수의 속성에 따라 결정

 

지도학습은 입력에 대한 정답이 주어져서 출력된 결괏값과 정답 사이의 오차가 줄어들도록 학습과 모델 수정을 반복한다. 결괏값이 양적 척도면 회귀(Regression) 방식의 방법론을 사용하고, 질적 척도면 분류(Classification)을 사용한다.
자율학습이라고도 불리는 비지도 학습은 별도의 정답이 없이 변수 간의 패턴을 파악하거나 데이터를 군집화하는 방법이다. 크게 차원 축소, 군집 분석, 연관 규칙이라는 세 가지로 구분 지을 수 있다.

차원 축소는 주로 지도학습 성능을 높이기 위한 전처리 방법으로 사용된다.
군집 분석의 경우, 정답지(labeling) 없이 유사한 관측치들끼리 군집으로 분류하는 기법이다. 유사한 특성을 가진 것끼리 묶음으로써 각 집단의 특성을 분석한다. 대표적인 예로 고객 세분화(customer segmentation)이 있다.
연관규칙(association rules) 분석은 제품이나 콘텐츠를 추천하기 위해 사용하는 모델이다.
강화학습은 동물이 시행착오(trial and error)를 통해 학습하는 과정을 기본 concept로 한 방법 중 하나이다. 모델의 결과에 보상과 벌을 주면서 스스로 학습하게 하는 것이다.
대표적으로, 2016년 이세돌 9단을 이긴 알파고가 강화학습 알고리즘을 사용한 예시가 있다.

 

주성분 분석(PCA)

주성분 분석(Principal Component Analysis; PCA)은 여러 개의 독립변수들을 잘 설명해 줄 수 있는 주된 성분을 추출하는 기법이다. 주성분 분석을 통해 전체 변수들의 핵심 특성만 선별하기 때문에, 독립변수(차원)의 수를 줄일 수 있다. 이는 흔히 말하는 차원의 저주(curse of dimensionality)를 방지하기 위한 방법이다. 변수의 수를 줄임으로써 모형이 간단해지고 분석 결과의 효과적인 해석이 가능하다.
다차원의 데이터 분포를 가장 잘 설명해주는 성분들을 찾아주는 PCA는 데이터 공간에 위치하는 점들의 분산을 최대한 보존하는 축을 통해 차원을 축소하는 것이 핵심 요소이다. 물론 PCA과정에서는 처음 가지고 있던 변수 개수만큼의 새로운 성분변수가 생성된다. 하지만 전체 변수를 통합적으로 가장 잘 설명해주는 성분변수, 그 다음으로 높은 설명력의 변수... 식으로 주성분 변수가 생성되기 때문에 전체 변수 설명력이 높은 주성분 변수만 선정하여 총 변수의 개수를 줄일 수 있다. 일반적으로는 제1주성분, 제2주성분만으로 대부분의 설명력이 포함되기 때문에 두 개의 주성분만 선정한다.

ex) 2차원 데이터

X1, X2 두 변수를 시각화하면 데이터의 분산이 보인다. PCA의 원리는 이러한 데이터 분산을 가장 잘 표현할 수 있는 저차원을 찾아내는 것이다. 그러한 축을 찾아내기 전에 우선 데이터 표준화를 한다. 그 후 데이터의 분산을 가장 잘 나타낼 수 있는 축을 찾는다. 아래의 그림에서 번 축이 가장 많은 분산을 담는 것을 확인할 수 있다. 이처럼 해당 차원의 가장 많은 분산을 담아내는 축이 '주성분'이 되는 것이다.

주성분을 찾기 위한 최대 분산 축 그리기

앞서 주성분으로 선정되었던 번 축과 각 포인트와의 거리를 나타내는 직각 선을 그린다. 주성분을 찾는 과정은 C포인트로부터 직각으로 맞닿는 지점과 (0,0)의 거리가 최대가 되도록 하는 축을 찾는 것이다.

주성분의 원리

앞에서 PCA는 처음 변수의 개수만큼 새로운 성분이 나온다고 했다. 지금 예시를 들고 있는 2차원의 경우에는 가장 설명력이 높았던 번 축과 직교하는 선이 제2주성분이다. 아래처럼 번축과 대조되는 짧은 길이(낮은 분산)로 생성된다. 이는 제2주성분은 전체 변수에 대한 설명력이 낮음을 의미한다. 예시는 2차원, 즉 변수가 두 개이기 때문에 최대 2개의 주성분을 만들 수 있다. 만약 변수가 10개라면 총 10개의 주성분을 만들 수 있다.

제2 주성분 생성

전체 분산 중에서 해당 주성분이 갖고 있는 분산이 곧 설명력이다. 각 주성분의 분산은 모든 포인트들과 주성분과의 거리의 제곱합을 n-1로 나누어서 구한다.

이렇게 구한 제1주성분의 분산이 만약 15이고, 제2주성분의 분산이 5라고 가정하면, 제1주성분의 설명력은 전체 분산인 20 중 15이므로 75%이다. 그리고 제2주성분은 나머지인 25%의 설명력을 갖게 된다.
 

공통요인분석(CFA)

공통요인분석은(Common Factor Analysis; CFA)은 데이터의 요인을 분석한다는 큰 개념인 요인분석에서, 공통분산만을 토대로 요인을 추출하는 것이다.

요인분석은 목적에 따라 탐색적 요인분석확인적 요인분석으로 구분한다.
탐색적 요인분석(Exploratory Factor Analysis; EFA)은 변수와 요인 간의 관계가 사전에 정립되지 않거나 체계화되지 않은 상태에서 변수 간의 관계를 알아보기 위해 사용한다.
확인적 요인분석(Confirmatory Factor Analysis; CFA)은 이미 변수들의 속성을 예상하고 있는 상태에서 실제로 구조가 그러한 지 확인하기 위한 목적으로 쓰인다.
PCA와의 관계?
PCA와 CFA는 요인분석(Factor Analysis; FA)을 하기 위한 기법의 종류다. 요인분석은 말 그대로 주어진 데이터의 요인을 분석한다는 큰 개념이고, 요인분석을 하기 위해 전체 분산을 토대로 요인을 추출하는 PCA를 사용하거나 공통분산만을 토대로 요인을 추출하는 CFA를 선택할 수 있다.
PCA는 전체 독립변수들을 잘 설명해줄 수 있는 주된 성분 두세 개를 추출하는 기법이었다. CFA 역시 전체 독립변수를 축약한다는 점에서 PCA와 동일하지만, 상관성이 높은 변수들을 묶어 잠재된 몇 개의 변수를 찾는다는 점에서 차이가 있다.
PCA는 모든 독립 변수들의 총 변량(총 분산)을 기반으로 요인을 추출하기 때문에 전체 변수를 가장 잘 설명해주는 순으로 주성분의 우위가 결정된다. 반면 CFA는 변수들 간의 공통 변량(공통분산)만을 기반으로 하여 요인을 추출한다. 따라서 CFA로 생성한 주성분들은 서로의 중요성 측면에서 우위가 없다.

 
PCA나 CFA와 같은 요인분석을 하기 위해서는 우선 독립변수들 간의 상관성이 요인분석에 적합한지 검증해야 한다. 이를 확인하기 위해 바틀렛(Bartlett) 테스트와 KMO(Kaiser-Meyer-Olkin) 검정이 있다.
바틀렛 테스트는 행렬식을 이용하여 카이제곱값을 구하여 각 변수들 사이의 상관계수의 적합성을 검증하는 방법으로 유의확률 p값으로 나타낸다. p값이 0.05보다 작으면 대각행렬이 아니라는, 즉 변수들 간 상관관계가 있다는 뜻이므로 분석에 적합하다고 판단한다.
KMO 검정은 변수들 간 상관관계가 다른 변수에 의해 잘 설명되는 정도를 나타내는 값을 통계적으로 산출하는 검정 방법이다. 독립변수들 간의 상관계수 제곱들과 편상관계수들을 모두 더한 값에서 상관계수 제곱의 합이 차지하는 비율 값이 KMO 값이다. 일반적으로 0.8 이상이면 우수, 0.5 이상이면 적합, 0.5 미만이면 부적합으로 본다.

KMO 표

적합성을 검증한 후에는 요인분석을 통해 생성되는 주성분 변수들의 고유치(eigen value)를 확인하여 요인의 개수를 결정한다. 고유치가 1이라는 것은 해당 요인이 변수 하나만큼의 분산을 가지고 있다는 것을 의미한다.

ex) 고유치 표

예시의 고유치 표에서는 2번 성분까지가 1 이상의 고유치와 60% 이상의 누적 설명력을 가지고 있으므로 적정한 요인 수로 판단된다. 추가적으로 이와 함께 스크리 도표(scree plot)를 참고하여 적정한 요인의 수를 결정할 수 있다. 스크리 도표는 요인 수에 따른 고유치 변화를 그래프로 나타낸 것이다. 이를 통해 직관적으로 고유치 확인이 가능하고 그래프의 경사가 낮아지는 지점을 통해 적정한 요인을 선정하는 데에 참고할 수 있다. 이 지점을 elbow point라 하며 일반적으로 이 부분까지의 요인을 선택한다.

다음으로 요인 적재 값(factor loading)을 통해 각 변수와 요인 간의 상관관계의 정도를 확인할 수 있다. 선정된 요인이 어떤 변수를 설명해 주는가를 나타내는 것이다. 요인 적재 값이 ±0.3 이상이면 변수와 요인에 유의성이 있다고 할 수 있으며, 일반적으로 ±0.5 이상이면 해당 요인에서 중요한 변수로 판단한다.

ex) 요인 적재 값 행렬(factor loading matrix) 예시

위와 같이 산출된 dataset을 통한 요인 적재 값에서는 제1주성분(F1)이 담배, 술, 커피 소비량에 높은 요인 적재 값을 나타냈음으로 기호식품 소비량을 의미하는 요인이라 명명할 수 있다.
 

다중공선성 해결

다중공선성(multicollinearity)이란 독립변수들 간의 상관관계가 높은 현상을 뜻한다. 즉 두 개 이상의 독립변수가 서로 선형적인 관계를 나타낼 때 다중공선성이 있다고 한다.

다중공선성이 생기면 독립 변수들 간에는 서로 독립이라는 회귀분석의 전제 가정을 위반하게 된다. 회귀분석에서 다중공선성이 발생하게 되면 추정치의 통계적 유의성이 낮아져 모델의 정합성이 맞지 않는 문제가 발생한다. 회귀모델은 첫 번째 독립 변수가 종속 변수를 예측하고 두 번째 독립 변수가 남은 변량을 예측하는 식으로 구성된다. 그런데 다중공선성이 있는 경우 첫 번째 변수가 설명하고 남은 변량을 두 번째 변수가 예측하는 데에 문제가 생긴다. 왜냐하면 두 변수가 설명할 수 있는 부분이 거의 동일하기 때문에 두 번째 변수가 설명할 수 있는 변량이 거의 없게 되기 때문이다.
다중공선성 판별 기준
1. 회귀 분석 모델을 실행하기 전에 상관분석을 통해 독립 변수 간의 상관성을 확인하여 높은 상관계수를 갖는 독립변수를 찾아내는 방법
2. 회귀분석 결과에서 독립변수들의 설명력을 의미하는 결정계수 R^2 값은 크지만 회귀계수에 대한 t값(t-value)이 낮을 때
3. VIF(Variance Inflation Factor, 분산팽창계수)를 통해 판단

해당 변수의 VIF 값은 회귀분석 모델에 사용된 다른 독립 변수들이 해당 변수 대신 모델을 설명해 줄 수 있다는 정도를 나타낸다. 즉, 해당 변수가 다른 변수들에 의해 설명될 수 있는 정도를 의미한다. 따라서 VIF가 크다는 것은 해당 변수가 다른 변수들과 상관성이 높다는 것이기 때문에 회귀 계수에 대한 분산을 증가시키므로 제거를 해주는 것이 좋다.

위 수식을 해석하면, 1에서 K번째 변수에 대한 다른 변수들의 설명력(R^2)을 뺀 값을 분모로 하고 1을 분자로 한 값이 K번째 변수의 VIF 값이 된다. 즉, 다른 변수들에 의해 설명되는 수준이 높을 수록 VIF는 큰 값을 가지게 된다. R^2은 0~1 범위에서 정해지기 때문에 VIF 값은 1에서 무한대의 범위를 갖는다. 일반적으로 5 이상이면 다중공선성을 의심해봐야 하며, 10 이상일 경우 다중공선성이 있다고 판단한다.
그리고 VIF 값에 루트를 씌운 값은 해당 변수가 다른 변수들과의 상관성이 없는 경우보다 표준오차가 X배 높다는 것을 의미한다. 예를 들어 A라는 변수의 VIF 값이 16이라면, A 변수는 다중공선성이 없는 상태보다 표준오차가 16에 루트를 씌운 값인 4배 높다는 것을 의미한다. 표준오차가 높은 변수는 분석 모델의 성능을 저하시키므로 제거하는 것이 좋다.

다중공선성 해결법
· VIF 값이 높은 변수들 중에서 종속변수와의 상관성(설명력)이 가장 낮은 변수를 제거하고 다시 VIF 값을 확인하는 것을 반복
· 표본 관측치를 추가적으로 확보하여 다중공선성을 완화
· 변수를 가공하여 변수 간의 상관성을 줄이는 방법
· 주성분 분석
· 데이터 분석 환경에서 제공하는 변수 선택 알고리즘을 활용: 전진 선택법(Forward selection), 후진 제거법(Backward elimination), 단계적 선택법(Stepwise method)
 섀플리 밸류 분석

섀플리 밸류(Shapley Value) 분석은 각 독립변수가 종속변수의 설명력에 기여하는 순수한 수치를 계산하는 방법이다.
예를 들어 독립변수 x1, x2, x3와 종속변수 y의 관계를 분석한다고 했을 때, 다음과 같은 설명력 조합이 나왔다는 가정이 있다.

x1과 x2를 함께 투입했을 경우에는 0.32의 설명력을 가진다. x2만 투입했을 때는 0.21의 설명력을 가지므로 x1, x2 조합에서 x1의 기여도는 0.32-0.21=0.11이 되고, x2의 기여도는 0.32-0.15=0.17이 된다. 즉, x1만 사용했을 때보다 x2와 함께 사용했을 때 x2가 0.17 만큼의 설명력을 더해 주는 것이다.
동일한 방식으로 x1, x3 조합에서 x1의 기여도를 계산하면 0.29-0.17=0.12가 된다. 그리고 세 가지 조합에서 x1의 기여도는 0.04이다. 이 때 두 변수 조합인 경우의 평균은 (0.11+0.12)/2=0.115이고, 이렇게 구한 세 가지 조합에서 x1의 기여도는 각각 0.15, 0.115, 0.04이고 이 값들의 평균을 구하면 (0.15+0.115+0.04)/3=0.101이다. 이 값이 x1의 섀플리 밸류로, x1, x2, x3를 모두 투입했을 때 x1이 갖는 순수한 설명력이다. 이를 정리하면 다음과 같다.

· x1 단일 조합에서 x1의 기여도: 0.15
· x1, x2와 x1, x3 두 변수 조합에서 x1의 기여도 평균: 0.115
▶ (0.11+0.12)/2=0.115
· x1, x2, x3 조합에서 x1의 기여도: 0.04
· 모든 조합에서 x1의 기여도 평균: 0.101(x1의 섀플리 밸류)
▶ (0.15+0.115+0.04)/3=0.101

x1 뿐만 아니라 나머지 독립변수들도 같은 방식으로 섀플리 밸류 값을 구할 수 있다. 변수 각각의 섀플리 밸류 값을 모두 더하면 0.35로, 각 변수를 모두 투입했을 때의 설명력과 동일하다. 이처럼 섀플리 밸류는 해당 변수를 모델에 투입했을 때 설명력에 어느 정도의 기여를 하는 지 측정할 수 있는 기준값으로 활용할 수 있다.
 

데이터 마사지

데이터 마사지란 데이터 분석 결과가 예상하거나 의도한 방향과 다를 때 데이터의 배열을 수정하거나 관점을 바꾸는 등 동일한 데이터라도 해석이 달라질 수 있도록 유도하는 것이다.

편향된 데이터 전처리
이상치나 결측값 등의 전처리를 분석가가 의도하는 방향에 유리하도록 하는 것이다. 예를 들어 A그룹과 B그룹이 있다. 의 수치가 크도록 유도하고 싶은데 A그룹이 B그룹보다 큰 값의 이상치가 많으면 일부러 이상치 처리를 하지 않거나 이상치 선정 기준을 높이는 것이다.
매직그래프 사용
그래프의 레이블 간격이나 비율을 왜곡하여 수치의 차이를 실제보다 크거나 작게 인식하도록 유도하는 방법이다. 쉽게 말해 데이터 조작이며, 절대 사용해서는 안 되며 매직그래프에 속지 않도록 유의가 필요하다.

분모 바꾸기 등 관점 변환
동일한 비율 차이라 하더라도 분모를 어떻게 설정하는가에 따라 받아들여지는 느낌이 달라질 수 있다.
의도적인 데이터 누락 및 가공
데이터 분석가가 원하는 방향과 반대되는 데이터를 의도적으로 누락시키거나 다른 수치와 결합하여 특성을 완화시키는 방법이다.
머신러닝 모델의 파라미터 값 변경 및 연산 반복
통계적 수치뿐만 아니라 머신러닝 모델의 결괏값도 어느 정도 유도가 가능하다. 대부분 수많은 데이터와 변수를 사용하므로 의도한 대로 데이터 성향을 조정하거나 가공할 수 있는 여지가 많으며 모델의 파라미터 값을 변경해 가며 다양하게 연산을 반복하다 보면 머신러닝 모델의 결과가 원하는 대로 조정될 수 있다.
심슨의 역설
각 부분에 대한 평균이 크다고 해서 전체에 대한 평균까지 크지는 않다는 것을 의미한다. 영국의 통계학자 에드워드 심슨이 정리한 역설로, 각각의 변수에 신경 쓰지 않고, 전체 통계 결과를 유추하다 일어나는 오류에 유의할 것을 말하고 있다.

 

블라인드 분석

데이터 마사지에 의한 왜곡을 방지하기 위해 사용하는 방법으로 블라인드 분석(Blind analysis)이 있다. 데이터 분석이 아무리 통계적 수치를 기반으로 한다고 해도 분석가의 주관적 판단을 완전히 배제할 수는 없다. 의도하든 의도하지 않든 기존의 가설과 경험에 의한 선입견이 분석 과정에서 개입되는 경우가 많다. 이를 인지적 편향 혹은 확증 편향이라 한다. 블라인드 분석은 이러한 편향에 의한 오류를 최소하하기 위한 방법이다.
 

Z-test와 T-test

집단 내 혹은 집단 간의 평균값 차이가 통계적으로 유의미한 것인지 알아내는 방법이다. Z-test와 T-test는 두 집단 간의 평균 차이를 분석할 때 사용하는 것이다.
 
Z-test와 T-test는 단일 표본 집단의 평균 변화를 분석하거나 두 집단의 평균값 혹은 비율 차이를 분석할 때 사용한다. 우선 Z-test와 T-test는 분석하고자 하는 변수가 양적 변수이며, 정규 분포이며, 등분산이라는 조건이 충족 되어야 한다. 이 두 분석 방법을 선택하는 기준은 모집단의 분산을 알 수 있는 지의 여부와 표본의 크기에 따라 달라진다.

Z-test는 본래 모집단의 분산을 알 수 있는 경우에 사용되지만, 모집단의 분산을 알 수 있는 경우는 보통 거의 없다. 하지만 표본의 크기가 30 이상이면 중심 극한 정리에 의해 정규분포를 따른다고 볼 수 있으므로 Z-test 사용이 가능하다. 이러한 경우에는 Z-test와 T-test의 결과가 유사하게 나타난다.
T-test는 표본의 크기가 30 미만이어서 표본 집단의 정규분포를 가정할 수 없을 때 사용된다. 물론 표본 집단의 크기가 30 이상일 때도 사용 가능하기 때문에 일반적으로 T-test를 사용한다.

 
T-test로 분석하는 방법을 예시를 통해 공부해보고자 한다.

T-test 분석 예시

A 쇼핑몰의 기존 고객집단 C의 월평균 매출은 42,000원이었다. 마케팅 부서에서 새로운 고객관리 프로그램을 개발해서 고객집단 C에 적용을 했다. 새로운 마케팅 프로그램을 적용한 후 월평균 매출이 43,000원으로 늘어났다. 1,000원의 증가가 통계적으로 유의미한 차이인 지 분석해보자(고객집단 C는 100명).
 
첫번째로, 통계적으로 매출 차이가 있는 지의 여부를 가설로 설정, 가설 검정의 종류와 유의수준을 설정한다.

가설 설정 후에는 매출 평균이 단순히 같지 않은 지를 검정하기 위한 것인지(양측검정), 매출 평균이 더 적은가를 검정하기 위한 것인지(왼쪽꼬리검정), 매출 평균이 더 큰가를 검정하기 위한 것인지(오른쪽꼬리검정)에 따라 적합한 검정 방법을 선택한다. 현재 예시에서는 동일한가의 여부를 검정하기 위한 것이므로 양측검정을 선택했다.
 
유의수준을 일반적 기준은 0.05로 한다고 했을 때, 양쪽을 검정하는 것이기 때문에 유의수준도 2로 나누어 계산한다. 따라서 p-value가 0.025를 초과하는 지에 따라 귀무가설의 기각 여부를 결정한다. 만약 p-value가 0.025보다 작다면 월평균 매출이 동일하다는 귀무가설을 기각하여, 월평균 매출이 통계적으로 다르다고 결론 내릴 수 있다.

왼쪽꼬리검정, 양측검정, 오른쪽꼬리검정

두번째로 비교할 평균과 표준편차 그리고 표준오차를 계산한다.

예시 값

마케팅 프로그램 도입 후로 월평균 매출은 1,000원이 늘었고, 각 고객들의 매출 차이에 대한 표준편차는 6,250원이다. 이를 전체 대상 고객인 100명에 루트를 취하여 계산된 10으로 나누면 625라는 표준 오차를 구할 수 있다.
 
세번째로, 방금 계산했던 각 값을 T-test 공식에 대입하여 t 통계치를 구한다. t 통계치를 구하는 공식은 다음과 같다.

수식에서 알 수 있듯, 평균의 차이가 클 수록, 그리고 표본의 수가 클 수록 t값은 증가하게 된다. 반대로 관측치들의 값 간 표준편차가 크면 평균의 차이가 불분명해지게 되고 t값은 감소한다.
 
T-test 공식에 각 수치를 대입하면 1.6이라는 수치가 계산된다. 이는 양측검정의 기각역 경계인 -1.984/+1.984에 미치지 못한다. 검정 통계량 t 값 1.6이 임계치 2.003보다 작기 때문에 대립가설을 기각하고 귀무가설을 채택한다. 따라서 해당 마케팅 프로그램의 매출 증대 효과는 유의수준 0.05에서 없다고 판단할 수 있다. 기각역 경계는 p값 0.025를 자유도(표본 크기)에 따른 t 값으로 변환하여 구한 값이다.

t value 임계치

다음으로 T-test를 사용하여 두 집단의 평균 차이를 통계적으로 검정하는 방법이다. 분석 방법은 단일 모집단 평균 비교 방식과 유사하다. A 집단의 평균과 B 집단의 평균값의 차이가 통계적으로 유의미한 지 본다고 했을 때, 우선 두 집단의 값을 산포도로 시각화하여 분포가 어떻게 이루어졌는 지를 파악한다. 그 후에 단일 집단의 평균값 차이를 T-test로 분석하는 방법과 동일한 절차로 분석을 진행한다. 가설을 설정하고 각 집단의 평균, 분산, 두 집단의 표본평균 차이, 표준오차 등의 값을 통해 검정 통계량 t값을 구하여 귀무가설 기각 여부를 판단한다.

ex) 두 집단 평균 가설검정을 위한 T-test 예시
두 집단의 T-test를 하는 공식

 

두 집단 평균 차이 T-test의 귀무가설은 '집단 A와 B의 평균은 차이가 없다.'이므로, 두 집단 간의 평균 차이를 표준오차로 나누어 검정 통계량 t 값을 구하는 것이다. 기본적인 개념은 단일 집단 T-test와 같다. 표준 오차가 크면 두 집단의 평균 차이에 대한 유의도가 감소하게 된다. 이 공식에서 (μA-μB)은 두 집단의 평균은 동일하다는 귀무가설의 추정 평균이므로, 0이 된다. 따라서 해당 공식의 분자는 A집단과 B집단의 평균 차이가 된다.
 
마지막으로 단일 집단의 비율 차이에 대한 T-test와 두 집단의 비율차이 검정을 위한 T-test에 대하여 알아본다. 비율의 차이 검정 방법 역시 평균 비교 방법과 유사하다. 비율의 차이를 표준오차로 나눠주어 t값 계산을 한 다음 유의수준(α)으로 환산하여 대립가설 채택 여부를 판단한다.
 
여기에서는 비율의 분산을 구하는 방법만 짚고 넘어가면 된다. 표본의 비율은 p로 표현하며, 비율의 분산은 p(1-p)가 된다. 그리고 표준오차는 비율의 분산을 표본의 수(n)로 나눈 뒤 루트를 씌운 값이 된다.

예를 들어 100명으로 구성된 A 집단의 여성 비율이 30%라면, 여성 비율의 분산은 0.3(1-0.3)=0.21이다. 그리고 표준 오차는 아래와 같아지는 것이다.

나머지 원리는 평균 차이 검정 방식과 동일하다. 아래는 관련 수식을 정리했다.

단일 집단 비율 차이에 대한 T-test
· p: 변화된 후의 비율
· π: 변화전의 비율 혹은 귀무가설의 추정 비율
· n: 표본 크기
두 집단 비율 차이에 대한 T-test
· PA: A 집단의 비율
· PB: B 집단의 비율
· πA: A 모집단의 비율(귀무가설의 추정 비율)
· πB: B 모집단의 비율(귀무가설의 추정 비율)
· nA: A 집단의 표본 수
· nB: B 집단의 표본 수

 

ANOVA(Analysis of Variance)

ANOVA는 분산 분석이라고도 많이 불린다. 세 집단 이상의 평균을 검정할 때는 ANOVA를 사용한다.T 분포를 사용하는 T-test와는 달리 ANOVA는 F분포를 사용한다. F검정의 통곗값은 집단 간 분산의 비율을 나타낸다. 그래서 분산 분석이라 불리는 것이다.

연속확률분포인 F분포는 두 모분산의 비교 및 검정을 위해 사용한다. 항상 양의 값을 가지며 오른쪽으로 긴 꼬리 형태를 보인다. ANOVA나 회귀분석 등에서 F분포를 통해 독립변수가 종속변수에 미치는 영향을 분석한다. ANOVA도 결국에는 집단의 종류(독립변수)가 평균 값의 차이 여부(종속변수)에 미치는 영향을 검정하는 것이다.
ANOVA의 일반적인 가설은 다음과 같은 형태가 된다.

독립변수는 집단을 나타낼 수 있는 범주(분류)형이어야 하며, 종속 변수는 연속형 변수이어야 한다. 독립변수와 종속변수의 형태에 따라 회귀분석이나 교차분석으로 분석 방법이 바뀐다. 회귀분석은 독립변수와 종속변수가 연속형일 때 사용하며, 교차분석은 독립변수와 종속변수가 분류형일 때 사용한다.
ANOVA는 각 집단의 평균값 차이가 통계적으로 유의한 지 검증한다. 따라서 각 집단의 평균이 서로 멀리 떨어져 있어 집단 평균의 분산이 큰 정도를 따져서 집단 간 평균이 다른 지를 판별한다. 이러한 요소로 집단 내의 각 관측치들이 집단 평균으로부터 얼마나 퍼져 있는 지를 나타내는 분산, 즉 집단 내 분산이 사용되며, 전체 집단의 통합 평균과 각 집단의 평균값이 얼마나 퍼져 있는 지를 나타내는 집단 간 평균의 분산이 사용된다.

각 집단에 속한 관측치의 값은 서로 겹칠 수가 있다. 분산이 커서 집단 간에 관측치의 값이 겹치는 부분이 크면 각 집단의 평균이 다르다고 보기 어려울 것이며, 각 집단의 평균이 서로 멀리 떨어져 있으면 집단 간 평균 차이가 확실히 반다고 할 수 있을 것이다. ANOVA는 이러한 원리를 이용한 것이다. 큰 개념으로 집단 간 평균의 분산을 집단 내 분산으로 나눈 값이 유의도 임계치를 초과하는가에 따라 집단 간 평균 차이를 검정하는 것이다. ANOVA의 공식은 다음과 같다.

공식을 보면 알 수 있듯 집단 간 분산을 집단 내 분산으로 나눠서 F값을 구한다. 이해를 돕도록 ANOVA 공식 표 형태로 표현하기도 한다.

 

카이제곱 검정(교차분석)

카이제곱 검정(Chi-square test)은 교차분석(Crosstabs)이라고도 불리며, 명목 혹은 서열척도와 같은 범주형 변수들 간의 연관성을 분석하기 위해 결합분포를 활용하는 방법이다.
 
'연령'과 같은 비율척도 변수는 '연령대'와 같은 서열척도로 변환해서 사용해야 한다. 기본 원리는 변수들 간의 범주를 동시에 교차하는 교차표를 만들어 각각의 빈도와 비율을 통해 변수 상호 간의 독립성과 관련성을 분석하는 것이다. 교차분석은 상관분석과는 달리 연관성의 정도를 수치로 표현할 수 없다. 대신 검정 통게량 카이 제곱(χ^2)을 통해 변수 간 연관성이 없다는 귀무가설을 기각하는 지 여부로 상관성을 판단한다.
 
다음은 성별과 A 제품 사용 경험 유무로 이루어진 100개의 데이터다.

ex) 교차표 변환 전 기존 데이터
교차표를 통한 관측빈도 계산

다음으로, 두 변수가 서로 독립적일 경우에 나타날 기대빈도를 구한다. 실제 관측빈도와 기대빈도와의 차이를 통해 상호독립성이나 관련성을 분석하는 것이다.

기대빈도 조합 표

· A의 기대빈도: (A+B)(A+C)/(A+B+C+D)
· B의 기대빈도: (A+B)(B+D)/(A+B+C+D)
· C의 기대빈도: (C+D)(A+C)/(A+B+C+D)
· D의 기대빈도: (C+D)(B+D)/(A+B+C+D)

이를 예시에 대입하면 기대빈도를 구할 수 있다.

교차표를 통한 기대빈도 계산

이제 검정 통계량 χ^2 값을 산출하여 유의수준에 따라 결정된 임계치를 비교하여 가설을 검정한다. 검정 통계량은 각 셀의 χ^2ij 값을 구한 다음 모두 합하면 된다. 가설검정은 (행의 수-1)(열의 수-1)를 통해 자유도를 구하여 임계치를 비교하면 된다. χ^2ij 값은 다음과 같이 계산한다.

각 셀의 χ^2 값을 모두 합한 값은 0.0873이고, 해당 자유도의 유의수준(α) 0.05 임계치는 3.84이므로 성별 간에는 A 제품 사용 여부와는 상관성이 없다는 귀무가설을 채택한다.
 

■ 머신러닝 분석 방법론

선형 회귀분석

회귀분석은 각 독립변수의 평균을 통해 종속변수를 예측한다. 해당 객체가 소속된 집단의 X(독립변수) 평균값을 통해 Y(종속변수) 값을 예측하는 것이 기본적인 원리다. 회귀분석을 한 마디로 정의하면, "종속변수 Y의 값에 영향을 주는 독립변수 X들의 조건을 고려하여 구한 평균값"이라 할 수 있다.
 
이러한 원리로, 회귀선은 절편, 기울기, 오차항으로 이루어진다. 오차항은 독립변수가 종속변수에 주는 영향력을 제외한 변화량을 뜻한다. 회귀분석은 이 오차항을 최소화하는 절편과 기울기를 구하는 것이다. 다음은 회귀선을 수식으로 표현한 것이다.

위 수식에서 y는 예측하고자 하는 값이며 베타(0)는 절편, 베타(1~n)은 각 독립변수가 종속변수에 주는 영향력(계수) 값이고 X1~Xn은 각 독립변수이다. 마지막 값은 모델에 의해 설명되지 않는 잔차이다.
최적의 회귀선을 구하는 작업을 모형 적합이라 부르며, 이는 회귀선과 각 관측치 포인트 간의 거리를 최소화하는 것이다. 구체적으로는 예측치와 관측치들 간의 수직 거리(오차)의 제곱합을 최소로 하는 직선을 찾게 된다. 이 방법이 최소제곱추정법이다.

관측치 값과 예측값의 거리^2 합 최소화

독립변수가 하나인 회귀분석은 단순 회귀분석 혹은 단변량 회귀분석이라 불리며 독립변수가 두개 이상이면 다중 회귀분석 혹은 다변량 회귀분석이라 불린다. 회귀분석을 하기 위해서는 독립변수 간에 상관관계가 없어야 하며(다중공선성이 없어야 하며) 그 외에도 다음과 같은 조건들을 필요로 한다(잔차 = 실제 관측값 - 예측값).

· 잔차의 정규성: X(독립변수)에 해당되는 Y(종속변수)의 값들의 잔차는 정규분포를 해야 한다.
· 잔차의 등분산성: 잔차의 분산은 회귀 모형의 독립 변숫값과 상관 없이 일정해야 한다.
· 선형성: X(독립변수) 값의 변화에 따른 Y(종속변수) 값의 변화는 일정해야 한다.

 
선형 회귀는 독립변수와 종속변수가 비선형적 관계일 경우 예측력이 떨어진다. 이때는 변수를 구간화하여 이항변수로 표시된 몇 개의 더미변수로 변환해 분석을 진행하면 된다. 향수를 많이 뿌릴수록 매력도가 상승하지만 과도하게 많이 뿌렸을 때는 다시 매력도가 떨어진다고 했을 때, 구간화하여 더미변수로 변환하게 된다면 과도하게 많이 뿌린 구간에 대해서만 음의 관계를 갖도록 수식을 세울 수 있다. 또한 비선형성이 심하지 않은 경우에는 독립변수나 종속변수에 로그함수를 취하면 비선형성을 어느정도 완화시킬 수 있다.

다항 회귀(Polynomial regression)

비선형적 관계를 위한 일반 회귀모델의 변수 가공 방식은 한계가 있다. 그래서 고안된 모델이 다항 회귀이다. 다항 회귀란 독립변수와 종속변수의 관계가 비선형 관계일 때 변수에 각 특성의 제곱을 추가하여 회귀선을 비선형으로 변환하는 모델이다. 다항회귀는 차수가 커질수록 편향은 감소하지만 변동성이 증가하여 분산이 늘고 과적합을 유발할 수 있다는 문제점이 있다.
 
회귀분석에서는 기본적으로 모든 회귀계수가 0이라는 것을 귀무가설로 설정하며 적어도 하나의 변수는 회귀계수가 0이라는 것을 대립가설로 설정한다. 회귀분석을 수행했을 때 일반적으로 다음과 같은 변수별 결과 요약을 확인할 수 있다.

다중 회귀분석 변수별 계수 및 유의도 결과

 
Parameter Estimate는 각 변수의 계수를 뜻하며(독립변수 X1이 1만큼 커질 때 종속변수 Y는 0.604만큼 증가한다) Intercept는 절편을 의미한다. Standard Error는 표준오차이며 이 값이 크다면 그만큼 예측값과 실젯값의 차이가 크다는 의미이다. 하지만 변수마다 스케일 단위가 다를 때는 표준오차의 절댓값만으로 실제 오차를 판단하기 어렵다. 이를 위해 사용하는 값이 T Value이다.
 
T Value(노이즈 대비 시그널의 강도)는 독립변수와 종속변수 간에 선형관계가 얼마나 강한지를 나타낸다. 이는 변수의 회귀계수 값을 표준오차로 나누어 구하며 절댓값의 크기로 변수의 유의성을 판단할 수 있다. 판단 기준은 관측치의 크기에 따라 달라지는데 관측치 100개 기준으로 T Value 값이 1.98을 넘으면 0.05 유의수준 임계치를 넘어서기 때문에 유의하다고 판단한다.
 
관측치의 수와 각각의 T Value를 조합하여 유의도를 판단하는 것은 비효율적이기 때문에 P Value를 사용한다. P Value는 T Value와 관측치 수를 고려하여 한번에 유의도를 나타낸 값이다. 일반적으로 값이 0.05 이하일 때 95% 귀무가설 기각역에 포함하므로 유의하다고 판단하며, 경우에 따라 0.1이나 0.01을 기준으로 하기도 한다.
 
Tolerance(공차한계)와 VIF(분산팽창지수)는 다중공선성을 판단할 수 있는 값들이며 해당 변수의 다른 독립 변수들과 상관관계 수준을 판단하는 기준이다. 이 둘은 서로 역수 관계이다.
 
위 도표에서 변수별 유의도와 공선성 통계량을 통해 모델이 최종적으로 사용할 변수를 선택할 수 있다. 하지만 선택된 변수들 조합에 따라 유의도와 공선성 통계량이 변하기 때문에 이는 생각보다 까다롭다. 우선 독립변수 X2와 X5의 VIF 값이 10을 훨씬 넘어가기 때문에 이들을 제거하려 하는데, X2만 제거했을 때와 X5만 제거했을 때의 다른 변수들의 유의도와 공선성 통계량, 모델 전체의 설명력 등을 각각 비교하여 최적의 조합을 찾아야 한다.
 
이때, 독립변수의 개수가 늘어난다면 수동으로 일일이 변수 조합을 테스트하는 것은 비효율적이다. 그렇기에 최적의 변수 조합을 선택하는 알고리즘을 사용하게 된다.

· 전진 선택법 : 절편만 있는 모델에서 시작하여 유의미한 독립변수 순으로 변수를 하나씩 추가하는 방법이다. 새로운 변수를 추가했을 때 모델 적합도가 기준치 이상 증가하지 못했을 때 변수선택이 종료되며 빠르다는 장점이 있지만 한번 선택된 변수를 제거하지난 않는다.
· 후진 제거법 : 모든 독립변수가 포함된 상태에서 시작하여 유의미하지 않는 변수 순으로 하나씩 제거하는 방법이다. 어느 한 변수를 제거했을 때 모델 적합도가 기준치 이상 감소한다면 변수선택을 종료한다. 독립변수가 많은 경우에는 학습 초기에 모든 변수를 사용하기 때문에 시간이 오래 걸릴 수 있지만 변수들을 모두 넣고 시작하기 때문에 전진 선택법보다는 안전한 방법이다.
· 단계적 선택법 : 처음에는 전진 선택법과 같이 변수를 하나씩 추가하다가 선택된 변수가 3개 이상이 되면 변수 추가와 제거를 번갈아 가며 수행한다. 단계적 선택법에서는 단순히 종속변수와 상관도가 높은 독립변수를 선택하는 것이 아니라, 선택된 독립변수들로 이루어진 모델의 잔차를 구하여 이와 상관도가 높은 잔차를 가진 변수를 선택한다. 가장 최적의 변수 조합을 찾아낼 수 있는 가능성이 높지만 많은 조합을 비교하기 때문에 시간이 오래 소요된다.

 

Ridge와 Lasso, Elastic Net

Ridge와 Lasso는 변수 계수에 가중치를 주어 예측 정밀도를 높이는 기법이다. 우선 Ridge(혹은 L2 - norm)는 전체 변수를 모두 유지하면서 각 변수의 계수 크기를 조정한다. 종속변수 예측에 영향을 거의 미치지 않는 변수에는 0에 가까운 가중치를 주어 다중공선성을 방지하면서 모델의 설명력을 최대화할 수 있다. 이러한 조정을 계수 정규화라고 한다. Ridge에서는 매개변수 alpha 값을 통해 정규화 수준을 조정한다. alpha값이 0이면 선형회귀와 동일해지고 값이 커질수록 독립변수들의 영향력이 작아져 회귀선이 평균을 지나는 수평선에 가까워진다.
Lasso(혹은 L1 - norm)는 Ridge와 유사하지만 중요한 몇 개의 변수 이외의 변수들에는 계수를 0으로 주어 변수의 영향력을 아예 없앤다. Ridge처럼 alpha값을 통해 정규화의 강도를 조절하며 영향력이 작은 변수를 모델에서 삭제하기 때문에 모델이 단순해지고 해석이 용이하다.

Ridge와 Lasso의 산출 개념

Elastic Net은 Ridge와 Lasso를 결합한 모델이다. Ridge에서는 변환된 계수가 0이 될 수 없지만 Lasso에서는 0이 될 수 있다는 특성을 결합했으며 둘 사이의 혼합비율(r)을 조절하여 최적의 성능을 끌어낼 수 있다. 혼합비율(r)이 0에 가까울수록 Ridge와 같아지며 1에 가까울수록 Lasso와 같아지게 된다. 독립변수들이 이미 잘 정제되어 중요할 것으로 판단되는 변수들로 이루어져 있다면 Ridge 비율을 높이는 것이 좋고 변수 선택 없이 주어진 변수들을 모두 집어넣은 상태라면 Lasso 비율을 높이는 것이 좋다.
 
마지막으로 회귀분석 모델을 평가하는 방법에 대해 알아보겠다. 회귀분석 모델에서는 다음과 같은 결괏값들을 확인할 수 있다.

다중 회귀분석 모형 결과

앞선 표에서 1번은 모델에 대한 유의도, 2번은 모델 설명력, 3번은 수정된 모델 설명력이며 해당 세 결괏값이 중요한 부분이다. 모델에 대한 유의도가 0.05보다 작기 때문에 적어도 한개 이상의 독립변수는 종속변수에 대한 선형 회귀 모형이 존재한다고 판단할 수 있다. 2번의 결정계수(설명력)는 선택된 독립변수들로 종속변수를 얼마나 설명할 수 있는지를 나타내며 0.773의 값은 종속변수를 77.3% 설명한다는 것을 의미한다. 3번 값은 유의도가 낮더라도 독립변수가 많을수록 다중 회귀분석에서 결정계수 값이 커지는 특성을 상쇄하기 위해 사용한다. 이는 기존의 결정계수 값을 변수의 개수로 나눈 것이며 특히 사용된 변수가 많을 때 3번 값을 함께 보고 모델의 설명력을 판단해야 한다.
 
P value와 R - Square 값이 어떤가에 따라 회귀 모델 튜닝 방법은 다음과 같이 달라진다.

P value와 R-Square 값에 따른 모델 튜닝 전략

 

로지스틱 회귀분석 (분류 모델)

로지스틱 회귀분석은 앞의 선형회귀분석과 유사하지만 종속변수가 양적척도가 아니라 질적척도라는 차이가 있다

 

즉, 로지스틱 회귀분석은 특정 수치를 예측하는 것이 아니라, 어떤 카테고리에 들어갈지 분류를 하는 모델이다. 기본 모형은 종속변수가 0과 1이라는 binary으로 이루어져 구매/미구매, 성공/실패 등을 예측한다. 만약 종속변수의 범주가 3개 이상일 경우에는 다항 로지스틱 회귀분석을 통해 분류 예측을 할 수 있다. 로지스틱 회귀는 기존의 선형회귀식의 사상은 그대로 유지하되 종속변수를 1이 될 확률로 변환하여
그 확률에 따라 0과 1의 여부를 예측한다. 이를 위해서 오즈와 로짓 변환에 대한 개념을 짚고 넘어가야 한다.

선형 회귀선과 로짓 회귀선

양의 무한대와 음의 무한대로 뻗어버리기 때문에 S자 곡선의 형태를 갖도록 변환해주어야 한다. Odds는 사건이 발생할 가능성이 발생하지 않을 가능성보다 어느 정도 큰지를 나타내는 값이다.

 

오즈 값 그래프와 로그를 취한 오즈 값 그래프

 
로짓 회귀선으로 변환해주기 위해 오즈 값을 구해야 한다. 오즈 값에 로그를 취한 뒤 로짓 변환하여 0에서 1 사이로 치환해줘야 한다. 이를 시그모이드 함수라고 한다. 로그를 취한 오즈에 시그모이드 함수를 적용한 최종의 로지스틱 회귀식은 다음과 같다.

다항 로지스틱 회귀분석은 종속변수의 모든 범주에 해당하는 확률의 합을 100%로 한다. 이항 로지스틱 식이 K-1개가 필요하다.
선형 회귀분석 모형 결과와 차이가 있다면 각 변수의 오즈비를 알 수 있다는 것이다. 로지스틱 회귀분석도 R^2값이 산출 되는데 알려진 방법만 10가지가 넘는다. 하지만 로지스틱 회귀분석과 같은 분류 모델은 이러한 측정 값보다 Test data set에서 실제로 얼마나 올바르게 분류했는가를 따져서 모델의 성능을 평가하는 것이 좋다.