[Data Analysis] 1. Multiple Linear Regression Analysis
다중 선형 회귀 모형 : Multivariate Linear RegressionPermalink
목적 : 종속변수 Y와 설명변수 집합 x1,x2,⋯,xp 사이의 관계를 선형으로 가정하고 이를 가장 잘 설명할 수 있는 회귀 계수(Regression coefficients)를 추정
y=β0+β1x1+⋯+βdxd+ϵ ⟹ ˆy=^β0+^β1x1+⋯+^βdxd우리가 알고있는 y,x1,x2,⋯,xd 를 통해 미지수(파라미터) ^β0,^β1,⋯,^βd 를 추정하여 y와 가장 유사한 값 ˆy를 찾는 모형
회귀 모형에서의 노이즈(noise, ϵ)란? : 데이터 생성 및 수집 과정에서 발생할 수 있는 여러 원인들에 의해 발생하는 변동성
즉, 선형 회귀 모형은 반응변수들과 설명변수 사이의 관계를 선형으로 표현 → ˆy=^β0+^β1x1+⋯+^βdxd
그렇다면, 어떤 직선이 설명변수와 종속변수를 가장 잘 표현하는가 → 최소자승법: Ordinary Least Squares(OLS)
최소자승법 : Ordinary Least Squares(OLS)Permalink
: 추정된 회귀식에 의해 결정된 값과 실제 종속변수 값의 차이를 최소한으로 줄이는 것을 목적
{실제값 - 예측값}을 모두 더하게 되면 부호가 달라져 측정에 어려움이 있음 → 제곱하여 더하는 것이 최소자승법
Actual target: y=β0+β1x1+⋯+βdxd+ϵPredicted target: ˆy=^β0+^β1x1+⋯+^βdxdOLS: min12n∑i=1(yi−^hi)2=12(yi−(^β0+^β1xi1+⋯+^βdxid))2행렬을 이용한 해 구하기
X:n×(d+1) matrix,y:n×1vector
ˆβ:(d+1)×1 vector
- 선형 회귀 분석에서 최소자승법(OLS)를 이용할 경우 ˆβ , 학습 데이터에 대해 유일하고 명시적인 해가 존재
-
X,y 라는 이미 데이터를 통해 알고 있는 값의 조합으로 ˆβ 이라는 미지수를 찾기 때문에 하나의 해가 존재 (Nural Network에서는 해당하지 않음)
만족해야하는 조건
-
오차항 ϵ 이 정규분포
오잔차의 분포를 나타내는 QQ plot에서 정규분포를 벗어남, histogram에서도 확인 가능
-
설명변수와 종속변수 사이에 선형관계가 성립
-
각 관측치들은 서로 독립
-
종속변수 y에 대한 오차항은 설명변수 값의 범위에 관계없이 일정 (homoskedasticity)
(a) : 종속변수의 추정값이 증가할수록 잔차값도 증가하는 추세
(b) : 평균은 0으로 일정하지만 ˆy값이 커질수록 변동성이 커짐
(c) : 이차항 형태를 보임
(d) : 어떠한 값의 크기에 관계없이 추세나 변동성을 보이지 않음
다중 선형 회귀 모형 : 회귀 모형의 적합도Permalink
데이터를 얼마나 잘 설명하고 있는지를 하나의 숫자로 어떻게 측정하느냐 → 회귀 모형의 적합도
↳ 데이터의 종속변수(y)가 갖는 변동성을 이용해서 계산
n∑i=1(yi−ˉy)2=n∑i=1(yi−^yi+^yi−ˉy)2=n∑i=1(^yi−ˉy)2+n∑i=1(yi−ˆy)2+2n∑i=1(^yi−ˉy)(yi−ˆy)=n∑i=1(yi−ˉy)2+n∑i=1ˆϵ2종속변수의 전체 변동성(분산) = 회귀식이 설명할 수 있는 변동성 + 회귀식이 설명할 수 없는 변동성
좋은 회귀모형이란 종속변수의 전체 변동성중에서 회귀식이 설명할 수 있는 변동성이 커야하고 회귀식이 설명할 수 없는 변동성(잔차)가 작아야함 → 이것을 수치화 한 것이 결정계수, R2
회귀 모형의 적합도 (결정계수, R2) = 전체 변동성 중 회귀식이 설명할 수 있는 변동성의 비율
R2=1−SSESST=SSRSST0≤R2≤1-
R2=1 → 회귀직선으로 Y의 총변동이 완전히 설명됨 (모든 측정값들이 회귀직선 위에 있는 경우)
-
R2=0 → 추정된 회귀직선은 X 와 Y 의 관계를 전혀 설명하지 못함
선형회귀분석을 했을 때 R2가 높게 나왔을 때는 분석을 잘 한 것이 아니라 데이터의 입력변수와 출력변수 사이에 강한 선형관계가 있음으로 해석
하지만 R2 는 유의하지 않은 변수가 추가되어도 항상 증가함 → Adjusted R2는 이러한 단점을 앞에 계수를 곱해줌으로써 보정
R2adj=1−[n−1n−(p+1)]SSESST≤1−SSESST=R2변수의 수 p가 커지게 되면 R2adj는 작아지게 됨 → 변수가 충분한 상황에서 SSE를 줄일 수 없는 효과가 없는 변수가 추가되면 R2adj는 변수가 추가됨에 따라 작아질 수 있음
Adjusted R2를 사용하면 변수를 무작정 추가하는 상황을 피할 수 있음
예시 : 도요타 코롤라 중고차 가격 예측Permalink
-
데이터 전처리 : 변수 Fuel_Type은 카테고리형 변수이기 때문에 1-of-C coding(one-hot-encoding) 변환
-
데이터 구분 : 가용한 모든 데이터를 전부 학습에 사용하면 과적합 위험 (60%를 training data, 40%를 test data로 사용)
다중회귀분석 결과 해석
-
유의 확률 p-value
선형 회귀 분석에서 해당 변수가 통계적으로 유의미한지 알려주는 지표
0에 가까울수록 모델링에 중요한 변수이며, 1에 가까울수록 유의미하지 않은 변수
특정 유의수준(α)을 설정하여 해당 값 미만의 변수만을 사용하여 다시 선형회귀분석을 구축하는 것도 가능 (주로 α=0.05 사용)
H0:ˆβi=0 → 귀무가설 : 설명변수가 종속변수에 영향을 끼치지 않는다
H1:ˆβi≠0 → 대립가설 : 설명변수가 종속변수에 영향을 끼친다
귀무가설을 지지한다(=대립가설을 기각한다)는 설명변수가 종속변수에 영향을 끼지지 않는 것을 의미하고 대립가설을 지지한다(=귀무가설을 기각한다)는 설명변수가 종속변수에 영향을 끼치는 것을 의미함
↳ p-value값이 작으면 작을수록 귀무가설을 기각할 가능성이 높음 → p-value가 작을수록 중요한 변수
즉, p-value를 통해
Age_08_04(출시월), KM(주행거리), Fuel_Type_Petrol(가솔린 여부), HP(마력), Quarterly_Tax(세금), Weight(공차중량)
가 중요한 변수 -
회귀 계수 Coefficient
ˆy=^β0+^β1x1+⋯+^βdxd에서 각 변수에 대응 하는 β값을 의미
해당 변수가 1단위 증가할 때 종속변수의 변화량을 의미
양수이면 해당 설명변수와 종속변수는 양의 상관관계, 음수이면 음의 상관관계를 뜻함
Age_08_04
의 회귀 계수는 -123.8319168 → 나머지 모든 조건이 동일한 상황에서 1개월 이후 출시되면 가격은 약 123유로만큼 낮아진다.KM
의 회귀 계수는 -0.02 → 나머지 모든 조건이 동일한 상황에서 1km 더 주행했을 경우 가격은 0.02유로만큼 낮아진다.↳ 그렇다고해서
Age_08_04
가KM
보다 회귀 계수가 더 높다고해서 더 중요한 변수는 아님 (두 변수 사이의 측정 단위가 다르기 때문)
회귀모형 성능 평가Permalink
분류문제나 회귀문제를 풀 수 있는 다양한 알고리즘 존재
- Classification : Naive bayes, Linear discriminant, K-nearest neighbor, Classification trees, etc
- Prediction : Mutiple linear regression, Neural networks, Regression trees, etc
어떤 알고리즘은 최적의 하이퍼파라미터 설정이 필요함
- K-nearest Neighorhood : 이웃 개체의 수 (k), Neural networks : 은닉 노드의 수 등
주어진 문제를 해결하기 위한 최적의 방법론을 선택하기 위해 개별 모델을 동등한 조건에서 평가할 필요가 있음
- 검증 데이터 : 다양한 파라미터 조합 중 최적의 파라미터를 찾는데 주로 사용
- 테스트 데이터 : 여러 기계학습 알고리즘 중 최적의 알고리즘을 찾는데 주로 사용
시간 정보를 고려할 필요가 없을 경우
-
원래 데이터를 무작위 추출 방식으로 학습:검증:테스트 데이터셋 으로 분할 (검증 밑 체스트셋의 데이터가 충분히 확보할 수 있는 범위내에서 6:2:2, 8:1:1까지 분할 가능)
-
원칙적으로 무작위로 분할한 데이터셋 구축을 충분히 반복하여 모델의 예측 성능과 안정성을 함께 비교해야함
-
무작위 추출은 데이터셋 단위로 수행하며, 한번 추출된 데이터셋으로 비교 대상인 모든 후보 알고리즘에 일괄 적용해야함
-
알고리즘마다 서로 다르게 무작위 추출된 데이터 셋으로 학습을 수행할 경우 공정한 비교가 불가능함
-
시간 정보를 반드시 고려해야 하는 경우
-
반드시 학습:검증:테스트는 시간 순서대로 배열이 되어 있어야 함
- 무작위 추출 방식을 사용할 경우, 미래 정보를 활용하여 과거를 예측하는 오류를 범하게 됨
-
1번의 검증으로는 앞 선 방식과 같이 모델 성능의 안정성을 평가할 수 없음으로 Sliding Window 방식을 이용한 Time-Series Cross Validation 기법을 활용함 (10개월치의 데이터가 존재하면, 학습:검증:테스트를 2개월:1개월:1개월로 정의, window size=1개월)
예시 : p개의 설비 파라미터로부터 각 제품(GLASS)의 수율을 추정하는 모형Permalink
지표 1 : 평균오차, Average ErrorPermalink
실제 값에 비해 과대/과소 추정 여부를 판단 (부호로 인해 잘못된 결론을 내릴 위험이 있음)
Average Error=1nn∑i=1(yi−y′i)↳ Average Error는 0.1로 정확한 듯 보이지만 실제값과 예측값의 차이가 양수인 값과 음수인 값들이 상쇄되면서 평균오차가 낮아진 것
지표 2 : 평균 절대 오차 (Mean Absolute Error, MAE)Permalink
실제 값과 예측 값 사이의 절대적인 오차의 평균을 측정
-
MAE의 단점 : 실제 값과 예측된 값의 절대 차이에 대한 정보만 제공하고 상대적인 차이에 대한 정보를 제공하지 못함
두 모델의 MAE는 1로 같지만 절대적인 Y라는 정답의 크기 차이가 크기 때문에 왜곡된 결과를 도출
지표 3 : 평균 절대 비율 오차 (Mean Absolute Percentage Error, MAPE)Permalink
실제값 대비 얼마나 예측 차이가 있는지를 비율(%)로 측정
상대적인 오차율이 절대적인 오차 수치보다 제조업에서의 품질관리와 같은 분야에서 자주 사용
↳ Target이 넘지 말아야 할 상한선과 하한선 사이에서 얼마만큼의 변동성을 가지고 있는지가 중요한 상황에서 주로 사용
MAPE=1nn∑i=1|yi−y′iyi|MAE와 MAPE를 목적함수로 사용할 경우 추정되는 최귀식의 차이Permalink
두번째 그래프를 보면 MAPE는 (실제값과 추정값의 차이 / 정답) 을 나타내기 때문에 실제 정답이 0에 가까울 때는 값을 크거나 작게 추정하려고 하지 않음 → 0에 가까운 값에서는 MAPE가 MAE보다 과소 추정하는 것을 볼 수 있음
MAE와 MAPE 중 어느 지표를 더 중점적으로 고려해야 하는가?Permalink
Domain 마다 다름
- 절대적 차이가 중요한 분야 (추천 시스템의 평점 예측) → MAE
- 상대적 차이가 중요한 분야 (제조업에서의 품질지표 관리) → MAPE
영화 D에 대한 절대 오차는 1, 상대 오차는 12.5% (18×100)
하지만, 평점 1점을 2점으로 예측한 상대 오차는 100%, 평점 10점을 9점으로 예측한 오차는 10%로 다름
↳ 상대적인 오차가 아닌 절대적인 오차가 중요함 → MAE를 주 평가 지표로 사용
지표 4 & 5 : (Mean Squared Error, MSE / Root Mean Squared Error, RMSE)Permalink
부호의 영향을 제거하기 위해 절대값이 아닌 제곱(제곱합의 제곱근)을 취한 지표
논문에서는 제곱 형태인 MSE, RMSE를 더 선호하지만 현업에서는 직관적으로 볼 수 있는 MAE, MAPE를 더 많이 사용함
MSE=1nn∑i=1(yi−y′i)2,RSME=√1nn∑i=1(yi−y′i)2
댓글남기기