CS/기계학습

[기계학습] Regression

dbwls-log 2025. 5. 29. 12:17

Regression: 회귀

Regreesion in ML

Causal Relationship vs Correlation

✔️ 인과 관계 vs 상관관계

인과 관계

✔️ 어떤 현상이 다른 현상을 직접적으로 유발하는 관계
ex) 운동 시간과 체중 감소의 관계

상관관계

✔️ 두 현상이 단순히 함께 변하지만, 원인-결과 관계는 없는 경우
ex) 얼음 판매량과 에어컨 판매량

Covariance

✔️ 공분산
✔️ 두 변수 x와 y 사이의 방향 관계를 보여주는 통계 지표

정의

✔️ Cov(X,Y)>0 : x와 y는 같은 방향으로 움직이는 경향이 있음
✔️ Cov(X,Y)=0 : x와 y는 관련이 없음
✔️ Cov(X,Y)<0 : x와 y는 다른 방향으로 움직이는 경향이 있음

주의점

✔️ 공분산은 방향만 알려주고 얼마나 강한지(강도)에 대해서는 알 수 없음
✔️ 그래서 이를 정규화한 값인 correltion coefficient(상관 계수)를 함께 사용함

Correlation coefficient

✔️ 상관계수

정의

✔️ 두 변수 X와 Y의 상관 정도(얼마나 강하게 함께 움직이는가)를 수치로 나타냄

해석

✔️ 크기(magnitude): 상관의 정도
✔️ 부호(sign): 상관의 방향(양의 방향/음의 방향)

예시 해석

✔️ Corr(X,Y)>0: x와 y는 양의 상관관계 -> 함께 올라가거나 함께 내려감
✔️ Corr(X,Y)<0: 음의 상관관계 -> 한쪽이 오르면 한쪽은 내려감
✔️ Corr(X,Y)=0: 서로 관련 없음

Regression

✔️ 회귀

회귀란?

✔️ 통계 기법 중 하나로, 하나 이상의 독립 변수와 종속 변수 사이의 인과 관계를 분석하기 위해 사용됨
✔️ 실제 관측된 데이터를 이용하여 수학적인 모델을 세우고, 그 모델의 파라미터를 추정하는 통계 방법

회귀의 목적

✔️ 독립 변수의 변화가 종속 변수에 어떤 영향을 미치는지 정량적으로 모델링하는 것
✔️ 결과를 예측하거나, 트렌드를 분석하거나, 변수들 간의 관계를 이해하는데 자주 쓰임
✔️ 독립 변수와 종속 변수 간의 관계를 파악
✔️ 독립 변수의 값을 통하여 종속 변수 예측
✔️ 회귀 분석이 실제 적용 가능한지 타당성 검토
✔️ 회귀 분석을 통해 얻은 예측이 통계적으로 유의미한지 검증

추가 설명

✔️ 회귀는 y=ax+b 같은 방정식 형태의 모델을 만든 뒤, 관측된 데이터를 바탕으로 a와 b의 값을 추정하는 과정

회귀 분석의 전제 조건

✔️ 회귀 분석이 정상적이고 신뢰할 수 있는 결과를 내기 위해서는 몇 가지 전제 조건을 만족해야 함

선형성 : Linearity

✔️ 독립 변수와 종속 변수 간에는 선형적인 관계가 있어야 함
✔️ 즉, 직선으로 모델링 가능한 관계여야 함
✔️ 독립변수가 증가하면, 종속 변수로 비례적으로 변화해야 함

정규성 : Normality

✔️ 데이터가 정규분포를 따른다고 가정함
✔️ 중앙(평균) 근처에 값들이 많이 모여있고, 멀어질수록 점점 드물어지는 종 모양 곡선의 형태
✔️ 이건 주로 오차(Residuals)가 정규분포를 따라야한다는 것을 의미

오차항: Error Terms

✔️ 실제값과 예측값의 차이
✔️ 이 오차항들도 일정한 성질을 가져야 회귀가 타당하다고 봄

오차항 조건

✔️ 평균이 0이어야 함
✔️ 정규분포를 따라야 함
✔️ 분산이 일정해야 함(등분산성: Homoskedasticity)
✔️ 즉, 데이터가 커지거나 작아져도 오차의 크기가 일정해야 함
✔️ 오차가 갑자기 커지거나 줄어들면 회귀모델이 잘못된 것일 수 있음

독립성 : Independence of Error Terms

✔️ 오차항끼리는 서로 독립적이어야 함
✔️ 예측값이 커질수록 오차도 커지면 안됨 (뭐가 잘못된거임)
✔️ 오차들 사이에 어떤 패턴을 가지고 있어도 안됨
-> 오차가 규칙을 가지면 우연이 아니라 모델이 뭔가를 놓치고 있는 것

Single Regression vs multiple Regression

변수

a: y절편
b: 기울기 (x의 계수)
e: 오차항 (예측이 빗나간 정도)

Single Regression

✔️ 단순 회귀
✔️ 독립변수가 1개
✔️ 데이터가 있을 때, 어떤 직선을 그어야 데이터를 가장 잘 설명할 수 있을까?

Multiple Regression

✔️ 다중 회귀
✔️ 독립 변수가 2개 이상

e(error terms) : 오차항

✔️ 독립 변수가 아닌 다른 변수들이 종속 변수에 미치는 영향
✔️ 모델이 설명하지 못함

