- POSTECH에서 제공하는 MOOC 중, 데이터사이언스를 위한 통계학입문 Ⅱ 과정입니다.
Ⅷ. 회귀분석을 이용한 예측모형
1. 선형모형의 특성과 상관분석
데이터의 상관관계
- 데이터 탐색: 변수 간 관계
- 변수 간 상관관계 여부
- 상관관계 형태
상관계수(Pearson’s)
- 상관계수(correlation coefficient)
- 두 변수 간 선형관계의 강도를 나타내주는 척도
- 상관계수(r) 절댓값은 0-1 사이
- 0에 가까울수록 상관관계가 없음
- 1에 가까울수록 강한 상관성이 있음
정리
- 상관계수 및 변수 간 산점도: 데이터 탐색
- X, Y 간 선형관계를 산점도에 도식화
- X, Y 간 선형함수식 추정: 회귀모형
- Y 분산에 관한 독립변수를 추가함으로써 선형모형 설명력 향상
2. 실제데이터 예측모형구현
회귀모형의 적합 조선
회귀분석- 예측모형
회귀분석의 목적: 예측(prediction)과 추정(estimation)
- 선형모형: 독립변수와 종속변수 관계가 선형식으로 적합
- 최소자승법(least squares method): 예측값과 관측치 오차를 최소화시키는 회귀계수 추정
- 선형모형: 독립변수와 종속변수 관계가 선형식으로 적합
예측 모형
- 회귀 계수(regression coefficient)와 독립변수의 선형 결합으로 표현되는 예측모형
- Y = β
0+ β1x1+ β2x2+ … + βkxk- Y: 종속변수(dependent variable), 반응변수, 타겟변수
- x: 독립변수(independent variable), 설명변수, 원인 역할을 하는 변수
회귀모형의 적합도 및 회귀성 검정
- 모형의 적합도와 결정계수 (R^2^)
- 회귀식이 데이터를 얼마나 잘 설명하는지에 관한 척도
- 회귀모형으로 설명할 수 있는 부분의 비율
- 0 ≤ R^2^ ≤ 1
- R^2^ = $\frac{SSR}{SST}$ = 1 - $\frac{SSE}{SST}$
회귀모형의 가정과 진단
가정
- X와 Y는 선형적 관계
- 오차항(ε
i)은 정규분포를 따름 - 오차항의 평균은 0
- 오차항의 등분산성
- 오차항은 서로 독립
진단
- 잔차 e
i와 Y 산점도 - 스튜던트화 잔차
- 정규확률분포도
- 잔차 e
회귀계수에 대한 검정
β
1관한 t-검정- 해당 독립변수가 유의한 영향을 갖고 있는지 판단
회귀계수의 p-value
- 특정변수의 회귀계수에 관한 p-value가 유의수준(α)보다 작으면 그 변수는 유의(significant)하다고 판단
정리
- 회귀모형의 적합도 검정
- 이론적인 모형이 실제 관측 데이터에 의해 어느 정도 지지를 받는지 검정하는 것
- R^2^ 결정계수: 회귀모형의 설명력
- 개별 β
k값 검정: 어떤 변수가 중요한지 - 잔차에 관한 가정 확인: 잔차산점도
- 이론적인 모형이 실제 관측 데이터에 의해 어느 정도 지지를 받는지 검정하는 것
3. 회귀모형의 적합조건
실제 데이터로 예측모형 구현
- 다중회귀모형(multiple regression)
- 종속변수 Y를 설명하는 데 k개의 독립변수가 있을 때의 회귀모형
- Y
i= β0+ β1x1+ β2x2+ … + βkxk+ εi(잔차) - 회귀계수 β
k의 해석: 다른 독립변수가 일정할 때, Xk한 단위 변화에 따른 평균변화량
다중회귀모형 예제
1 | car <- read.csv('./data/autompg.csv') |
1 | r1 <- lm(mpg ~ disp+hp+wt+accler, data=car) |
결과 해석
- 선형회귀식: mpg = 40.88 - 0.001 disp + 0.0048 hp - 0.0061 wt + 0.17 accler
- 선형회귀식의 결정계수: R^2^ = 0.7006
- 분산을 70% 정도 설명한다고 해석할 수 있음
문제
- 마력(hp)이 높을수록 연비가 좋은가? 일반적으로는 아니기 때문에 데이터 탐색 필요
1 | var1 <- c("mpg", "disp", "hp", "wt", "accler") |
- 다중공선성(Multicollinearity)
- 독립변수들 사이 상관관계가 높은 경우
- 다중공선성이 존재하면, 회귀계수 분산이 크고 모형이 불안정
- 해당 예제에서는 disp(배기량) 제외하는 것이 더 좋음
- hp 기준으로 두 개의 모델로 분류해 예측하기
1
2
3
4car2 <- subset(car, hp<50)
attach(car2)
r2 <- lm(mpg~hp+wt+accler, data=car2)
summary(r2)1
2
3
4car3 <- subset(car, hp>=50)
attach(car3)
r3 <- lm(mpg~hp+wt+accler, data=car2)
summary(r3)
4. 예측모형의 핵심과 고려사항
분류분석- 로지스틱회귀모형
타겟변수(Y)가 범주형일 때
- binary: 2개의 범주 (보험사기, 질병)
- ordinal(서열): 서열이 있는 범주 (순위)
- nominal(명목): 서열이 없는 범주 (직업군)
로지스틱회귀모형
- Y가 범주이기 때문에 선형 조합이 나옴
- 로짓 트랜스포메이션을 해서 확률값으로 변형
1 | re <- read.csv('./data/remiss.csv') |
1 | t3 <- glm(remiss~cell+li+temp, data=re,family=binomial(logit)) |
- 결과 해석
- logistic equation
- logit(p) = 67.63 + 9.65 Cell + 3.87 Li - 82.07 Temp
- Li 1단위 증가 시 remission 확률: exp(3.867) = 47.79
- logistic equation
- 예측확률값 출력: 원래 데이터 + 예측확률값
1
2dat1_pred <- cbind(re,t3$fitted.values)
write.table(dat1_pred,file='dat1_pred.csv', row.names=FALSE, sep=",", na=" ")
예측모형 고려사항
예측모형 선택
- 예측모형(어느 모형, 어느 기법)
- 결정계수(기여율)가 높은 회귀식: 설명변수가 많을수록 결정계수가 높아짐
- 추정값의 표준오차(잔차의 표준편차)가 낮은 회귀식
- 변수 선택방법
- 모든 가능한 회귀: 모든 설명변수를 포함한 모형을 시도
- 단계적 선택법(stepwise regression): 설명변수를 단계적으로 선택하는 방법
- 예측모형(어느 모형, 어느 기법)
이상치(outlier) 탐지
- 이상치(outlier): 보편적인 데이터 값 번위를 벗어나는 데이터
- 왜곡된 예측모형 위험이 있으므로 이상치 제외 후 분석
- 이상치 탐색
- 거리 계산: 각 데이터와 독립변수 평균과의 거리가 크거나, 회귀모형에서의 잔차 이상 수치 확인
- 산점도: 변수들 간 산점도에서 탐색
정리
- 데이터 수집(DB, 설문조사)
- 종속변수(타겟변수)와 관계 있는 독립변수(설명변수) 확인
- 산포도 작성 → 데이터 특성 파악 및 이상치 탐색
- 회귀모형 결정(변수 선택/ 특징 변환)
- 회귀모형 적합도 평가