2025. 12. 10. 19:54ㆍTIL
1. 상관관계와 상관계수
1) 상관관계 (Correlation)

두 연속형 변수 사이에 함께 증가/감소하는 패턴이 있는지를 수치로 표현한 것
상관관계는 -1 <= X <= 1 범위의 값을 가지며, -1이나 1에 가까울수록 강한 상관관계가 있고, 0에 가까울수록 두 변수는 상관관계가 없다.
주의점 : 상관관계는 인과관계가 아니다.
산점도 (scatter plot)나 상관행렬 히트맵(correlation heatmap) 등으로 시각화해 연속형 변수들 간의 상관관계를 간단히 파악할 수 있다.
2) 상관계수 (correlation coefficient)
두 연속형 변수 사이의 관계를 숫자 하나로 나타낸 값
3) 피어슨 상관계수 (Pearson's correlation coefficient)

공분산을 표준화한 값으로, 두 변수의 선형 관계를 -1 ~ 1 사이 숫자로 표현
- 공분산 (covariance)
- 두 변수가 함께 움직이는 정도
- 두 변수가 동시에 평균보다 크거나 작으면 (+) 값을 가지고, 하나는 평균보다 크고, 하나는 평균보다 작으면 (-) 값을 가진다. 그리고 두 변수의 관계가 무작위에 가까울수로 0에 가까워진다.
- 공분산은 값의 크기에 따라 커질 수 있기 때문에, 표준편차로 나누어 단위의 영향을 제거한다.
피어슨 상관계수는 두 변수의 선형 관계가 강한지 약한지만 확인할 수 있다.
이상치에 민감하고, 비선형 관계는 파악할 수 없다는 한계가 있다.
4) 스피어만 순위상관계수 (Spearman's rank correlation coefficient, p)

두 변수의 값보다는, 순서(순위)가 비슷하게 움직이는지를 보는 상관계수
- 단조 관계
- X가 증가하면 Y도 전체적으로 증가 (혹은 감소)하는 방향성이 중요한 패턴
전체적인 방향이 한 쪽이면 p는 높게 나올 수 있다.
순위로 상관관계를 파악하면 비선형 관계를 잘 잡을 수 있고, 이상치의 영향을 적게 받는다.
※ 데이터의 간격을 무시하고 순위로만 따지기 때문에, 비선형 관계도 X의 순위에 따른 Y의 순위 변화 패턴만 일정하다면 상관관계가 높다고 계산한다. 피어슨 상관계수는 정확한 비율을 따지기 때문에, 관계가 비선형인 경우 선형관계가 약하다고 인식할 수 있다.
5) 상관계수를 사용하는 이유
두 변수 간 관계의 방향성과 그 강도를 빠르게 이해하기 위한 기본적인 도구
Y에 영향을 줄 수 있는 요인 X를 빠르게 탐색 가능 (X가 총 몇 개이고, 각 X별로 영향의 정도는 어떻게 되는지?)
다중공선성 (multicollinearity) 확인 : 독립변수들 간에 강한 상관관계가 있는지 확인
6) 상관계수의 한계
- 상관계수는 인과관계가 아니다. (공통으로 영향을 주는 다른 요인이 있는지 확인해야 한다.)
- 2개의 변수끼리만 비교할 수 있다.
- 경향성만 확인할 수 있고, 실제로 X의 변화에 따라 Y가 얼마나 변화하는지는 알 수 없다. ➡️ 회귀를 사용해야 함
2. 회귀 (Regression)

y = f(x)의 함수를 통해 X가 변할 때 Y가 어떻게 변하는지 수식으로 모델링하는 방법
회귀의 종류에 따라 f(x)는 1차식일 수도 있고, 다항식, 지수, 로그 등 다양한 형태가 가능하다.
중요한 것은 데이터를 수식으로 모델링하는 것이다.
y = ax + b + ε
- x : 독립변수
- y : 종속변수
- a : 기울기
- b : 절편
- ε : 오차항 (변수의 누락, 측정 오차, 본질적인 무작위성 등 회귀모델이 설명할 수 없는 오차들)
이때 회귀식의 형태를 결정하는 a, b를 회귀계수 (regression coefficient)라고 한다.
1) 선형회귀 (Linear Regression)

