23.통계데이터분석 - 회귀분석 - 다중회귀분석.Rmd
0.02MB
23.통계데이터분석---회귀분석---다중회귀분석.html
1.31MB

 

 

https://www.youtube.com/watch?v=yt5vkrrAoDI&list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&index=24

1. 다중회귀분석(multiple regression analysis) 개요

  • 다중회귀분석 의미와 특징
    • 단순회귀분석으로 종속변수와 1개의 독립변수 간 선형관계 분석 가능
    • 하지만 일반적으로 하나의 독립변수만으로 종속변수를 설명하는 경우는 드뭄
      • 쌀 수확량(종석)에는 온도, 습도, 강수량 등 다양한 요인( 이 영향을 미침
      • 온라인 쇼핑몰의 구매 행위(종속)에 영향을 미치는 요인에는 가격만이 아닌
        • 품질, 서비스 같은 전통적 상거래 행위 요인
        • 쇼핑몰디자인, 시스템 반응속도, 사업자 신뢰 등 다양한 유인이 포함될 수 있음
    • 이처럼 종속변수와 2개 이상의 독립변수 간 선형관계를 도출하는 통계분석기법을 다중선형회귀분석 또는 다중회귀분석이라 함
  • p개의 예측변수를 갖는 다중회귀모델은 위 슬라이드의 수식과 같은 방식으로 정의될 수 있음
    • y 는 종속변수, \(x_1\) ~ \(x_p\) 는 독립변수를 의미함
    • \(β_0\) 는 절편, \(β_1\) ~ \(β_p\)\(x_1\) ~ \(x_p\) 까지의 변수에 대응되는 회귀계수

2. 다중회귀분석 수행 절차

2-1. mtcars 데이터셋 설명

https://youtu.be/yt5vkrrAoDI?list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&t=105

  • 32개의 자동차 모델에 대한 다양한 정보가 11개 변수에 저장됨
  • 이 변수들 가운데서 일부를 추출해 다중회귀모델을 생성하고 변수간의 관계 분석을 하고자 함
  • 분석에 사용할 변수는 연비(mpg), 배기량(disp), 마력(hp), 기어비(drat), 자동차 무게(wt)임
  • 연비(mpg)를 종속변수, 나머지를 독립변수로 지정해 연비와 나머지 자동차특성 간 관계를 분석할 것임
str(mtcars)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...
  • 이 5개 변수를 추출해 별도의 데이터셋 생성
mtcars <- mtcars[c("mpg", "wt", "hp", "disp", "drat")]
head(mtcars)
##                    mpg    wt  hp disp drat
## Mazda RX4         21.0 2.620 110  160 3.90
## Mazda RX4 Wag     21.0 2.875 110  160 3.90
## Datsun 710        22.8 2.320  93  108 3.85
## Hornet 4 Drive    21.4 3.215 110  258 3.08
## Hornet Sportabout 18.7 3.440 175  360 3.15
## Valiant           18.1 3.460 105  225 2.76

2-2. summary(),cor() - 요약통계량으로 분포, 상관계수로 변수간 관계 추정

  • 요약통계량에서 변수 분포의 대략적 추정 가능
    • 연비(mpg) 변수는 중위수가 평균보다 왼쪽에 있음
    • 마력(hp) 변수도 중위수가 평균보다 왼쪽에 있음
    • 자동차 무게(wt) 변수는 중위수가 평균보다 오른쪽에 있음
    • 중위수와 평균 위치를 토대로 대략적인 분포 모양을 짐작할 수 있음
      • 중위수가 평균보다 왼쪽에 있으면 대체로 오른쪽으로 꼬리가 긴 분포의 모양을 하고
      • 중위수가 평균보다 오른쪽에 있으면 대체로 왼쪽으로 꼬리가 긴 분포의 모양을 함
      • mpg와 hp는 오른쪽으로, wt는 왼쪽으로 꼬리가 긴 분포를 갖는다고 추정가능
  • 상관계수에서 종속변수로 사용할 연비와 나머지 4개 변수 간 관계의 대략적 파악 가능
    • 연비(mpg)는 자동차 무게(wt), 마력(hp), 배기량(disp)과 부의 선형관계를 가지며,
    • 연비(mpg)는 기어비(drat)와는 정의 선형관계를 가짐
    • 그래서 “자동차의 마력이 증가하고 무게가 커지고 배기량이 커지면 연비는 줄어드는 경향이 있고, 반면 기어비가 증가하면 연비는 증가하는 경향이 있다” 라고 대략적 추정 가능
summary(mtcars)
##       mpg              wt              hp             disp      
##  Min.   :10.40   Min.   :1.513   Min.   : 52.0   Min.   : 71.1  
##  1st Qu.:15.43   1st Qu.:2.581   1st Qu.: 96.5   1st Qu.:120.8  
##  Median :19.20   Median :3.325   Median :123.0   Median :196.3  
##  Mean   :20.09   Mean   :3.217   Mean   :146.7   Mean   :230.7  
##  3rd Qu.:22.80   3rd Qu.:3.610   3rd Qu.:180.0   3rd Qu.:326.0  
##  Max.   :33.90   Max.   :5.424   Max.   :335.0   Max.   :472.0  
##       drat      
##  Min.   :2.760  
##  1st Qu.:3.080  
##  Median :3.695  
##  Mean   :3.597  
##  3rd Qu.:3.920  
##  Max.   :4.930
cor(mtcars)
##             mpg         wt         hp       disp       drat
## mpg   1.0000000 -0.8676594 -0.7761684 -0.8475514  0.6811719
## wt   -0.8676594  1.0000000  0.6587479  0.8879799 -0.7124406
## hp   -0.7761684  0.6587479  1.0000000  0.7909486 -0.4487591
## disp -0.8475514  0.8879799  0.7909486  1.0000000 -0.7102139
## drat  0.6811719 -0.7124406 -0.4487591 -0.7102139  1.0000000

2-3. scatterplotMatrix() - 산점병렬을 통한 시각화로 변수 간 관계 분석

  • 회귀분석 전 산점병렬을 그려 변수 간 관계를 시각적으로 살펴보는 것은 데이터셋을 이해하는 데 도움이 될 수 있음
  • scatterplotMatrix()는 산점도, 산점도를 통과하는 선형회귀선의 직선, 곡선 형태의 loess 추세선, 밀도도표와 러그도표도 출력 해 변수 간 관계를 다양한 형태로 살펴보게 하는 그래프 생성
  • scatterplotMatrix() 인수 설명
    • 1st: 데이터셋 지정
    • pch인수: 산점도 점으로 사용할 심볼. 19를 지정해 색깔로 채워지는 동그라미로 사용
    • col: 점의 색상 지정
    • cex: 점의 크기. 여기서는 표준사이즈 보다 약간 크게 만듦
    • regLine: 산점도 상 을 통과하는 직선을 그림. 리스트 구조 형태로 인수지정
      • method: lm지정하면 선형회귀분석 결과 생성되는 직선을 그림
      • lty: 선의 유형 지정. 1을 지정하면 실선이 사용됨
      • lwd: 선의 굵기 지정
      • col: 선의 색상 지정
    • smooth: 산점도 상 을 통과하는 곡선의 추세선을 그림. 리스트 구조 형태로 인수지정
      • smoother: 곡선의 추세선을 만드는 방법 지정. 여기서는 loessLine을 지정해 loess추세선을 그림
      • spread: FALSE 지정하면 추세선 양쪽에 나타나는 변동성을 보여주는 선을 그래프 상에서 생략함
      • lty.smooth: 곡선 추세선의 선의 유형 지정. 1을 지정해 실선으로 표현
      • lwd.smooth: 선의 굵기 지정
      • col. smooth: 선의 색상 지정
    • main : 그래프의 제목 지정
  • 결과해석
    • 비대각선셀은 산점도. 직선으로 표현되는 선형회귀선, 곡선으로 표현되는 loess추세선출력
      • 선형회귀선은 빨간색, loess추세선은 녹색으로 출력
    • 대각선셀은 밀도도표와 러그도표 출력
      • 연비(mpg)와 마력(hp)은 오른쪽, 자동차 무게(wt)는 왼쪽으로 꼬리가 긴 분포를 가짐
      • 배기량(disp)과 기어비(drat)는 봉우리가 2개인 바이모달 형태의 쌍봉형 분포를 보임
    • 추세선을 보면, 연비(mpg)비는
      • 마력(hp), 자동차 무게(wt), 배기량(disp)과 부의 선형관계
      • 기어비(drat)와는 정의 선형관계를 가지고 있음
      • 그래서 연비는 마력, 무게, 배기량이 증가함에 따라 감소하고, 기어비 상승과 함께 증가하는 경향이 있음
library(car)
scatterplotMatrix(mtcars, pch=19, col="royalblue", cex=1.2,
                  regLine=list(method=lm, lty=1, lwd=3, col="salmon"), 
                  smoother=list(smoother=loessLine, spread=FALSE, 
                          lty.smooth=1, lwd.smooth=3, 
                          col.smooth="forestgreen"),
                  main="Car Performance"
                  )

2-4. lm() - 다중회귀분석 수행

https://youtu.be/yt5vkrrAoDI?list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&t=677

  • 연비를 결과변수(종속변수), 나머지 4개 변수를 예측변수(독립변수)로 사용해 다중회귀분석 수행함
  • 다중회귀분석은 단순회귀분석을 수행시 사용했던 lm()를 그대로 사용 가능
  • lm()의 인수설명
    • 포물러 형식: 종속변수와 독립변수 간 관계 지정
      • 종속변수 mpg, 독립변수는 나머지 4개 변수임
      • 독립변수들은 + 연산자로 연결함
    • data: 데이터셋 지정
mtcars.lm <- lm(mpg ~ hp + wt + disp + drat, data=mtcars)
summary(mtcars.lm)
## 
## Call:
## lm(formula = mpg ~ hp + wt + disp + drat, data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5077 -1.9052 -0.5057  0.9821  5.6883 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 29.148738   6.293588   4.631  8.2e-05 ***
## hp          -0.034784   0.011597  -2.999  0.00576 ** 
## wt          -3.479668   1.078371  -3.227  0.00327 ** 
## disp         0.003815   0.010805   0.353  0.72675    
## drat         1.768049   1.319779   1.340  0.19153    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.602 on 27 degrees of freedom
## Multiple R-squared:  0.8376, Adjusted R-squared:  0.8136 
## F-statistic: 34.82 on 4 and 27 DF,  p-value: 2.704e-10
  • 결과해석
    • F값과 그에 대응되는 유의확률을 보면
      • F값은 34.82, 그 F값에 대응되는 p값(유의확률)은 10의 마이너스 10승 수준( 2.704e-10)의 매우 작은 값임
      • 따라서 유의수준 0.05 에 비해 p 값이 매우 작기 때문에 “다중회귀모델 회귀식은 통계적으로 유의하다” 라고 결론 내릴 수 있음
    • 개별 회귀식 유의성을 살펴보면
      • 마력(hp)과 무게(wt) 변수의 유의확률은 유의수준 0.05에 비해 모두 작음
        • 따라서 “이 두 개 변수는 유의수준 0.05에서 통계적으로 유의하다”고 할 수 있음
        • 이 두 변수의 계수는 0이라 볼 수 없고, 마력(hp)과 무게(wt)는 연비(mpg)와 선형적 관련성을 갖는다” 라고 결론을 내릴 수 있음
      • 배기량(disp)과 기어비(drat) 변수는 유의수준 0.05에 비해 모두 큼
        • 따라서 이 두 변수는 유의수준 0.05에서 통계적으로 유의하지 않음
        • 모집단에서 계수가 0일 가능성을 배제할 수 없다”는 뜻이고 이는 “이 두 개 변수는 연비와 관련성이 없을 수 있다”는 것을 의미함
    • R스퀘어 값을 볼 때, 회귀모델의 예측변수들은 연비의 변동성을 83.76% 설명함
    • 수정된 R스퀘어는
      • R스퀘어와 유사하지만 모델에 포함된 예측변수의 개수를 고려한다는 차이가 있음
      • 보통 다중회귀모델에서 예측변수 개수가 증가하면 R스퀘어(모델설명력)값은 언제나 증가
      • 따라서 예측변수가 많다는 이유만으로 설명력이 우수한 모델인 것처럼 보일 수 있음
      • 이러한 R스퀘어의 단점을 보완하기 위해 수정된 R스퀘어는 모델에 포함된 예측변수 개수에 따라 R스퀘어 값을 보정해 줌
    • 수정된 R스퀘어는 모델의 과적합을 방지하여 일반화 가능성을 높임
      • 예측변수 개수가 표본크기에 비해 많으면 회귀모델은 과적합 가능성이 커지기 때문에
      • 현재 데이터는 잘 설명해도 다른 데이터는 기대만큼 설명력을 보여주지 못할 수 있음
      • 다시 말해서 일반화의 가능성이 떨어질 수가 있음
      • 수정된 R스퀘어는 이러한 과적합의 위험을 고려해 예측변수 개수가 많을수록 패널티를 부여해 좀 더 보수적인 R스퀘어를 산출함
      • 그래서 수정된 R스퀘어 값은 R스퀘어에 비해 항상 작음
        • 수정된 R스퀘어: 0.8136, R스퀘어: 0.8376 임

3. 회귀계수의 의미

  • 2개 이상 독립변수가 포함된 회귀모델에서, 특정 독립변수의 회귀계수는 다른 독립변수의 변화가 없다는 가정하에 그 변수가 한 단위만큼 변화 할 때 종속변수의 변화량을 나타냄
    • 무게의 회귀계수가 -3.48인데 이는 무게 한 단위 증가는 (마력, 배기량, 기어비가 연비에 미치는 영향력이 일정하다는 가정하에서) 연비를 3.48 단위만큼 감소시킴을 나타냄
    • 무게는 1000파운드/연비는 갤런당 마일로 측정돼, 무게 1000파운드 증가 시 연비는 갤런당 3.48마일만큼 감소한다는 의미임
  • 독립변수 계수의 변동성
    • 각 독립변수의 계수는 모델에 포함된 다른 독립변수의 영향을 받기 때문에 모델에 함께 포함된 독립변수에 따라 회귀계수 값이 변할 수 있고 그 회귀계수 유의성이 변하기도
    • 즉, 독립변수의 회귀계수 및 유의성은 불변이 아니고 모델에 함께 투입된 독립변수가 무엇이냐에 따라 항상 달라질 수 있음
  • 회귀계수의 크기는 변수의 설명력 정도와 큰 관련성이 없음
    • 이는 회귀계수 크기는 대개 변수의 측정단위와 관계가 있기 때문임
    • 따라서 회귀계수 크기만을 보고 어느 변수의 예측력이 더 큰지를 얘기할 순 없음
    • cm 로 측정된 키, kg 으로 측정된 몸무게, 인치로 측정된 허리둘레로 구성된 회귀식으로 종속변수인 비만 정도를 예측하고자 할 때, 회귀계수만 보고 어느 변수가 비만 정도 예측에 더 큰 기여를 하는지 얘기하기 어렵움
    • 이는 독립변수 단위가 서로 달라 직접적 비교가 불가능하기 때문임
  • 회귀계수는 측정단위를 무엇으로 사용하느냐에 따라서도 크게 달라짐
    • cm 로 측정된 변수에 대한 회귀계수는 mm 로 측정된 경우에 비해 10배 더 큼
    • 따라서 키를 mm 로 측정하면 회귀계수는 또 달라지게 됨
    • 이 경우에 변수 간 비교를 위해 사용할 수 있는 것이 표준화 계수인 베타($β$)임

4. scale(),lm.beta() - 표준화된 회귀계수(베타 \(β\)) 추출하기

4-1. scale() - 표준화된 회귀계수 추출

  • 회귀계수 크기로 종속변수에 대한 독립변수 영향력 비교를 위해 표준화계수로 변환이 필요함
  • 표준화 계수 베타(\(β\))
    • 독립변수와 종속변수를 평균 0, 표준편차 1로 표준화한 후 회귀분석으로 얻은 계수임
    • 즉, 독립변수와 종속변수를 표준점수로 변환 해 회귀분석을 수행해 얻은 회귀계수임
    • 배타는 종속변수에 대한 독립변수의 영향력을 비교할 때 유용
    • 이제는 측정단위가 통일됐기 때문에 회귀계수 크기를 가지고 독립변수 간 어느 변수가 종속변수에 미치는 영향이 더 큰 지를 확인 가능

https://youtu.be/yt5vkrrAoDI?list=PLY0OaF78qqGAxKX91WuRigHpwBU0C2SB_&t=1139

  • scale()로 변수의 표준화 가능
mtcars.lm <- lm(scale(mpg) ~ scale(hp) + scale(wt) + scale(disp) + scale(drat), data=mtcars)
summary(mtcars.lm)
## 
## Call:
## lm(formula = scale(mpg) ~ scale(hp) + scale(wt) + scale(disp) + 
##     scale(drat), data = mtcars)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.58201 -0.31611 -0.08391  0.16295  0.94382 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  8.397e-17  7.633e-02   0.000  1.00000   
## scale(hp)   -3.957e-01  1.319e-01  -2.999  0.00576 **
## scale(wt)   -5.649e-01  1.751e-01  -3.227  0.00327 **
## scale(disp)  7.846e-02  2.222e-01   0.353  0.72675   
## scale(drat)  1.569e-01  1.171e-01   1.340  0.19153   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4318 on 27 degrees of freedom
## Multiple R-squared:  0.8376, Adjusted R-squared:  0.8136 
## F-statistic: 34.82 on 4 and 27 DF,  p-value: 2.704e-10
  • 결과해석
    • 이 회귀계수는 측정단위 영향을 없앤 표준화 상태이기 때문에 크기를 직접 비교 할 수 있음
    • 절대값으로 봤을 때, 무게 > 마력 > 기어비 > 배기량 순으로 큰 회귀계수를 가지고 있음
    • 이 크기 순으로 종속변수인 연비에 미치는 영향 차이가 있음을 알 수 있음
      • 가장 크게 연비에 영향을 미치는 요인은 무게
      • 가장 작게 연비에 영향을 미치는 요인은 배기량

4-2. lm.beta() - 표준화된 회귀계수 추출

  • lm.beta()로 좀더 쉽게 베타(\(β\)) 회귀계수를 추출할 수 있음
  • 일반적 다중회귀분석 수행과 같이, 다중회귀모델을 구축 후, 그 결과를 lm.beta() 인수로 지정
library(QuantPsyc)
mtcars.lm <- lm(mpg ~ hp + wt + disp + drat, data=mtcars)
lm.beta(mtcars.lm <- lm(mpg ~ hp + wt + disp + drat, data=mtcars))
##          hp          wt        disp        drat 
## -0.39569926 -0.56491388  0.07845695  0.15685187
  • 결과해석
    • 독립변수 별로 표준화된 회귀계수 베타(\(β\))를 얻을 수 있음
    • 표준화 계수 베타(\(β\))에서 wt > hp > drat > disp 순으로 종속변수 mpg에 미치는 영향이 큼

+ Recent posts