Data_10기

Python 머신러닝(회귀분석) 및 SQL 비상관/상관 쿼리

senu 2025. 12. 10. 21:52

오늘은 본격적으로 머신러닝을 배우기에 앞서 통계와 머신러닝 간의 관계와 넓은의미의 머신러닝이라고 할 수 있는 회귀분석에 대해 배웠다. 그동안 연구를 하면서 몇몇 개의 회귀모델을 사용했지만 이런 것들이 머신러닝의 일부라고 생각해 본 적이 없었기 때문에 하루 종일 혼란스러운 하루였다. ChatGPT에게 물어봤을 때는 내가 한 연구는 인과추론 통계고, 머신러닝의 주 목적인 예측과는 거리가 조금 있기 때문에 머신러닝과는 구분된다고 말해주었지만, 머신러닝 파트에서 선형회귀, 로지스틱 회귀를 배우는 것이 여전히 어색했다.


Ⅰ. 통계와 머신러닝의 관게

데이터 분석 분야를 크게 나누면 (1) 통계적 가설검정(2) 머신러닝으로 나눌 수 있다고 한다. 

특징 통계적 가설검정 머신러닝
목적 가설 검증 및 데이터 통계적 특성 파악 예측 및 분류 모델 생성
데이터 요구 작은 데이터에서도 가능 대규모 데이터에서 성능이 향상
결과 해석 p-value 중심 모델의 정확도, 정밀도 등 평가 지표 활용
접근 방식 선형적이고 해석 가능한 데이터 비선형적, 복잡한 데이터
활용 영역 의학, 사회과학 등 가설 검증이 필요한 분야 산업 자동차, 추천 시스템 등 대규모 데이터 활용 분야
종류 평균 차이 검정 (t-test / z-test)
분산 차이 검정 (F-test)
분포 검정 (chi-square test)
상관관계 검정 (Pearson / Spearman / Cramer's V)
지도학습
비지도학습
강화학습 (지도+비지도)
딥러닝

 

내가 했던 연구는 역학연구여서 나름 빅데이터도 다뤘다고 생각했는데 가설 검증에 관련된 내용이라면 통계고, 꼭 선형적인 관계에 대해서만 연구를 진행하지 않았기 때문에 접근 방식에 대해서는 머신러닝 쪽이다. 팍씨. 헷갈리네. 나 뭘.. 했을까..

 

머신러닝을 하기 위해 통계가 필요하기 때문에 둘의 관계는 상호보완적이라고 할 수 있다. 예를들면,

  1. 머신러닝 모델에 어떤 변수를 넣어 모데링을 할 것인지 정할 때, 통계적 가설검정(ex: Feature Importances)을 사용하기도 하고, 
  2. 비선형 데이터의 관계를 처리하거나 대규모 데이터에서 가설 검정의 한계를 보완하기도 한다.

 

머신러닝의 종류에 대해서도 간단히 배워보았다. 머신러닝에는 크게 (1) 지도 학습(2) 비지도 학습이 있다.

  • 지도 학습 (labelled data) : 정답이 있는 데이터로 모델을 훈련시켜 결과를 예측하는 학습법 → 문제와 정답을 모두 알고있는 상태에서 시행하는 방법
  • 비지도 학습 (unlabelled data) :  정답이 없는 데이터를 분석해서 데이터 간 패턴을 찾아내거나 데이터를 그룹화시키는 학습법 → 정답을 알 수 없는 상태에서 시행하는 방법
  • 강화 학습 : 지도 학습 + 비지도 학습 (현재는 쓸만하지 않음)

지도 학습 모델이 비지도 학습 모델보다 객관적이라고 할 수 있지만,  이 방법들은 데이터의 구조나 사용 분야에 맞게 적합한 방식을 선택하는 것이 중요하다. 또한, 머신러닝 시 결과의 유효성을 검사하려면 데이터분석가의 주관 개입이 필수적이기 때문에 이부분도 유념할 필요가 있다.

 

Ⅱ. 회귀분석

회귀분석은 독립변수(X)로 종속변수(Y)를 예측하는 분석기법으로, 분석 단계는 다음과 같다:

단계 내용
1) 독립변수, 종속변수 설정 X, Y 설정 → 가설 설정
2) 데이터 경향성 확인 X와 Y 간 산점도 및 상관 분석 → 데이터 분포 확인
3) 정합성 검증 및 결과 해석
  • 회귀모델 설명력 확인: 모델의 정합도
  • 통계적 유의성 확인: 통계적으로 써먹어도 되는지 (이렇게 나온 결과가 우연이 아닌지)
  • X와 Y 간 선형관계 확인

 