Normality Test

✔️ 데이터가 정규분포를 따른다는 가정이 맞는지 검증하는 테스트

가설 : Hypothesis

✔️ H0 : Null Hypothesis
귀무가설 : 데이터는 정규분포를 따름

✔️ H1 : Alternative Hypothesis
대립가설: 데이터는 정규분포를 따르지 않음

✔️ 회귀분석을 위해서는 H0이 기각되지 않아야 함
✔️ 즉, 데이터가 정규분포를 따른다는 가정이 유지되어야 함

Statistical Criteria

✔️ 통계 기준
📌 유의수준 5% 기준 (a=0.05)
✔️ p-value>0.05 : H0 채택(정규분포 따름)
✔️ p-value<=0.05 : H1 채택(정규분포 따르지 않음)
-> 너무 낮은 확률로 나온 결과는 우연이라고 보기 힘들기 때문에 지금 관측된 결과는 진짜 효과가 있음을 나타냄

📍 p-value란
✔️ 귀무가설이 맞다고 가장 했을 때, 지금과 같은 결과가 나올 확률
✔️ a는 1종 오류 허용 수준
-> 실제로는 정규분포인데 실수로 아니다라고 판단할 확률의 최대치
✔️ 표준 정규분포에서 뽑은 랜덤 표본이 전체 평균에서 크게 벗어나지 않아야 정규성 인정받음

Least square method

정의

✔️ 최소제곱법은 예측값과 실제값 사이의 오차를 제곱해서 더한 값의 합인 RSS를 가장 작게 만드는 회귀선(직선)을 찾는 방법

3가지 제곱합의 의미

📍 TSS : Total Sum of Squares
✔️ 전체 데이터의 실제값들이 전체 평균으로부터 얼마나 퍼져있는가
✔️ 즉, 데이터의 퐁 변동량

📍 ESS : Explained Sum of Squares
✔️ 회귀선을 통해 설명된 부분의 제곱합
✔️ 예측값이 평균보다 얼마나 잘 설명해줬는지를 나타냄

📍 RSS : Residual Sum of Squares
✔️ 실제값과 예측값 사이의 오차(잔차)의 제곱합
✔️ 회귀선이 설명하지 못한 부분

📍 관계 정리
✔️ TSS = ESS + RSS
✔️ 즉 전체 변동량 = 회귀선이 설명한 변동 + 설명 못한 전차
✔️ 우리는 RSS를 최소화하는 직선을 찾아야 함!

Regression Modeling Approaches

✔️ 회귀모델 구성 방식

Simultaneous (Direct) Method - Enter

✔️ 동시(직접) 입력 방식
✔️ 모든 독립변수를 한번에 회귀 모델에 넣는 방식
✔️ 각 변수가 얼마나 의미있는지에 상관없이, 일단 전부 다 넣어서 하나의 모델을 생성
✔️ 각 변수의 유의성(p-value 등)에 상관없이 전체 변수 집합을 사용해 모델을 구성
✔️ 보통 변수가 적거나, 다 필요하다고 생각될 때 사용

Stepwise Method - Stepwise

✔️ 독립변수를 하나씩 추가하거나 제거하면서 모델을 구성
✔️ 각 변수의 통계적 기여도(설명력, 유의확률 등)를 기준으로 판단
✔️ 가장 유의미한 변수들만 선택하여 모델을 점진적으로 만들어감
✔️ 주로 변수가 많고, 어떤게 중요한지 모를 때 유용

Goodness of fit

✔️ 적합도

Multiple R

✔️ 다중 상관계수
✔️ 독립 변수 전체와 종속 변수 사이의 복합적인 상관 관계를 측정
✔️ 이 값이 클수록 예측값이 실제값과 잘 맞아떨어진다는 의미

✔️ 결정계수
✔️ Multiple R을 제곱한 것
✔️ 전체 변동량(TSS) 중에서 모델이 설명한 비율(ESS)
✔️ 잘못 사용하면 쓸모 없는 변수도 모델이 좋아보이게 하는 착시를 줌

✔️ R²=1 : 완벽히 설명
✔️ R²=0 : 평균값만큼도 설명 못 함
✔️ R²<0 : 예측이 오히려 평균보다 못한경우 (망함)

Adjusted R²

✔️ 독립 변수의 개수와 샘플 수를 고려한 R²의 보정된 버전
✔️ 불필요한 변수의 추가로 인해 R²이 인위적으로 높아지는 것을 방지
✔️ 보통 다중 회귀 분석에서 더 정확한 모델 성능 지표로 사용됨

필요한 이유

✔️ 독립 변수를 막 추가하면 실제로 R²의 값은 무조건 올라감
✔️ 근데 그 변수가 실제로는 의미 없는 변수일 수 있음
✔️ 과적합 우려
✔️ 변수가 늘어나면 늘어날수록 더 엄격하게 조정되기 때문에 진짜 의미있는 변수가 들어갈 때만 값이 올라감

'CS > 기계학습' 카테고리의 다른 글

[기계학습] Neural Network - history  (0) 2025.06.11
[기계학습] Probabilistic Model  (1) 2025.05.29
[기계학습] Classification & Clustering  (0) 2025.05.29
[기계학습] Clustering  (3) 2025.05.29
[기계학습] Classification  (0) 2025.05.29