ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 혼자 공부하는 데이터 분석 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

     

Designed by Tistory.