Regression

ADsP 회귀분석 상호작용 예시

회귀분석 상호작용 예시

라이브러리 가져오기

  • reshape2 → 데이터 구조 변환(wide↔long), tips 데이터 포함
  • ggplot2 → 시각화(산점도, 회귀선, 상호작용 그래프)
  • lmtest → 회귀 가정 검정(등분산성, 독립성 등)
  • car → 공선성 점검(VIF), 회귀 진단 도구
  • broom → 회귀 결과를 깔끔한 데이터프레임으로 정리
  • emmeans → 상호작용 효과·부분효과(기울기) 통계 검정
library(reshape2)
library(ggplot2)
library(lmtest)
library(car)
library(broom)
library(emmeans)

Tips 데이터 가져오기

  • 데이터 설명 : 미국 식당에서 수집된 팁 관련 표본 데이터
  • 관측치 수: 244
변수명타입설명
total_billnumeric총 결제 금액(달러)
tipnumeric팁 금액(달러)
sexfactor (2)성별 — Female / Male
smokerfactor (2)흡연 여부 — No / Yes
dayfactor (4)요일 — Fri / Sat / Sun / Thur
timefactor (2)식사 시간 — Dinner / Lunch
sizeinteger일행 인원 수
data("tips")                 
str(tips)
## 'data.frame':    244 obs. of  7 variables:
##  $ total_bill: num  17 10.3 21 23.7 24.6 ...
##  $ tip       : num  1.01 1.66 3.5 3.31 3.61 4.71 2 3.12 1.96 3.23 ...
##  $ sex       : Factor w/ 2 levels "Female","Male": 1 2 2 2 1 2 2 2 2 2 ...
##  $ smoker    : Factor w/ 2 levels "No","Yes": 1 1 1 1 1 1 1 1 1 1 ...
##  $ day       : Factor w/ 4 levels "Fri","Sat","Sun",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ time      : Factor w/ 2 levels "Dinner","Lunch": 1 1 1 1 1 1 1 1 1 1 ...
##  $ size      : int  2 3 3 2 4 4 2 4 2 2 ...

상호작용이 없는 모델 만들기

  • 먼저 상호작용이 없는 모델을 만든다.
m1 <- lm(tip ~ total_bill * sex, data = tips)
summary(m1)
## 
## Call:
## lm(formula = tip ~ total_bill * sex, data = tips)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.2232 -0.5660 -0.0977  0.4796  3.6675 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         1.048020   0.272498   3.846 0.000154 ***
## total_bill          0.098878   0.013808   7.161 9.75e-12 ***
## sexMale            -0.195872   0.338954  -0.578 0.563892    
## total_bill:sexMale  0.008983   0.016417   0.547 0.584778    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.026 on 240 degrees of freedom
## Multiple R-squared:  0.4574, Adjusted R-squared:  0.4506 
## F-statistic: 67.43 on 3 and 240 DF,  p-value: < 2.2e-16

계수 해석

  • 계수 해석에 대한 설명은 다음과 같다.
계수 항목추정값(Estimate)표준오차(Std. Error)p-value해석
total_bill0.09890.0138<0.001여성 그룹에서 총금액 1달러 증가 시 팁이 약 $0.099 증가
sexMale-0.19590.33900.564남성은 여성보다 팁이 ���균 $0.196 낮지만 통계적으로 유의하지 않음
total_bill:sexMale0.00900.01640.585남성의 기울기가 여성보다 0.009 더 크지만 통계적으로 유의하지 않음
  • 위 표에 대한 해석 가이드는 다음과 같다.
    • (Intercept) : 기준집단(여성)에서 total_bill = 0일 때 팁의 평균값(절편). 실제 상황에서 해석보다는 기준점 역할에 가까움.
    • total_bill : 여성(Female) 그룹 기준으로, 총 결제금액이 1달러 증가할 때 팁이 평균 얼마 증가하는지를 나타냄. 여기서는 0.099달러 증가 → 유의(p<0.001).
    • sexMale : 총 결제금액이 0일 때 남성이 여성보다 팁을 얼마나 더(또는 덜) 주는지의 차이. 여기서는 남성이 여성보다 $0.196 낮지만, 유의하지 않음.
    • total_bill:sexMale : 성별에 따라 총금액이 팁에 미치는 기울기 차이(상호작용). 남성의 기울기가 여성보다 약간(0.009) 높지만 통계적으로 유의하지 않음.