X가 변할 때 Y가 일정 비율(직선)로 변한다고 가정하는 모델
| 선형회귀의 가정 | |
| 선형성 | X와 Y의 관계가 직선으로 표현되어야 한다 |
| 등분산성 | 모든 X값에서 잔차의 분산이 일정해야 한다. (X값이 커짐에 따라 잔차가 커지면 안 된다) |
| 오차의 독립성 | 잔차(오차)들끼리 서로 영향이 없어야 한다. (자기상관이 없어야 한다) |
| 오차의 정규성 | 오차가 정규분포를 따른다 (잔차들의 분포는 정규분포를 따라야 한다) |
- 자기상관 (Autocorrelation)
- 하나의 Y값이 다른 Y값에 영향을 주는 것
- 특히 시간별 변화를 보는 시계열 데이터에서 주로 발생한다.
- 자기상관이 있는 경우, Y값의 독립성이 없기 때문에 실제 의미가 있는 데이터 개수는 원래 데이터 개수보다 매우 작아진다.
- 선형회귀에서 기울기가 얼마나 믿을만 한지 나타내는 표준오차 공식의 분모에는 n이 들어가는데, 실제로 자기상관이 있다면 유효한 n은 적어져야 하나, 이를 반영하지 않으면 n이 커지게 되고, 표준오차가 과소추정되어 p-value가 과소추정된다. 따라서 실제로는 유의성이 없음에도 있다고 오류가 발생할 수 있다. (overconfidence)
- 따라서 시계열 데이터는 자기상관을 방지하기 위해 일반 선형회귀가 아닌, ARIMA 같은 시계열 전용 모델을 사용해야 한다.
2) 단순선형회귀 (Simple Linear Regression)
\( \hat{y}=\beta_{0}+\beta_{1}x\)
하나의 독립변수만 사용해 종속변수를 설명하는 선형회귀모델
- 잔차 (residual)
- \(y-\hat{y}\). 실제값과 예측값의 차이로, 모델이 틀린 정도
잔차는 +일 수도, -일 수도 있으므로, 잔차제곱합(residual sum of squares, RSS)을 최소로 하는 것을 목표로 하는데, 이러한 계산을 통해 선형회귀모델을 만드는 방법을 최소제곱법(ordinary least square, OLS)이라고 한다.
3) 다중선형회귀 (Multiple Linear Regression)
현실에서는 하나의 종속변수 y에 대해 영향을 주는 독립변수 x가 여러 개이므로, 동시에 이들을 고려해야 한다.
\( \hat{y}=\beta_{0}+\beta_{1}x_{1}+\beta_{2}x_{2}+\cdots \beta_{p}x_{p}\)
\(\beta_{i}\) : 다른 변수들을 고정했을 때, \(x_{i}\)의 변화에 따른 \(\hat{y}\)의 변화량
- 과적합(overfitting)
- 모델을 만들 때 학습된 데이터에만 지나치게 적합한 모델을 만드는 경우, 과적합 문제가 발생할 수 있다.
- 변수를 너무 많이 넣거나, 회귀식을 너무 복잡하게 만들거나, 데이터의 양이 적은 경우 발생할 수 있다.
- 과적합을 방지하기 위해 필요한 변수만 남기고(feature selection), 다중공선성이 있는 변수들을 제거하는 것이 좋다.
- VIF(Variance Inflation Factor) 계산
- 다중공선성을 진단하는 방법
- \(VIF_{j}=\sqrt{\frac{1}{1-{R_{j}^2}}}\)
- \(R_{j}^2 \) : \(x_{j}\)를 나머지 변수들로 회귀했을 때의 결정계수
- 해당 변수가 다른 변수들과 얼마나 중복되는지 평가하는 지표이며, 일반적으로 VIF가 10 이상인 경우 다중공선성이 크다고 판단한다.
회귀모델은 데이터를 정확히 설명해야 하지만, 모든 오차를 다 제거할 수 없다는 것을 항상 유의해야 한다.
4) 회귀모델의 평가
잔차제곱합 RSS는 회귀식이 틀린 정도를 나타내지만, 단위와 표본크기에 따라 값이 커지거나 작아질 수 있어, RSS의 절대적인 값만으로는 회귀모델을 정확히 평가할 수 없다.
결정계수 (R^2)
- 모델이 해당 데이터를 얼마나 잘 설명하는지를 평가
- 결정계수가 1에 가까울수록 회귀선이 데이터에 잘 붙어있다는 뜻
- \(R^{2}=1-\frac{RSS}{TSS}\)
- TSS : 전체 변동성. 원래 y값이 얼마나 퍼져 있었는지의 정도
- 결정계수가 높다고 무조건 좋은 것은 아니다.
- 결정계수가 높아도 비선형 관계나 이상치가 많으면 예측 성능이 떨어질 수 있으며, 회귀모델에 적용하는 변수가 많아지면 결정계수는 무조건 증가하기 때문에, 변수 개수와 표본 크기를 고려한 수정된 결정계수를 사용할 수도 있다.
F-검정(F-statistics)
- 회귀모델의 통계적 유의성 평가
t-검정(t-statistics)
- 독립변수 X가 정말로 Y에 영향을 미치는지, 즉 실제로는 회귀계수가 0인데 0이 아니라고 우연히 결과가 나올 확률이 어느 정도인지 평가.
- F-검정과 t-검정 모두 p-value가 결과로 나오고 이를 바탕으로 회귀모델의 통계적 유의성을 검정한다.
RMSE(Root Mean Squared Error)
- 평균적으로 실제값과 예측겂이 얼마나 차이가 있는지 평가
잔차표준오차 (Residual Standard Error, RSE)
- 평균적으로 예측이 얼마나 빗나갔는지 보여주는 값
- 잔차의 평균 크기를 표준화해서 보여준다.
3. 분류 (Classification)
데이터가 어떤 범주 (category)에 속하는지 예측하는 것
예측값이 이산적으며, 연속적인 수치 예측과는 차이가 있다.
변수(X1, X2, ... Xp) ➡️ 결과 (구매/비구매), (성공/실패), (A/B/C) 등등
즉 데이터를 통해 특정 값이 어떤 범주로 들어가야 하는지 판단하는 것
분류는 결과값이 연속적이지 않은 비선형 형태이기 때문에, 선형회귀로는 해결할 수 없다.
1) 오즈와 오즈비, 로짓 함수
오즈(odds)
- 성공이 실패보다 몇 배 많은지 보여주는 값
- 성공 확률 = 0.8 ➡️ odds = 0.8/(1-0.8) = 4
오즈비(odds ratio)
- 두 범주(그룹)의 odds를 비교한 값
- A그룹의 클릭률 = 0.75 ➡️ A그룹의 odds = 3
- B그룹의 클릭률 = 0.3 ➡️ B그룹의 odds = 약 0.429
- 두 그룹의 odds ratio = 3/0.429 = 약 7
- 즉 A그룹의 odds가 B그룹의 odds보다 약 7배 높다.
- 확률은 덧셈적 차이를 보여주고, odds는 곱셈적 차이를 비교하기 때문에, 실제 성공 가능성의 차이를 더 크게 보여준다.
로짓 함수(logit function)
- odds에 로그를 씌운 형태
- \(logit(p)=log(\frac{p}{1-p})\)
- odds는 곱셈적 특징이 있어 변화량이 비선형적이지만, 로그를 씌워주면 선형적인 구조로 만들 수 있다.
2) 로지스틱 회귀(Logistic Regression)

