1. 회귀분석(★)

  • 단수회귀와 중귀회분석의 개념

    • 회귀분석 : 변수와 변수 사이의 관계를 알아보기 위한 통계적 분석 방법, 독립변수의 값에 의하여 종속변수의 값을 예측하기 위함

      • 독립변수 : 종속변수에 영향을 미치는 변수

      • 종속변수 : 분석의 대상이 되는 변수

  • 선형회귀모형

    • X와 Y가 1차식으로 나타날 때 선형회귀모형이 됨, 전제조건이 있음

      1. 독립변수 X의 각 값에 대한 Y의 확률분포가 존재

      2. Y의 확률분포의 평균은 X값의 변함에 따라 일정한 추세를 따라 움직임

단순회귀모형 식

  • 단순회귀모형

    • Y_i : i 번째 종속변수의 값

    • X_i : i 번째 독립변수의 값

    • β_0 : 선형회귀식의 절편

    • β_1 : 선형회귀식의 기울기

    • ε_i : 오차항 , 독립저이며 N(0,δ^2)의 분포를 이룸

  • 회귀모형 대한 가정

    1. 선형성 - 독립변수의 변화에 따라 종속변수도 변화하는 선형(Linear)인 모형

    2. 독립성 - 잔차와 독립변수의 값이 서로 독립

    3. 등분산성 - 오차항들의 분포는 동일한 분산

    4. 비상관성 - 잔차들끼리 상관이 없음

    5. 정상성 - 잔차항이 정규분포를 이뤄야함

  • 회귀분석 모형에서 확인해야 할 사항

    • 모형이 통계적으로 유의미한가? -> 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

+ Recent posts