1. 회귀분석(★)
-
단수회귀와 중귀회분석의 개념
-
회귀분석 : 변수와 변수 사이의 관계를 알아보기 위한 통계적 분석 방법, 독립변수의 값에 의하여 종속변수의 값을 예측하기 위함
-
독립변수 : 종속변수에 영향을 미치는 변수
-
종속변수 : 분석의 대상이 되는 변수
-
-
-
선형회귀모형
-
X와 Y가 1차식으로 나타날 때 선형회귀모형이 됨, 전제조건이 있음
-
독립변수 X의 각 값에 대한 Y의 확률분포가 존재
-
Y의 확률분포의 평균은 X값의 변함에 따라 일정한 추세를 따라 움직임
-
-
-
단순회귀모형
-
Y_i : i 번째 종속변수의 값
-
X_i : i 번째 독립변수의 값
-
β_0 : 선형회귀식의 절편
-
β_1 : 선형회귀식의 기울기
-
ε_i : 오차항 , 독립저이며 N(0,δ^2)의 분포를 이룸
-
-
회귀모형 대한 가정
-
선형성 - 독립변수의 변화에 따라 종속변수도 변화하는 선형(Linear)인 모형
-
독립성 - 잔차와 독립변수의 값이 서로 독립
-
등분산성 - 오차항들의 분포는 동일한 분산
-
비상관성 - 잔차들끼리 상관이 없음
-
정상성 - 잔차항이 정규분포를 이뤄야함
-
-
회귀분석 모형에서 확인해야 할 사항
-
모형이 통계적으로 유의미한가? -> F분포값과 유의확률(p-value)로 확인
-
회귀계수들이 유의미한가? -> 회귀계수의 t값과 유의확률(p-value)로 확인
-
모형이 얼마나 설명력을 갖는가? -> 결정 계수를 확인
-
모형이 데이터를 잘 적합하고 있는가? -> 잔차통계량을 확인하고 회귀진단 실행
-
-
모델 진단 그래프
-
Residuals vs Fitted : y축은 잔차. 선형 회귀에서 오차는 평균이 0 이고 분산이 일정한 정규분포를 가정 -> y값은 기울기가 0 인 직선이 이상적
-
Normal Q-Q : 잔차가 정규분포를 잘 따르고 있는지를 확인하는 그래프(잔차들이 선상에 있어야 이상적)
-
Scale-Location : y축은 표준화 잔차. 기울기 0이 이상적, 0에서 멀리 떨어진 값 : 이상치일 가능성 높음
-
Cook's Distance : 1값이 넘어가면 관측치를 영향점으로 판별
-
-
다중공선성
-
모형의 일부 예측변수가 다른 예측변수와 상관되어 있을 때 발생하는 조건
-
VIF 값이 4가 넘으면 다중공선성 존재
-
해결방안 : 높은 상관관계가 있는 예측변수를 모형에서 제거 (R-Square 감소)
-
-
-
최적 회귀방정식의 선택 : 설명변수의 선택
-
y에 영향을 미칠 수 있는 모든 설명변수 x들은 y의 값을 예측하는 데참여
-
가능한 범위내에서 적은 수 의 설명변수를 포함시켜야함
-
-
설명 변수를 선택하는 방법
-
모든 가능한 조합의 회귀분석
-
AIC , BIC
-
적합성을 측정해주는 지표. AIC,BIC 값이 작은 것이 좋음
-
-
-
단계별 변수선택
-
단계별 선택
-
통계치에서 가장 도움이 안되는 변수를 삭제, 기준 통계치를 가장 개선시키는 변수 추가
-
-
후진 제거법
-
기준 통계치에서 가장 도움이 되지 않는 변수를 하나씩 제거
-
-
전진 선택법
-
절편만 있는 모델에서 기준 통계치를 많이 개선 시키는 변수를 차례로 추가
-
-
step() 함수로 수행
-
-
> x1<-c(7,1,11,11,7,11,3,1,2,21,1,11,10)
> x2<-c(26,29,56,31,52,55,71,31,54,47,40,66,68)
> x3<-c(6,15,8,8,6,9,17,22,18,4,23,9,8)
> x4<-c(60,52,20,47,33,22,6,44,22,26,34,12,12)
> y<-c(78.5,74.3,104.3,87.6,95.9,109.2,102.7,72.5,93.1,115.9,83.8,113.3,109.4)
> df<-data.frame(x1,x2,x3,x4,y)
####변수 설정####
> head(df)
x1 x2 x3 x4 y
1 7 26 6 60 78.5
2 1 29 15 52 74.3
3 11 56 8 20 104.3
4 11 31 8 47 87.6
5 7 52 6 33 95.9
6 11 55 9 22 109.2
#### 후진제거법 ####
> a<-lm(y~x1+x2+x3+x4,data=df)
> a
Call:
lm(formula = y ~ x1 + x2 + x3 + x4, data = df)
Coefficients:
(Intercept) x1 x2 x3 x4
62.4054 1.5511 0.5102 0.1019 -0.1441
> summary(a)
Call:
lm(formula = y ~ x1 + x2 + x3 + x4, data = df)
Residuals:
Min 1Q Median 3Q Max
-3.1750 -1.6709 0.2508 1.3783 3.9254
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 62.4054 70.0710 0.891 0.3991
x1 1.5511 0.7448 2.083 0.0708 .
x2 0.5102 0.7238 0.705 0.5009
x3 0.1019 0.7547 0.135 0.8959
x4 -0.1441 0.7091 -0.203 0.8441
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.446 on 8 degrees of freedom
Multiple R-squared: 0.9824, Adjusted R-squared: 0.9736
F-statistic: 111.5 on 4 and 8 DF, p-value: 4.756e-07
## Pr(>|t|) (유의확률(P-value))가 가장 높은 x3 제거
> a<-lm(y~x1+x2+x4,data=df)
> a
Call:
lm(formula = y ~ x1 + x2 + x4, data = df)
Coefficients:
(Intercept) x1 x2 x4
71.6483 1.4519 0.4161 -0.2365
> summary(a)
Call:
lm(formula = y ~ x1 + x2 + x4, data = df)
Residuals:
Min 1Q Median 3Q Max
-3.0919 -1.8016 0.2562 1.2818 3.8982
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 71.6483 14.1424 5.066 0.000675 ***
x1 1.4519 0.1170 12.410 5.78e-07 ***
x2 0.4161 0.1856 2.242 0.051687 .
x4 -0.2365 0.1733 -1.365 0.205395
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.309 on 9 degrees of freedom
Multiple R-squared: 0.9823, Adjusted R-squared: 0.9764
F-statistic: 166.8 on 3 and 9 DF, p-value: 3.323e-08
## 유의확률이 가장 높은 x4 제거
> a<-lm(y~x1+x2,data=df)
> summary(a)
Call:
lm(formula = y ~ x1 + x2, data = df)
Residuals:
Min 1Q Median 3Q Max
-2.893 -1.574 -1.302 1.363 4.048
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 52.57735 2.28617 23.00 5.46e-10 ***
x1 1.46831 0.12130 12.11 2.69e-07 ***
x2 0.66225 0.04585 14.44 5.03e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.406 on 10 degrees of freedom
Multiple R-squared: 0.9787, Adjusted R-squared: 0.9744
F-statistic: 229.5 on 2 and 10 DF, p-value: 4.407e-09
####전진 선택법####
> step(lm(y~1,df),scope=list(lower=~1,upper=~x1+x2+x3+x4),direction="forward")
Start: AIC=71.44
y ~ 1
Df Sum of Sq RSS AIC
+ x4 1 1831.90 883.87 58.852
+ x2 1 1809.43 906.34 59.178
+ x1 1 1450.08 1265.69 63.519
+ x3 1 776.36 1939.40 69.067
<none> 2715.76 71.444
Step: AIC=58.85
y ~ x4
Df Sum of Sq RSS AIC
+ x1 1 809.10 74.76 28.742
+ x3 1 708.13 175.74 39.853
<none> 883.87 58.852
+ x2 1 14.99 868.88 60.629
Step: AIC=28.74
y ~ x4 + x1
Df Sum of Sq RSS AIC
+ x2 1 26.789 47.973 24.974
+ x3 1 23.926 50.836 25.728
<none> 74.762 28.742
Step: AIC=24.97
y ~ x4 + x1 + x2
Df Sum of Sq RSS AIC
<none> 47.973 24.974
+ x3 1 0.10909 47.864 26.944
Call:
lm(formula = y ~ x4 + x1 + x2, data = df)
Coefficients:
(Intercept) x4 x1 x2
71.6483 -0.2365 1.4519 0.4161
-
AIC : Step() 함수이용
-
BIC : leaps 패키지의 redsubsets() 함수 이용
-
정규화 선형회귀
-
선형회귀계수에 대한 제약 조건을 추가 ( 과적합을 막는 방법 )
-
딥러닝에서의 과적합 막는 방법
-
더 많은 데이터 사용
-
Cross Validation
-
정규화(Regularization) - Ridge 회귀모형, Lasso 회귀모형 , Elastic Net 회귀모형
-
-
-
Lidge (릿지) 회귀
-
평균제곱오차(MSE)를 최소화하면서 회귀계수 벡터 β 의 L2 norm 을 최소화 하는 기법
-
cost = ∑(e_i)^2 + λ∑(ω_i)^2
-
λ는 기존 잔차 제곱합과 추가적 제약 조건의 비중을 조절하기위한 하이퍼모수
-
클수록 정규화 정도가 커지고 가중치 값들이 작아짐 -> 0이 되면 선형회귀모형
-
-
Norm은 벡터의 길이 혹은 크기를 측정하는 방법(함수)
-
L1 Norm(라소회귀) - 각 요소 절댓값 크기의 합
-
L2 Norm(릿지회귀) - 해당 차원의 좌표평면에서 원점에서 백터 좌표까지의 최단 거리
-
-
-
Lasso (라소) 회귀
-
L1 Norm을 제약함 ( 가중치의 절댓값의 합을 최소화 )
-
cost = ∑(e_i)^2 + λ∑|ω_i|
-
-
Elastic Net (엘라스틱넷) 회귀 모형
-
제약식에 Norm 모두를 쓰는 기법
-
-
'ADSP > 3강) 데이터 분석' 카테고리의 다른 글
[6] 시계열 예측 (0) | 2020.02.13 |
---|---|
[5] 기초 통계분석(2) (0) | 2020.02.12 |
[3] 통계분석 (0) | 2020.02.07 |
[2] 데이터 마트 (0) | 2020.02.06 |
[1] R 기초 (0) | 2020.02.06 |