귀퉁이 서재
DATA - 21. Higher order term 본문
독립 변수 x를 제곱하거나 서로 곱함으로써 higher order term을 만들 수 있습니다. 보통 x₁² (quadratics) x₁³ (cubics), x₁x₂ (interactions)를 많이 씁니다.
quadratics와 cubics는 회귀 모델이 곡선일 때 쓰이며, interactions는 x₁의 변화가 x₂에 따라 달라질 때 쓰입니다. interaction을 써야 하는 경우에 대해 설명하겠습니다.
보라색 선은 neighborhood B일 때 Area에 따른 price 회귀선이며, 파란색 선은 neighborhood A일 때 Area에 따른 price 회귀선입니다. 두 회귀선 모두 기울기는 b₁입니다. 즉 neighborhood A이든 neighborhood B이든 Area의 증가에 따른 price 증가폭이 동일합니다. 이럴 때는 intercation term이 필요 없습니다.
1. neighborhood에 관계없이 area 증가에 따른 price 증가폭이 일정할 때 (기울기 b₁)
2. area에 관계 없이 서로 다른 neighborhood 사이의 price 차이가 동일할 때 (차이 b₂)
위 두 조건을 만족하면 interation term이 필요 없습니다.
하지만 아래와 같이 neighborhood에 따라 'area 증가에 따른 price 증가폭'이 다르면 interation term이 필요합니다.
neighborhood A일 때와 neighborhood B일 때 기울기가 서로 다릅니다. neighborhood A일 때와 B일 때 b₁이 달라진다는 뜻입니다. 하지만 interaction term이 없는 선형 회귀식으로는 이를 표현할 수 없습니다. 따라서 b₃x₁x₂인 interation term을 추가해주는 것입니다.
Quadratic term OLS 회귀 결과 해석
quadratic term을 추가해서 OLS 회귀 결과를 구해보겠습니다. 단순하게 df['area'] * df['area']를 해서 quadratic term을 나타낼 수 있습니다.
import numpy as np
import pandas as pd
import statsmodels.api as sm;
df = pd.read_csv('./house_prices.csv')
df['intercept'] = 1
df['area squared'] = df['area']*df['area']
lm = sm.OLS(df['price'], df[['intercept', 'ranch', 'victorian', 'area squared', 'area']])
results = lm.fit()
results.summary()
이때 area squared와 area의 coef을 보고, area가 한 유닛 증가할 때마다 price가 얼마나 증가하는지 알 수 없습니다. higher order term이 추가되는 순간, higher order term을 나타내는 변수에 대해서는 선형 회귀처럼 OLS 회귀 결과를 해석할 수 없습니다. 하지만 ranch나 victorian과 같이 higher order term과 관련 없는 변수에 대해서는 기존처럼 OLS 회귀 결과를 해석할 수 있습니다.
'데이터 분석' 카테고리의 다른 글
DATA - 23. Data Wrangling (Gathering Data) (0) | 2019.05.10 |
---|---|
DATA - 22. 로지스틱 회귀(Logistic Regression) (8) | 2019.05.06 |
DATA - 20. 다중공선성(Multicollinearity)과 VIF(Variance Inflation Factors) (9) | 2019.05.01 |
DATA - 19. 가변수(dummy variables)를 활용하여 범주형 데이터 모델링하기 (4) | 2019.04.30 |
DATA - 18. 다중 선형 회귀 (Multiple linear regression) (4) | 2019.04.30 |