-
혼자 공부하는 데이터 분석 CH 07 통계와 머신러닝Study/Data Analysis 2025. 9. 27. 11:54

목차
들어가며: 데이터 인사이트를 찾는 두 축, 통계적 추론과 머신러닝 예측.
1. 통계적으로 추론하기: 데이터 뒤에 숨겨진 진실 찾기
1-1. 중심극한정리: 통계적 추론의 기본 원리
1-2. 신뢰구간 추정: 모집단 평균의 예상 범위 설정
1-3. 가설검정 (T-검정): 두 그룹 차이의 유의성 판단
1-4. 순열검정: 비모수적 가설 검정의 강력한 대안)
2. 머신러닝으로 예측하기: 미래를 설계하는 모델 만들기
2-1. 선형 회귀: 연속적인 값 예측
2-2. 로지스틱 회귀: 범주형 결과 분류 예측
2-3. 모델 평가 지표: 성능의 객관적 측정
2-4. 모델 성능 해석: 지표를 통한 개선 방향 설정)
마치며: 데이터 분석 능력 향상을 위한 실습의 중요성.
들어가며:
데이터 인사이트를 찾는 두 축, 통계적 추론과 머신러닝 예측 안녕하세요!
이번 포스팅에서는 데이터를 깊이 있게 이해하고 미래를 예측하는 데 필수적인 두 가지 핵심 방법론,
바로 통계적 추론과 머신러닝 예측에 대해 자세히 살펴보겠습니다.
데이터 분석은 단순히 숫자를 나열하는 것을 넘어,
표본 데이터에서 모집단에 대한 결론을 도출하고(추론), 관찰된 패턴을 기반으로 새로운 데이터의 결과를 예측하는(예측) 과정입니다.
이 글은 가설 검정, 신뢰구간 추정 같은 통계적 방법부터 선형 회귀, 로지스틱 회귀 같은 머신러닝 기법까지, 데이터에서 의미 있는 인사이트를 추출하는 과정을 노트북 형식으로 정리한 내용입니다.
1. 통계적으로 추론하기: 데이터 뒤에 숨겨진 진실 찾기
추론 통계는 우리가 실제로 관찰한 표본 데이터를 바탕으로, 더 큰 범위인 모집단의 특성을 합리적으로 추측하는 방법입니다.

1-1. 중심극한정리: 통계적 추론의 기본 원리
설명: 중심극한정리(Central Limit Theorem, CLT)는 통계학의 가장 핵심적인 원리 중 하나입니다. 모집단의 분포 형태가 무엇이든 관계없이, 표본의 크기()가 충분히 크다면(을 기준으로 함), 우리가 표본에서 얻는 표본 평균들의 분포는 정규분포에 가까워진다는 정리입니다. 이 원리 때문에 모집단의 분포를 모르더라도 정규분포의 성질을 이용해 신뢰구간을 추정하거나 가설 검정을 수행할 수 있습니다.
1-2. 신뢰구간 추정: 모집단 평균의 예상 범위 설정
설명: 신뢰구간(Confidence Interval)은 우리가 얻은 표본 평균을 중심으로 모집단 평균이 실제로 존재할 것으로 예상되는 범위를 추정하는 방법입니다. 예를 들어, 95% 신뢰구간이라면 "같은 방식으로 100번 표본을 추출하여 신뢰구간을 만들었을 때, 그 중 약 95개의 구간이 모집단의 실제 평균을 포함한다"는 의미입니다.
import numpy as np from scipy import stats # python_books 데이터프레임이 준비되어 있다고 가정합니다. python_mean = np.mean(python_books['대출건수']) python_std = np.std(python_books['대출건수']) # 표준 오차(Standard Error of the Mean): 표본 평균의 표준 편차 python_se = python_std / np.sqrt(len(python_books)) # 95% 신뢰수준에 해당하는 z-score(약 1.96)를 사용하여 신뢰구간 계산 confidence_interval = (python_mean - 1.96 * python_se, python_mean + 1.96 * python_se) print(confidence_interval) # 출력: (13.1728..., 16.3251...)1-3. 가설검정 (T-검정): 두 그룹 차이의 유의성 판단

