[SKALA] 데이터 전처리와 상관·회귀분석 정리
결측치, 이상치, 스케일링부터 회귀모델 평가까지
https://daniellee09.tistory.com/50
앞선 글에서는 데이터 분석의 전체 프로세스와 EDA, 기술통계, 확률분포를 살펴보았다.
이번 글에서는 실제 모델링에 들어가기 전에 수행하는 데이터 전처리와 변수 사이의 관계를 분석하는 상관분석, 그리고 설명변수를 이용해 종속변수를 설명하거나 예측하는 회귀분석을 정리한다.
분석 모델의 성능은 알고리즘만으로 결정되지 않는다.

어떤 데이터를 어떤 기준으로 정리하여 모델에 전달했는지가 모델 종류만큼 중요하다.
1. 데이터 전처리란?
현실의 데이터는 처음부터 분석하기 좋은 상태로 수집되지 않는다.
다음과 같은 문제가 흔히 존재한다.
- 값이 누락된 결측치
- 일반적인 범위에서 크게 벗어난 이상치
- 서로 다른 단위와 크기
- 문자열로 저장된 숫자
- 동일한 의미를 가진 서로 다른 표현
- 중복 데이터
- 한쪽으로 크게 치우친 분포
- 알고리즘이 계산할 수 없는 범주형 변수
이러한 데이터를 분석 가능한 형태로 바꾸는 과정을 데이터 전처리라고 한다.
대표적인 전처리 작업은 다음과 같다.
결측치 처리
→ 이상치 처리
→ 데이터 스케일링
→ 분포 변환
→ 연속형 변수 범주화
→ 범주형 변수 수치화
2. 결측치 처리
결측치는 값이 존재하지 않는 데이터를 의미한다.
데이터에서는 다음과 같이 표현될 수 있다.
NA, NaN, Null, Missing
주의할 점은 숫자 0과 결측치는 서로 다르다는 것이다.
예를 들어 구매금액이 0원인 고객은 실제로 구매하지 않은 고객일 수 있지만, 구매금액이 결측인 고객은 값이 수집되지 않았거나 저장 과정에서 누락된 것일 수 있다.
결측치를 처리하지 않으면 일부 계산이나 모델 학습이 불가능할 수 있다.
2.1 결측 행 또는 변수 제거
결측값이 포함된 데이터를 분석에서 제외하는 방법이다.
다만 제거하기 전에 다음을 확인해야 한다.
- 결측 데이터가 전체에서 차지하는 비율
- 결측이 무작위로 발생했는지
- 해당 데이터를 제거해도 비즈니스상 문제가 없는지
- 특정 집단의 데이터가 집중적으로 제거되지는 않는지
결측률이 높은 변수를 제거할 수 있지만, 중요한 정보가 포함된 변수라면 다른 처리 방법을 검토해야 한다.
2.2 대표값으로 대체
결측값을 평균, 중앙값 또는 최빈값으로 대체한다.
연속형 변수 → 평균 또는 중앙값
범주형 변수 → 최빈값
이상값이 많거나 분포가 한쪽으로 치우쳐 있다면 평균보다 중앙값이 안정적일 수 있다.
대표값 대체는 간단하지만, 데이터의 분산을 인위적으로 줄이고 변수 간 관계를 왜곡할 가능성이 있다.
2.3 시계열 데이터 대체
시간 순서가 중요한 데이터에서는 앞이나 뒤의 값을 이용할 수 있다.
- 이전 값으로 대체: Forward Fill
- 다음 값으로 대체: Backward Fill
- 앞뒤 값 사이를 계산: Interpolation
예를 들어 값이 다음과 같다고 하자.
1, NA, NA, 7
선형 보간을 적용하면 3과 5로 대체할 수 있다.
2.4 결측 자체를 정보로 사용
범주형 변수에서는 결측값을 Unknown 또는 Missing이라는 별도의 범주로 만들 수 있다.
결측 발생 자체가 중요한 정보일 수 있기 때문이다.
예를 들어 고객이 소득 정보를 입력하지 않은 행동과 고객 이탈 사이에 관련성이 있을 수 있다.
3. 이상치 처리
이상치는 대부분의 데이터와 비교했을 때 통계적으로 크게 벗어난 값이다.
이상치는 다음 두 가지 가능성을 가진다.
데이터 입력 또는 측정 오류
vs.
실제로 발생한 중요한 사건
예를 들어 고객 나이가 250세라면 오류일 가능성이 높다. 반면 하루 매출이 평소의 열 배인 값은 대형 계약이나 이벤트로 인해 실제로 발생했을 수 있다.
따라서 이상치가 발견되었다고 바로 삭제해서는 안 된다.
3.1 이상치 탐지 방법
분위수 기준
특정 하위 또는 상위 비율을 벗어나는 값을 이상치 후보로 판단한다.
예: 하위 5% 미만 또는 상위 5% 초과
IQR 기준
IQR = Q3 - Q1
하한 = Q1 - 1.5 × IQR
상한 = Q3 + 1.5 × IQR
Z-score 기준
Z = (관측값 - 평균) / 표준편차
일반적으로 절댓값이 3보다 큰 값을 이상치 후보로 볼 수 있다.
업무 규칙 기준
통계 기준이 아닌 업무 지식으로 판단한다.
예를 들어 다음과 같다.
- 온도 센서의 정상 작동 범위
- 제품의 최대 허용 무게
- 고객의 최대 거래 가능 금액
- 설비의 정상 전압 범위
3.2 이상치 처리 방법
이상치를 발견하면 먼저 해당 값이 정상 데이터인지 확인한다.
정상적인 실제 값
→ 유지하거나 별도로 분석
오류 또는 분석 목적과 무관한 값
→ 제거 또는 대체 검토
대체하는 경우 평균이나 중앙값을 사용할 수 있고, 상한과 하한을 정해 경계값으로 변경하는 방법도 있다.
분포가 심하게 치우쳐 있다면 로그 변환과 같은 방법을 사용할 수 있다.
이상치는 분석 결과와 상관계수, 회귀계수 및 모델 성능에 큰 영향을 줄 수 있으므로 업무적 검토가 반드시 필요하다.
4. 데이터 스케일링
데이터 스케일링은 단위나 값의 범위가 서로 다른 변수들을 동일한 기준에서 비교할 수 있도록 변환하는 작업이다.
예를 들어 다음 변수를 함께 사용한다고 생각해 보자.
나이: 20~60
연 소득: 3,000만~수억 원
이동 거리: 0~수백 km
스케일링하지 않으면 값의 크기가 큰 소득 변수가 거리 계산에 과도한 영향을 미칠 수 있다.
특히 다음과 같이 거리나 크기에 민감한 알고리즘에서 중요하다.
- KNN
- K-means
- SVM
- 신경망
- PCA
반면 의사결정나무, Random Forest, XGBoost와 같은 트리 기반 모델은 상대적으로 스케일의 영향을 적게 받는다.
4.1 표준화 Standardization
평균을 0, 표준편차를 1로 변환한다.
Z = (x - 평균) / 표준편차
변환 후 값은 원래 단위가 아니라 평균에서 얼마나 떨어져 있는지를 나타낸다.
표준화는 다음과 같은 경우에 적합하다.
- 데이터의 최소·최대 범위가 정해져 있지 않은 경우
- 변수의 단위를 제거하고 싶은 경우
- 평균과 표준편차를 기준으로 비교하려는 경우
4.2 Min-Max Scaling
데이터를 일반적으로 0부터 1 사이의 값으로 변환한다.
변환값 = (x - 최소값) / (최대값 - 최소값)
최소값은 0, 최대값은 1이 된다.
Min-Max Scaling은 값의 범위를 일정하게 만들 수 있지만 최대값과 최소값을 사용하므로 이상치에 민감하다.
5. 분포 변환
한쪽으로 길게 치우친 데이터는 평균이나 회귀분석 결과에 영향을 줄 수 있다.
특히 소득, 매출, 자산, 거래금액과 같은 변수는 오른쪽 꼬리가 긴 경우가 많다.
이때 로그 변환이나 제곱근 변환을 사용할 수 있다.
로그 변환: log(x)
제곱근 변환: √x
예를 들어 다음 값에 로그 변환을 적용하면 큰 값 사이의 차이가 줄어든다.
| 원래 값 | log10 변환 |
| 10 | 1 |
| 100 | 2 |
| 1,000 | 3 |
분포 변환의 목적은 다음과 같다.
- 지나치게 큰 값의 영향 축소
- 이상치 영향 완화
- 분포의 비대칭 감소
- 선형 관계 강화
- 통계 분석의 가정에 가까운 데이터 생성
단, 변환된 값은 원래 단위와 의미가 달라지므로 결과를 해석할 때 역변환이나 추가 설명이 필요하다.
6. 연속형 변수 범주화
연속적인 숫자를 일정한 구간으로 나누어 범주형 변수로 변환하는 것을 범주화 또는 Binning이라고 한다.
예를 들어 체중을 다음과 같이 구분할 수 있다.
55kg 미만 → 체중 하
55kg 이상 75kg 미만 → 체중 중
75kg 이상 → 체중 상
범주화의 장점은 다음과 같다.
- 변수 해석이 쉬워진다.
- 이상치의 영향을 줄일 수 있다.
- 비선형적인 관계를 단순하게 표현할 수 있다.
- 업무 기준을 모델에 반영할 수 있다.
반면 연속적인 값을 구간으로 바꾸면 정보가 일부 손실된다. 구간 수와 경계값도 분석 결과에 영향을 주므로 업무 기준이나 데이터 분포를 근거로 결정해야 한다.
7. 범주형 변수 수치화
대부분의 통계 모델과 머신러닝 알고리즘은 문자 범주를 직접 계산할 수 없다.
따라서 범주형 변수를 숫자로 변환해야 한다.
7.1 One-Hot Encoding
각 범주를 별도의 0과 1 변수로 만든다.
예를 들어 직업군이 A, B, C라면 다음과 같이 변환할 수 있다.
| 직업군 | 직업군_A | 직업군_B | 직업군_C |
| A | 1 | 0 | 0 |
| B | 0 | 1 | 0 |
| C | 0 | 0 | 1 |
범주 사이에 순서가 없는 명목형 변수에 적합하다.
회귀분석에서는 모든 범주를 사용하면 완전한 다중공선성이 발생할 수 있으므로 범주가 K개라면 하나를 제외한 K-1개의 더미변수를 사용하는 경우가 많다.
7.2 Label Encoding
각 범주에 정수 번호를 부여한다.
1등급 → 1
2등급 → 2
3등급 → 3
등급이나 만족도처럼 범주에 순서가 있을 때 활용할 수 있다.
순서가 없는 지역이나 직업에 임의로 1, 2, 3을 부여하면 모델이 숫자 사이에 크기 관계가 있다고 오해할 수 있으므로 주의해야 한다.
8. 상관분석
상관분석은 두 변수 사이에 선형적인 관계가 있는지를 살펴보는 방법이다.
예를 들면 다음과 같은 관계를 분석할 수 있다.
- 공부 시간과 시험 점수
- 광고비와 매출액
- 운동량과 체지방률
- 주행속도와 이동시간
- 금속 연수와 연봉
두 연속형 변수의 관계는 먼저 산점도로 확인하는 것이 좋다.
산점도
산점도는 각 관측값을 x축과 y축의 점으로 표현한 그래프다.
- x축: 설명변수
- y축: 반응변수
산점도를 통해 관계의 방향과 형태, 이상치를 직관적으로 확인할 수 있다.
하지만 산점도만으로 관계의 강도를 정확한 숫자로 표현하기는 어렵다. 이를 위해 상관계수를 사용한다.
9. 상관계수
상관계수는 두 변수 사이 선형 관계의 방향과 강도를 -1부터 1 사이의 값으로 나타낸다.
| 상관계수 | 의미 |
| 1에 가까움 | 강한 양의 선형관계 |
| 0에 가까움 | 선형관계가 약함 |
| -1에 가까움 | 강한 음의 선형관계 |
양의 상관관계
한 변수가 증가할수록 다른 변수도 증가하는 경향이 있다.
예: 공부 시간과 시험 점수
음의 상관관계
한 변수가 증가할수록 다른 변수는 감소하는 경향이 있다.
예: 주행속도와 이동시간
상관계수가 0인 경우
선형적인 관계가 없다는 의미다.
그러나 비선형 관계까지 없다는 의미는 아니다. U자 형태의 강한 관계가 존재하더라도 상관계수가 0에 가까울 수 있다.
10. 상관계수 해석 시 주의사항
10.1 비선형 관계를 놓칠 수 있다
상관계수는 기본적으로 선형 관계를 측정한다.
따라서 숫자만 확인하지 말고 반드시 산점도를 함께 확인해야 한다.
10.2 이상값에 민감하다
하나의 극단적인 값만으로도 상관계수가 크게 달라질 수 있다.
예를 들어 키와 몸무게의 관계에서 잘못 입력된 하나의 값이 존재하면 상관계수가 낮아지거나 반대로 높아질 수 있다.
10.3 제3의 변수가 존재할 수 있다
두 변수 사이의 상관관계가 실제로는 다른 변수 때문에 나타날 수 있다.
예를 들어 연봉과 허리둘레 사이에 양의 상관관계가 나타났다고 하자.
이 관계는 나이라는 제3의 변수 때문에 발생했을 가능성이 있다.
나이 증가 → 연봉 증가
나이 증가 → 허리둘레 증가
나이의 영향을 통제하면 연봉과 허리둘레의 관계가 약해질 수 있다.
10.4 상관관계는 인과관계가 아니다
상관관계는 두 변수가 함께 변하는 경향을 의미할 뿐, 한 변수가 다른 변수의 원인이라는 것을 증명하지 않는다.
유명한 예로 아이스크림 판매량과 익사 사고 건수가 함께 증가할 수 있다. 하지만 아이스크림이 익사 사고를 발생시키는 것은 아니다.
두 변수 모두 여름철 높은 기온의 영향을 받은 것이다.
인과관계를 주장하려면 시간적 선후관계, 다른 원인의 통제, 실험이나 인과추론 과정이 추가로 필요하다.
11. 회귀분석이란?
회귀분석은 설명변수와 종속변수 사이의 관계를 수식으로 표현하는 통계 기법이다.
대표적인 선형회귀식은 다음과 같다.
Y = aX + b + ε
- Y: 종속변수
- X: 독립변수
- a: 회귀계수
- b: 절편
- ε: 모델로 설명하지 못한 오차
회귀분석은 크게 두 가지 목적으로 활용한다.
추론 Inference
어떤 변수가 결과에 영향을 미치는지 분석한다.
예를 들어 쿠폰 배포 수가 구매 고객 수에 유의한 영향을 주는지 확인한다.
예측 Prediction
새로운 X가 주어졌을 때 Y 값을 예측한다.
예를 들어 쿠폰을 3,000장 배포하면 구매 고객이 몇 명이 될지를 계산한다.
12. 상관분석과 회귀분석의 차이
두 분석은 모두 변수 간 관계를 다루지만 목적이 다르다.
| 구분 | 상관분석 | 회귀분석 |
| 목적 | 관계의 방향과 강도 확인 | 영향력 설명 및 값 예측 |
| 변수 역할 | 두 변수를 대등하게 취급 | X와 Y의 역할 구분 |
| 결과 | 상관계수 | 회귀식과 회귀계수 |
| 예측 | 직접적인 예측은 어려움 | 새로운 데이터 예측 가능 |
일반적으로 회귀분석 전에 상관분석을 수행하여 설명변수와 종속변수의 관계, 설명변수들 사이의 높은 상관관계를 확인할 수 있다.
13. 회귀분석의 종류
종속변수의 형태와 독립변수 개수에 따라 회귀분석의 종류가 달라진다.
종속변수가 연속형인 경우
단순 선형회귀
독립변수가 하나인 경우다.
Y = a + bX + ε
다중 선형회귀
독립변수가 두 개 이상인 경우다.
Y = a + b₁X₁ + b₂X₂ + ... + bₙXₙ + ε
종속변수가 범주형인 경우
결과가 예·아니오처럼 두 가지라면 이항 로지스틱 회귀를 사용할 수 있다.
결과 범주가 세 가지 이상이라면 다항 로지스틱 회귀를 사용할 수 있다.
예를 들면 다음과 같다.
대출 여부: Y/N
고객 이탈 여부: 이탈/유지
대출 상태: 거절/보류/승인
14. 최소제곱법과 잔차
회귀분석은 관측값을 가장 잘 설명하는 회귀선을 찾는 과정이다.
실제 관측값과 회귀선이 예측한 값의 차이를 잔차라고 한다.
잔차 = 관측값 - 예측값
각 잔차를 그대로 더하면 양수와 음수가 상쇄될 수 있다. 따라서 잔차를 제곱하여 합한다.
잔차제곱합 = Σ(관측값 - 예측값)²
잔차제곱합이 가장 작아지는 회귀계수와 절편을 찾는 방법이 최소제곱법이다.
즉, 좋은 회귀선은 모든 점을 정확히 통과하는 선이 아니라 전체 관측값과의 제곱 오차가 가장 작은 선이다.
15. 회귀모형의 유의성 검정
회귀모형을 만들었다고 해서 모든 결과를 바로 사용할 수 있는 것은 아니다.
먼저 회귀모형 전체가 통계적으로 의미 있는지 확인한다.
F 검정
모든 독립변수의 회귀계수가 동시에 0이라는 가설을 검정한다.
일반적으로 유의확률이 0.05보다 작으면 회귀모형 전체가 통계적으로 유의하다고 판단한다.
개별 회귀계수의 p-value
각 독립변수가 다른 변수를 통제한 상태에서도 종속변수에 유의한 영향을 주는지 확인한다.
일반적인 해석은 다음과 같다.
p-value < 0.05
→ 해당 변수의 회귀계수가 통계적으로 유의
p-value ≥ 0.05
→ 해당 변수의 영향이 뚜렷하다고 보기 어려움
다만 0.05는 절대적인 법칙이 아니라 연구나 업무에서 정한 유의수준이다.
통계적으로 유의하더라도 효과의 크기가 매우 작으면 실무적으로 중요하지 않을 수 있고, 반대로 데이터가 적으면 중요한 변수도 유의하지 않게 나타날 수 있다.
16. 결정계수와 조정된 결정계수
결정계수 R²
회귀모형이 종속변수의 변동을 얼마나 설명하는지를 나타낸다.
보통 0에서 1 사이의 값을 가지며 1에 가까울수록 설명력이 높다.
예를 들어 R²가 0.73이라면 모델이 종속변수 변동의 약 73%를 설명한다고 해석할 수 있다.
그러나 독립변수를 추가하면 유용하지 않은 변수라도 R²가 감소하지 않는다는 문제가 있다.
조정된 결정계수 Adjusted R²
독립변수 개수에 대한 페널티를 적용한 결정계수다.
유용하지 않은 변수를 추가하면 조정된 결정계수는 오히려 낮아질 수 있다.
따라서 여러 개의 독립변수를 사용하는 다중회귀에서는 R²와 함께 조정된 R²를 확인하는 것이 좋다.
17. 회귀모델의 오차 평가 지표
회귀모델의 예측 성능은 실제값과 예측값의 차이로 평가한다.
MAE
평균절대오차다.
MAE = |실제값 - 예측값|의 평균
해석이 쉽고 이상값의 영향을 MSE보다 적게 받는다.
MSE
평균제곱오차다.
MSE = (실제값 - 예측값)²의 평균
큰 오차에 더 큰 패널티를 준다.
RMSE
MSE에 제곱근을 적용한 값이다.
RMSE = √MSE
원래 종속변수와 같은 단위로 해석할 수 있다.
MAPE
평균절대백분율오차다.
MAPE = |실제값 - 예측값| / 실제값의 평균
오차를 비율로 표현하므로 서로 다른 규모의 모델을 비교하기 쉽다.
다만 실제값이 0이거나 매우 작은 경우 계산이 불안정해질 수 있다.
일반적으로 MAE, MSE, RMSE, MAPE는 0에 가까울수록 예측 오차가 작다.
18. 회귀분석 결과 해석 예시
다음과 같은 회귀식이 있다고 가정해 보자.
구매고객 수
= 0.108 × 쿠폰배포매수 + 282.892
회귀계수 0.108은 쿠폰 배포 수가 한 장 증가할 때 구매 고객 수가 평균적으로 0.108명 증가한다는 의미다.
쿠폰을 10장 추가 배포하면 예상 구매 고객 수는 약 1.08명 증가한다.
쿠폰을 3,000장 배포하면 다음과 같이 계산할 수 있다.
0.108 × 3,000 + 282.892
= 606.892
따라서 약 607명의 구매 고객을 예상할 수 있다.
단, 이 해석은 다음 조건을 전제로 한다.
- 분석에 사용된 데이터 범위 안에서 예측한다.
- 다른 조건은 일정하다고 가정한다.
- 회귀모형과 회귀계수가 유의하다.
- 회귀분석의 기본 가정이 크게 위반되지 않는다.
자료의 예시에서는 판매가격보다 쿠폰 배포 수가 구매 고객 수를 설명하는 유의한 변수로 나타나며, 유의하지 않은 변수를 제거한 뒤 최종 회귀식을 다시 구성하는 흐름을 보여준다.
19. 회귀분석의 기본 가정
회귀계수와 유의성 검정 결과를 신뢰하려면 몇 가지 가정을 확인해야 한다.
19.1 선형성
독립변수와 종속변수의 관계가 선형적인 형태인지 확인한다.
산점도에서 U자나 역 U자 형태가 보이면 단순 선형회귀가 관계를 충분히 설명하지 못할 수 있다.
이 경우 변수 변환, 다항항 추가 또는 비선형 모델을 검토할 수 있다.
19.2 독립성과 다중공선성
각 관측치의 오차는 서로 독립적이어야 한다.
또한 설명변수 사이의 상관관계가 지나치게 높으면 다중공선성이 발생할 수 있다.
다중공선성이 심하면 다음 문제가 나타난다.
- 회귀계수가 불안정해진다.
- 계수의 부호가 예상과 다르게 나타날 수 있다.
- 개별 변수의 영향력을 구분하기 어려워진다.
- 데이터가 조금만 달라져도 결과가 크게 변한다.
해결 방법으로는 유사한 변수 중 하나를 제거하거나 PCA와 같은 차원 축소 방법을 사용할 수 있다.
19.3 등분산성
독립변수 값과 관계없이 잔차의 분산이 일정해야 한다.
예측값이 커질수록 잔차가 부채꼴처럼 커진다면 이분산성이 존재할 수 있다.
로그 변환이나 강건한 표준오차 등을 검토할 수 있다.
19.4 잔차의 정규성
유의성 검정과 신뢰구간을 정확하게 해석하기 위해 잔차가 정규분포에 가까운지 확인한다.
히스토그램이나 Q-Q Plot 등을 활용할 수 있다.
이 네 가지 가정은 회귀분석을 수행하기 위한 절대적인 허가 조건이라기보다 결과의 신뢰성을 점검하기 위한 기준이다.
20. 학습·검증·테스트 데이터 분리
머신러닝 모델의 성능을 제대로 평가하려면 모델이 학습할 때 보지 않은 데이터가 필요하다.
Train Set
모델의 파라미터를 학습하는 데이터다.
Validation Set
하이퍼파라미터를 선택하고 후보 모델을 비교하는 데이터다.
Test Set
모든 학습과 모델 선택이 끝난 뒤 최종 성능을 평가하는 데이터다.
예를 들어 전체 데이터를 다음과 같이 나눌 수 있다.
Train : Validation : Test = 6 : 2 : 2
또는 검증 세트를 별도로 사용하지 않는 경우 학습과 테스트를 8:2 또는 7:3으로 나누기도 한다.
테스트 데이터를 반복적으로 확인하며 모델을 수정하면 테스트 데이터의 정보가 모델 개발에 간접적으로 반영된다. 그러면 실제 새로운 데이터에서의 성능을 과대평가할 수 있다.
21. Baseline 모델과 Naive 모델
모델의 평가 지표가 좋아 보이더라도 비교 기준이 없으면 그 성능이 실제로 좋은지 판단하기 어렵다.
Baseline 모델
개발한 모델의 성능을 비교하기 위한 기준 모델이다.
예를 들면 다음과 같다.
- 기존 운영 모델
- 단순 선형회귀 모델
- 업무 규칙 기반 모델
- 가장 단순한 머신러닝 모델
- Naive 모델
Naive 모델
학습 없이 가장 단순한 규칙으로 예측하는 모델이다.
회귀 문제에서는 평균이나 직전 값을 예측할 수 있다.
내일 매출 = 과거 평균 매출
또는
내일 매출 = 오늘 매출
분류 문제에서는 가장 많이 등장한 범주를 예측할 수 있다.
새로운 모델은 최소한 이러한 단순 기준보다 나은 성능을 보여야 실제 개발 가치가 있다고 판단할 수 있다.
22. 전체 모델 개발 흐름
데이터 분석과 모델 개발의 전체 흐름은 다음과 같이 정리할 수 있다.
1. 분석 문제 정의
2. 비즈니스와 데이터 이해
3. 분석 단위 및 Target 정의
4. 데이터 수집
5. EDA와 데이터 품질 확인
6. 결측치·이상치 처리
7. 변수 변환과 파생변수 생성
8. 상관분석 및 변수 선택
9. 학습·검증·테스트 데이터 분리
10. 모델 학습과 튜닝
11. 통계적 유의성과 예측 성능 평가
12. Baseline 모델과 비교
13. 결과 해석
14. 시스템 배포 및 유지보수
중요한 점은 모든 데이터를 무조건 동일한 전처리 과정에 통과시키는 것이 아니다.
범주형 변수와 연속형 변수의 특성이 다르고, 분석 목적과 모델 종류에 따라서도 필요한 전처리가 달라진다.
23. 실무 체크리스트
데이터 준비
- 한 행의 분석 단위가 명확한가?
- Target의 정의가 실제 업무 목적과 일치하는가?
- 결측치가 발생한 원인을 확인했는가?
- 이상치를 오류와 실제 사건으로 구분했는가?
- 학습 데이터와 테스트 데이터에 동일한 전처리를 적용했는가?
- 테스트 데이터의 정보를 학습 과정에서 사용하지 않았는가?
상관분석
- 상관계수와 함께 산점도를 확인했는가?
- 비선형 관계 가능성을 검토했는가?
- 이상값이 결과를 왜곡하지 않는가?
- 제3의 변수가 관계를 만든 것은 아닌가?
- 상관관계를 인과관계로 해석하고 있지 않은가?
회귀분석
- 회귀모형 전체가 유의한가?
- 각 회귀계수의 p-value는 어떠한가?
- 회귀계수의 방향과 크기가 업무적으로 타당한가?
- 조정된 결정계수는 충분한가?
- MAE, RMSE, MAPE 등 예측 오차는 어떠한가?
- 선형성, 독립성, 등분산성, 정규성을 확인했는가?
- Baseline 모델보다 성능이 개선되었는가?
24. 핵심 정리
이번 글의 핵심은 다음과 같다.
- 데이터 전처리는 모델링을 위한 부수 작업이 아니라 분석 품질을 결정하는 핵심 과정이다.
- 결측치는 단순 제거보다 발생 원인과 비율을 먼저 확인해야 한다.
- 이상치는 오류일 수도 있지만 중요한 비즈니스 사건일 수도 있다.
- 거리 기반 모델에서는 변수의 단위를 맞추기 위한 스케일링이 중요하다.
- 상관계수는 선형 관계만 측정하며 인과관계를 의미하지 않는다.
- 회귀분석은 변수 간 영향력을 설명하고 미래 값을 예측할 수 있다.
- 회귀모델은 R²만 보지 말고 유의성, 오차 지표와 기본 가정을 함께 확인해야 한다.
- 모델의 절대적인 성능보다 Baseline 모델보다 얼마나 개선되었는지가 중요하다.
복습 질문
- 결측값을 평균으로 대체하면 데이터의 분산에는 어떤 영향이 발생하는가?
- IQR 기준을 벗어난 값이라고 반드시 제거하면 안 되는 이유는 무엇인가?
- 표준화와 Min-Max Scaling의 차이는 무엇인가?
- 상관계수가 0이면 두 변수 사이에 아무 관계도 없다고 할 수 있는가?
- 회귀계수의 p-value와 조정된 결정계수는 각각 무엇을 의미하는가?
- 테스트 데이터를 모델 튜닝에 반복적으로 사용하면 어떤 문제가 발생하는가?
- 개발한 모델을 Naive 모델과 비교해야 하는 이유는 무엇인가?