회귀분석 시 중요하게 살펴보아야 할 부분은 종속변수(Y)의 분포이다. 종속변수의 분포에 따라 회귀분석 모델이 달라진다.

  • 종속변수: 연속 → 선형회귀
  • 종속변수: 범주형(이분형) → 로지스틱
  • 종속변수: 범주형(3개 이상) → 다항(다중) 로지스틱

복습 1) 상황별 모수·비모수 검정 방법

상황 모수검정 방법 비모수검정 방법
한 집단 vs 기준값 단일표본 t검정 Wilcoxon signed-rank test
독립된 두 집단 이표본 t검정 Mann=Whitney U test
대응된 두 집단 대응표본 t검정 Wilcoxon signed-rank test
세 집단 이상 ANOVA Kruskal-Wallis test

 

복습 2) 자주 사용되는 검정 방법별 목적, 자료유형, 검정통계량 비교

검정 목적 자료 유형 검정통계량 분포
ANOVA 3개 이상 집단 평균 비교 연속형 Y + 범주형 X F F분포
Z-test for proportions 두 비율 차이 비교 이분형 변수 Z 표준정규분포
카이제곱(χ²) 검정 범주형 변수 간 관계 / 분포 비교 범주형 χ² 카이제곱분포

 

1. 회귀모델의 설명력 : 결정계수 (R²)

결정계수는 회귀모델의 설명력을 평가하는 지표로, 종속변수의 변동을 독립변수가 얼마나 설명하는지를 나타내는 수치이다. 이는 전체 변동 중 회귀모형이 설명해낸 비율을 의미하며, 값은 0과 1 사이의 범위를 갖는다. 값이 1에 가까울수록 모델이 데이터를 더 잘 설명한다는 의미이다.

 

2. 회귀모델의 통계적 유의성 : F검정의 p-value

회귀모델의 통계적 유의성은 신뢰도를 95%로 설정했을 때, F검정을 통해 얻은 p-value가 0.05보다 작으면 대립가설을 채택한다.

 

3. 독립변수와 종속변수 간 선형관계 확인

X와 Y 간 선형관계는 t 검정을 통해 얻은 p-value가 0.05보다 작으면 대립가설을 채택한다.


Ⅲ. SQL 리마스터 - 비상관 / 상관 쿼리

SQL 서브쿼리에는 크게 비상관 쿼리와 상관 쿼리가 있다. 비상관 쿼리와 상관 쿼리의 특징을 비교하면 다음과 같다:

구분 비상관 서브쿼리 상관 서브쿼리
의존성 바깥 쿼리와 독립적 바깥 쿼리의 각 행에 의존
실행 방식 서브쿼리 한 번 실행 행마다 반복 실행
성능 상대적으로 빠름 상대적으로 느릴 수 있음
# 비상관 쿼리 예시
SELECT name
FROM employee
WHERE salary > (SELECT AVG(salary) FROM employee)
;

# 상관 쿼리 예시
SELECT e1.name
FROM employee e1
WHERE salary >
      (SELECT AVG(e2.salary)
       FROM employee e2
       WHERE e2.department = e1.department)
;

 

⇒ 비상관 쿼리 : 서브쿼리는 평균 급여를 한 번만 계산하면 끝

⇒ 상관 쿼리 : 바깥 쿼리의 e1.department 값에 따라 서브쿼리가 계속 달라지므로 반복 실행됨

 

처음엔 상관 쿼리가 뭔지 몰라 이중 서브쿼리 구문으로 문제를 해결했는데, 상관 쿼리를 사용하면 데이터를 첫 행부터 돌면서 서브쿼리 결과 값도 달라져 훨씬 간결하게 쿼리를 작성할 수 있었다. 아직 익숙하진 않아서 빠르게 문제를 풀어낼 때는 생각이 나지 않을 수 있지만 주기적으로 연습하며 복습하다 보면 나중에 쿼리 효율을 높일 수 있을 것 같다.