설명: 가설 검정은 데이터에 기반하여 어떤 주장이 사실인지 통계적으로 확인하는 과정입니다. T-검정(T-test)은 가장 흔하게 사용되는 방법으로, 특히 두 그룹의 평균 간에 통계적으로 유의미한 차이가 있는지를 검증할 때 사용됩니다.
- p-value: 귀무가설(두 그룹의 차이가 없다)이 사실이라고 가정했을 때, 현재 관찰된 데이터 또는 그보다 극단적인 데이터가 나타날 확률입니다.
- 유의성 판단: p-value가 유의수준(Significance Level, 보통 0.05)보다 작으면 귀무가설을 기각하고, 두 그룹 간에 통계적으로 유의미한 차이가 있다고 결론 내립니다.
1-4. 순열검정: 비모수적 가설 검정의 강력한 대안

설명: 순열검정(Permutation Test)은 데이터가 정규분포를 따른다거나 표본 크기가 충분히 크다는 등의 특정 통계적 가정을 요구하지 않는 비모수적(Non-parametric) 검정 방법입니다.
데이터를 무작위로 섞어 그룹을 재구성하는 과정을 수천 번 반복(시뮬레이션)합니다. 이를 통해 얻은 무작위 차이 분포와 원래 두 그룹의 평균 차이를 비교하여, 원래 차이가 우연히 발생할 수 없는 값인지 확인하여 통계적 유의성을 검증합니다. 특히 데이터의 분포가 비대칭이거나 표본 크기가 작을 때 유용합니다.
2. 머신러닝으로 예측하기: 미래를 설계하는 모델 만들기
머신러닝 예측은 과거의 데이터를 학습하여 패턴을 발견하고, 이를 기반으로 새로운 데이터의 결과를 예측하는 기술입니다.

2-1. 선형 회귀: 연속적인 값 예측

설명: 선형 회귀(Linear Regression)는 집값이나 판매량처럼 연속적인 수치를 예측하는 회귀(Regression)모델의 가장 기본 형태입니다. 독립변수와 종속변수 사이에 직선()과 같은 선형 관계가 있다고 가정하고, 데이터를 가장 잘 설명하는 최적의 직선을 찾아 예측을 수행합니다.
from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression # 데이터를 훈련(Train) 세트와 테스트(Test) 세트로 분리 train_set, test_set = train_test_split(ns_book7, random_state=42) X_train = train_set[['도서권수']] # 독립변수 (특징) y_train = train_set['대출건수'] # 종속변수 (타깃) X_test = test_set[['도서권수']] y_test = test_set['대출건수'] # 선형 회귀 모델 훈련 lr = LinearRegression() lr.fit(X_train, y_train) # 결정계수(R^2)로 모델 평가 score = lr.score(X_test, y_test) print(score) # 출력: 0.1002...2-2. 로지스틱 회귀: 범주형 결과 분류 예측