모델 시각화

관측점 + 집단별 loess/선형선(간단)

  • 그래프 코드는 다음과 같다.
ggplot(tips, aes(x = total_bill, y = tip, color = sex)) +
  geom_point(alpha = .6) +
  geom_smooth(method = "lm", se = TRUE) +
  labs(title = "Interaction: total_bill × sex",
       x = "Total bill", y = "Tip", color = "Sex") +
  theme_minimal(base_size = 13)
## `geom_smooth()` using formula = 'y ~ x'

image.png

statsmodels를 활용한 회귀분석 (feat. 범주형 데이터)

개요

  • statsmodels를 활용하여 범주형 데이터가 포함된 회귀식을 산정해본다.
  • 범주형 데이터의 특정 값을 변동하는 방법을 배운다.
  • 더불어서 R로 간단한 회귀식도 만들어보자!

강의소개

라이브러리 확인

import statsmodels
import seaborn as sns 
import pandas as pd

print(statsmodels.__version__) 
print(sns.__version__) 
print(pd.__version__)
0.14.1
0.12.2
1.5.3

데이터 불러오기

  • seaborn에서 tips 데이터를 불러온다.
tips = sns.load_dataset('tips')
tips.head()

Untitled

Machine Learning Tutorial 02 - Regression (2)

I. 지도 학습 VS 비지도 학습

머신러닝은 크게 두 가지 유형으로 분류한다. 우선 아래 표를 보자.

구분지도학습
(Supervised Learning)
비지도 학습
(Unsupervised Learning)
알고리즘
(분석모형)
회귀분석
분류모형
군집분석
특징정답을 알고 있는 상태에서 학습
모형 평가 방법이 다양한 편
정답이 없는 상태에서 서로 비슷한 데이터를 찾아서 그룹화
모형 평가 방법이 제한적
출처: 오승환 (2019). 파이썬 머신러닝 판다스 데이터 분석 (p. 285)

지도학습(Supervised Learning)은 종속변수(Dependent Variable) 선정이 매우 중요하며. 종속변수 선정과 함께 데이터 분석도 같이 병행이 된다. 그러나 비지도학습(Unsupervised Learning)은 데이터가 많은데, 어떻게 분류하면 좋을지 모를 때 서로 비슷한 특징끼리 결합 및 그룹화 하는 것을 말한다.

Machine Learning Tutorial 01 - Regression (1)

I 지도 학습 VS 비지도 학습

머신러닝은 크게 두 가지 유형으로 분류한다. 우선 아래 표를 보자.

구분지도학습
(Supervised Learning)
비지도 학습
(Unsupervised Learning)
알고리즘
(분석모형)
회귀분석
분류모형
군집분석
특징정답을 알고 있는 상태에서 학습
모형 평가 방법이 다양한 편
정답이 없는 상태에서 서로 비슷한 데이터를 찾아서 그룹화
모형 평가 방법이 제한적
출처: 오승환 (2019). 파이썬 머신러닝 판다스 데이터 분석 (p. 285)

지도학습(Supervised Learning)은 종속변수(Dependent Variable) 선정이 매우 중요하며. 종속변수 선정과 함께 데이터 분석도 같이 병행이 된다. 그러나 비지도학습(Unsupervised Learning)은 데이터가 많은데, 어떻게 분류하면 좋을지 모를 때 서로 비슷한 특징끼리 결합 및 그룹화 하는 것을 말한다.