변수의 변형
변수의 변형
- 필요성: 선형 모형은 독립-종속 변수 간 선형 관계 가정. 현실 데이터는 비선형 관계 많음.
- 방법: 독립변수(또는 종속변수)에 비선형 함수(로그, 제곱근, 제곱 등) 적용하여 관계 선형화 시도.
- 예시: ,
- Python: 관계식 내
numpy등 수학 함수 직 접 사용 가능 (np.log(x)).
로그 함수 변환
- 형태: 오른쪽 위로 갈수록 완만해짐 (증가율 감소).
- 특성: 큰 값 차이 줄여줌 (예: 1 vs 10, 10 vs 100, 100 vs 1000 이 로그 스케일에서는 등간격).
- 효과: 데이터 오른쪽 긴 꼬리(positive skew) 왼쪽으로 끌어당겨 분포 대칭적으로 만듦.
- 용도: 소득, 가격 등 오른쪽으로 치우친(positive skewed) 변수 변환에 자주 사용. 간격 일정하게 만드는 효과.
왜도
- 데이터 분포의 비대칭 정도.
Negative Skew: 왼쪽 꼬리 김 (- 방향 치우침). 평균 < 중간값 < 최빈값.Positive Skew: 오른쪽 꼬리 김 (+ 방향 치우침). 최빈값 < 중간값 < 평균.
- 값 해석 (절대값 기준):
0: 좌우 대칭.|0.5|: 중간 정도 치우침.|1|: 극단적 치우침.
예시: 중고차 주행거리 분포
- 히스토그램: 오른쪽 꼬리 긴 형태 보임.
- 왜도 계산:
skew(df['mileage'])결과 > 1.04 → + 방향 매우 치우침. - 로그 변환:
np.log(mileage)적용 시 분포 좀 더 대칭적으로 변함. 회귀 분석 성능 개선 기대.
Python 로그 함수 적용
회귀분석
import numpy as np
from statsmodels.formula.api import ols
m = ols('price ~ np.log(mileage)', data=df).fit()
산점도 (x축도 로그 변환)
import matplotlib.pyplot as plt
plt.plot(np.log(df.mileage), df.price, 'o') # 'o'는 점 모양
독립변수의 서열(순위) 이용 회귀분석
- 방법: 독립변수 실제 값 대신 순위(rank) 사용.
- 관계식:
y ~ x.rank() - 논리: 스피어만 상관계수와 유사. 변수 간 단조적 관계 파악.
- 장점:
- 표준화처럼 단위 다른 변수 비교 용이.
- 로그 변환처럼 한쪽으로 치우친 데이터 영향 완화. 비선형성 일부 처리.
- 단점:
- 새로운 데이터 예측 시, 기존 데이터 기준 순위 다시 매겨야 함 (번거로움).
- 관찰 범위 벗어난 값 예측 불가 (순위 기반이므로).
퀴즈
사용자 정보 입력
퀴즈를 시작하기 전에 이름과 소속을 입력해주세요.