단순 선형 회귀, 다중 선형 회귀, 변수형 변수, 다항회귀, 스플라인회귀, 상관계수, 가설검정의 주의점
한개의 변수에 의한 결과 예측(= 1차 함수)

두개 이상의 변수에 의한 결과 예측
다중공선성
독립변수들 간의 상관관계가 높은 현상
- 독립변수들 간의 상관관계가 높으면 각 변수의 개별적 특성을 파악하기 어렵다.
- 실제 중요한 변수가 통계적으로 유의하지 않게 나타날 수 있다.
진단 방법
- 변수간 상관계수가 높은지 확인(기준은 개인 판단)
- VIF (분산 팽창계수)를 계산해 높은지 확인(10)
해결 방법
- 변수 제거
- PCA(주성분 분석)과 같은 방법으로 차원을 줄여 적용.
수치형 데이터가 아니라 주로 문자형 데이터로 이루어져 있는 변수
ex) (남, 여), (서울, 대전, 대구)
문자를 임의의 숫자로 변환해서 사용하면 됨.
ex) 옷 사이즈(XL → 3, L → 2, s → 1)
원-핫 인코딩 변화을 해주어야함.
pd.get_dummies(df, drop_first=True)
drop_first=True를 하면 한개의 변수를 제외시킨다. 만약 3개의 변수 중에서 해당 기능으로 2개만 남기면 두개의 변수가 모두 False(=0)인 경우가 제외시킨 변수의 경우에 해당한다고 볼 수 있다. 변수를 줄여줌으로써 다중공선성도 어느정도 예방 가능.
더 쉽게 남자 컬럼만 남기면 남자가 False인 데이터컬럼은 여자인 경우의 데이터 컬럼과 같은것이다.
독립 변수와 종속 변수 간의 관계가 선형이 아닐 때 사용 (2차 함수, 3차 함수 등)

독립 변수의 구간별로 다른 회귀식을 적용해 복잡한 관계를 모델링함.

- 두 연속형 변수간의 선형관계를 측정하는 지표
- -1에서 1사이의 값을 가진다.
- *비선형 관계에서는 사용할 수 없다!!
ex) 순서형 데이터에서는 사용 못함.
- 데이터가 정규분포를 따르지 않거나 변수들이 순서형 데이터일 때 사용하는 상관계수
- 스피어만 상관계수와 켄달의 타우 상관계수가 있다.
ex)
from scipy.stats import spearmanr, kendalltau# 스피어만 상관계수 계산 spearman_corr, _ = spearmanr(df['Customer Satisfaction'], df['Repurchase Intent']) # 켄달의 타우 상관계수 계산 kendall_corr, _ = kendalltau(df['Customer Satisfaction'], df['Repurchase Intent'])
- 변수 간의 정보 의존성을 바탕으로 비선형 관계를 탐지
- 범주형 데이터에 대해서도 적용 가능
X와 Y간의 비선형 관계를 나타냄.
언제 사용하는가?
import numpy as np
from sklearn.metrics import mutual_info_score
# 범주형 예제 데이터
X = np.array(['cat', 'dog', 'cat', 'cat', 'dog', 'dog', 'cat', 'dog', 'dog', 'cat'])
Y = np.array(['high', 'low', 'high', 'high', 'low', 'low', 'high', 'low', 'low', 'high'])
# 상호 정보량 계산
mi = mutual_info_score(X, Y)
print(f"Mutual Information (categorical): {mi}")