설명: 이름은 '회귀'지만, 로지스틱 회귀(Logistic Regression)는 이메일이 스팸인지 아닌지, 대출 승인 여부처럼 두 개 이상의 카테고리(범주형) 중 하나를 예측하는 분류(Classification) 모델입니다. 이 모델은 선형 방정식을 시그모이드(Sigmoid) 함수에 넣어 결과를 0과 1 사이의 확률로 변환합니다. 이 확률(P)을 기반으로 특정 임계값(Threshold)을 넘어설 경우 해당 범주로 분류(예: P > 0.5이면 승인)를 수행합니다.
2-3. 모델 평가 지표: 성능의 객관적 측정
설명: 모델을 구축한 후에는 그 성능이 얼마나 좋은지 객관적으로 측정해야 합니다. 예측 모델의 종류에 따라 다양한 평가 지표가 사용됩니다.
- 결정계수 (, Coefficient of Determination): 모델이 종속변수의 분산을 얼마나 잘 설명하는지 나타냅니다. 1에 가까울수록 설명력이 높습니다. (회귀 모델)
- 평균절댓값오차 (MAE, Mean Absolute Error): 예측값과 실제값의 차이(오차)를 절댓값으로 평균 낸 값입니다. 오차의 평균 크기를 직관적으로 파악할 수 있으며, 값이 작을수록 예측 정확도가 높습니다. (회귀 모델)
from sklearn.metrics import mean_absolute_error # 테스트 세트에 대한 예측 생성 y_pred = lr.predict(X_test) # MAE 계산 mae = mean_absolute_error(y_test, y_pred) print(mae) # 출력: 10.358...2-4. 모델 성능 해석: 지표를 통한 개선 방향 설정
설명: 단순히 지표 값을 얻는 것만큼이나 그 값을 해석하는 것이 중요합니다.
- 해석: 예시에서 값이 약 0.1002인 것은, 독립변수('도서권수')가 종속변수('대출건수')의 변동을 약 10% 정도만 설명하고 있다는 의미입니다. 이는 현재 모델의 설명력이 매우 낮으며, 예측 능력을 높이기 위해서는 '도서권수' 외에 다른 중요한 독립변수(예: 출판사, 발행 연도 등)를 추가해야 함을 시사합니다.
- MAE 해석: MAE가 10.358이라는 것은, 평균적으로 우리의 예측값이 실제 대출건수와 약 10.358건의 차이를 보인다는 의미입니다. 이 오차가 서비스 목표에 비해 크다면 모델 개선이 필수적입니다.
마치며:
데이터 분석 능력 향상을 위한 실습의 중요성 통계적 추론과 머신러닝 예측은 데이터를 통해 합리적인 의사결정을 내리고 미래를 예측하는 현대 분석의 핵심 도구입니다.
오늘 정리한 중심극한정리, 신뢰구간, T-검정 같은 추론 방법으로 데이터의 현재를 정확히 진단하고, 선형/로지스틱 회귀 같은 예측 모델로 미래를 설계할 수 있습니다. 이론 학습과 더불어 제시된 코드 예시들을 직접 실행하고 다양한 데이터를 적용해보는 실습만이 여러분의 데이터 분석 능력을 한 단계 끌어올릴 수 있습니다.
코드 출처:
https://colab.research.google.com/github/rickiepark/hg-da/blob/main/07-1.ipynb#scrollTo=cRfYWGRXslrj
07-1.ipynb
Run, share, and edit Python notebooks
colab.research.google.com
https://colab.research.google.com/github/rickiepark/hg-da/blob/main/07-2.ipynb
07-2.ipynb
Run, share, and edit Python notebooks
colab.research.google.com
내용 및 이미지 출처:
https://www.youtube.com/watch?v=R3E4m8fqUSg&list=PLVsNizTWUw7FGzSRCkQrPEEe-ljVXgS7k&index=14
https://www.youtube.com/watch?v=W_cxRstQUk8&list=PLVsNizTWUw7FGzSRCkQrPEEe-ljVXgS7k&index=15
'Study > Data Analysis' 카테고리의 다른 글
혼자 공부하는 데이터 분석 CH 06 복잡한 데이터 표현하기 (0) 2025.09.26 혼자 공부하는 데이터 분석 CH 05 데이터 시각화 (3) 2025.09.25 혼자 공부하는 데이터 분석 CH 04 통계와 분포 (0) 2025.09.24 혼자 공부하는 데이터 분석 CH 03 데이터 클렌징 (1) 2025.09.23 혼자 공부하는 데이터 분석 CH 02 웹 스크래핑 (0) 2025.09.22