확률을 예측하고 odds ratio를 통해 X가 증가하면 성공 가능성이 몇 배로 증가하는지 설명하는 모델
즉, X가 주어졌을 때 y=1일 확률을 예측하는 것
\(log(\frac{p}{1-p})=\beta_{0}+\beta_{1}x_{1}+\beta_{2}x_{2}+\cdots +\beta_{p}x_{p}\)
우리에게 중요한 것은 p이기 때문에, p에 관한 식으로 다시 정리하면,
\(\hat{p}=\frac{1}{1+e^{(\beta_{0}+\beta_{1}x_{1}+\beta_{2}x_{2}+\cdots +\beta_{p}x_{p})}}\)
이를 시그모이드(sigmoid) 함수라고 하며, 무한히 0과 1에 가까워지지만 그 값이 0과 1이 되지는 않는 함수이다.
이때 p의 임계값(threshold)을 설정해, 임계값보다 크거나 같으면 1, 작으면 0으로 분류한다.
3) 로지스틱 회귀모델 평가 지표
혼동행렬 (Confusion Matrix)
예측값과 실제값을 비교해 정답/오답 4가지로 분류한 표

- 정확도(Accuracy) : 전체 예측 중 맞춘 비율 \(\frac{TP+TN}{TP+TN+FN+FP}\)
- 정밀도(Presicion) : 예측한 것 중 맞춘 비율 \(frac{TP}{TP+FP}\)
- 재현율(Recall) 또는 민감도(Sensitivity) : 실제 있는 것 중 맞춘 비율 \(frac{TP}{TP+FN}\)
- F1-score : 정밀도와 재현율의 조화 평균
- ROC Curve : 다양한 임계점에서의 모델 성능 시각
재현율(Recall)이 중요한 경우
암 진단: 정상인을 암 환자로 오진(FP)해서 재검사하는 건 귀찮은 일 정도지만, 암 환자를 정상으로 오진(FN)해서 집에 보내면 사람이 죽는다. 무조건 많이 잡아내는 게 중요하다.
정밀도(Precision)가 중요한 경우:
스팸 메일 필터: 스팸을 못 걸러내서(FN) 메일함에 들어오는 건 좀 귀찮은 정도지만, 중요한 업무 메일을 스팸으로 착각해서(FP) 삭제해버리면 큰일이 난다. 확실한 것만 잡는 게 중요하다.
'TIL' 카테고리의 다른 글
| 251212_BootCamp Day 40_분류분석 (0) | 2025.12.12 |
|---|---|
| 251211_BootCamp Day 39_선형회귀 (0) | 2025.12.11 |
| 251209_BootCamp Day 37_기초 통계학 (1) (2) | 2025.12.09 |
| 251208_BootCamp Day 36_표준화와 정규화 (0) | 2025.12.08 |
| 251205_BootCamp Day 35_주간 회고 (1) | 2025.12.05 |