본문 바로가기
Today I Learned!/Data Science

통계학 (9) - 회귀분석

by ENTJ의 자기계발 2023. 12. 13.

- 이 글은 유튜브 Sapientia a Del, 곽기영 교수님, 통계파랑 님을 참고하였습니다.

 

 

회귀분석 (Ordinary Least Square)


- 목적 : 주어진 독립변수로 종속변수를 예측

  - 예측을 위해 필요한 합리적인 추세선을 세우는 것

- 직선의 방정식 $y=a+bx+e\ ,\ \hat{y}=a+bx,\quad a:constant\ b:slope\frac{\triangle y}{\triangle x}\ e:error=y_i-\hat{y}_i$

  ⇒ 오차가 가장 작은 추세선! : 오차는 +/- 혼재되어 있으므로 오차의 제곱합이 최소화 된 추세선 필요

- 최소제곱법 : a,b를 추정하는 방법, 평균을 지나는 추세선이 가장 합리적인 최소제곱법에 의해 구해짐. 평균으로 회귀

 

 

 

회귀분석 해석


예시) 거실의 크기(원인)가 클 수록 매매 가격(결과) 이 비쌀 것이나?

 

- intercept는 우리의 관심사가 아님 ⇒ 세운 가설과 관련없음

- sqft_living의 estimate와 p-value 관심

- estimate 자체가 회귀계수 

- t-value : 해당 변수의 유의성 판단

- p-value : 가설 해석

 

 

- 표준오차 : 표본평균들의 표준 편차

  - 모집단의 평균(알 수 없음)을 평균의 참값이라고 할때, 표본집단의 평균이 얼마나 모집단의 평균과 가까운지 계산

  - 이론적으로 표본집단의 평균은 매번 다를 수 밖에 없음.⇒ 표준오차가 작으면 참값에 더 가까운 것

  - 같은 회귀식이나 다른 결과 : 직선을 중심으로 퍼짐 정도의 차이 ⇒ 많이 퍼졌으면 우연일 가능성이 높다, 유의하지 않을 것, p-value > 0.05

  - 회귀 방정식의 x가 1증가했을 때, y가 2.4 증가한다는 결과가 우연히 발생하지 않았을까?(통계적 사고방식) 그 우연의 확률은 어떻게 될 것인가? 최소제곱법으로는 알 수 없으므로 비교대상이 필요한다. t-test 이용

  - t-test 계산

$$ t-value = \frac{\beta}{SE_{β}=\frac{2.4}{0.82}=2.93},\quad df=1,\quad t-value_{df=1}=2.93,\quad p-val=0.21 $$

 

- 왜 t-test?

  - 회귀분석 가설 $H_0:\beta=0,\quad H_a:\beta\neq 0 $

  - t-test 가설 $H_0:mean_1-mean_2=0,\quad H_a:mean_1-mean_2\neq 0 $

  - t-test예제를 회귀분석으로 $t-value=\frac{기울기}{표준오차}=\frac{\frac{평균_{집단1}-평균_{집단2}}{1-0}}{표준오차} $

    ⇒  실제 기울기가 0인지 아닌지 테스트, 회귀계수(기울기)는 결국 t-test 평균값 차이와 동일한 개념

  - 기울기 0 : 독립변수가 증가해도 종속변수는 변화 없어 유의하지 못함(독립변수가 원인의 역할을 못하므로) → 표준오차가 아무리 작아도 의미가 없음 ⇒ 회귀분석은 산포도를 꼭 적용해보아야 함(직선형태의 데이터 분포가 나타나지 않으면 다른 방법 찾아야 함)

  - 독립변수가 증가할 수록 자유도도 증가하고, t-value는 작아져서 유의하지 않아짐. (비용 개념)

 

- 표준화계수 $\beta$ : 종속변수에 대한 독립변수들의 단위를 통일시킨 계수

- 종속변수 : 주택가격

- 독립변수 : 거실사이즈, 주택 층수, 수영장 유무

 

- 모든 독립변수를 같은 단위 상에서 비교 가능

- 표준화계수 : 원점을 지나가는 회귀직선 & 절편 0

  - 아예 모든 독립변수를 표준화시킨 후 회귀분석 가능

$$ 표준화계수 = 비표준화계수 / \frac{SD_y}{SD_x} $$

$$ sqft_living: 271\times(918\div367127)=0.677 $$

⇒ 세 독립변수 중 거실의 표준화계수가 가장 크므로 영향력이 가장 크다

- 표준화계수로 크기를 비교할 수 있으나, 이 표준화계수의 차이가 우연히 발생한 것인지 추가적인 테스트 필요

 

- 해석 방법

  "거실 사이즈가 1표준편차만큼 커지면 주택가격이 1 표준편차 * 0.6773 달러 만큼 오른다. → 거실 사이즈가 918ft^2 커지면 주택 가격은 367127*0.6773=248655 달러 오른다.

⇒ 보통은 비표준화 계수로 설명하고, 표준화계수는 자세히 설명안함

 

- 표준화 계수를 쓰는 이유

1) 논리적으로 영점을 회귀직선이 지나가야하는 경우

  - 경제학 : 수입 지출의 관계 분석 시 대부분 영점을 지나가지 않음(수입이 0인 사람이 데이터에 없으므로) ⇒ 강제로 표준화계수를 써서 지나가게 함

2) 여러 독립변수 등 가장 영향력이 큰 변수를 찾기 위해서 : 상대적 중요도

  - 어떤 독립변수의 표준화 계수가 가장 클 수는 있으나, 통계적으로 가장 큰 것인지는 추가적인 테스트 필요

  - 표준화계수가 비슷할 경우 약간의 크고 작음은 통계적 유의성이 없을 수 있음

  

 

R2 해석


- 회귀분석 : 종속변수와 독립변수의 인과관계를 전제하고, 종속변수의 분산을 독립변수로 설명하는 과정, 우리의 모델(독립변수)이 큰 문제가 없다면 설명하고 남은 오차는 random한 오차

$$R^2 =\frac{SSR}{SST}=1-\frac{SSE}{SST}$$

$$ SST=\sum(y_i-\bar{y_i})^2,\quad SSE=\sum(y_i-\hat{y_i})^2 $$

  - R2 : 모델의 분산 설명력, 우리가 만든 모델이 얼마나 데이터를 잘 설명했는 가

    - 높으면 무조건 좋은가? 잔차도가 랜덤하게 분포함을 확인해야함

    - 의미없는 독립변수 추가도 R2를 약간이라도 증가시키나, 자유도를 증가시켜 이용을 발생하며, 높은 R2는 과적합문제 발생 가능

  - 잔차도 (residual plot): "모델에 큰 문제가 없다면 모델로 설명하고 남은 오차는 random한 오차"라는 전제 증명용

 

- adj-R2 

  - 독립변수 증가에 따른 자유도 손실에 대한 보정 필요, 자유도 1을 잃고도 충분히 분산을 설명했는가.

  - 보통 R2와 함께 리포트하며, 크기가 심하게 다르면 의미없는 독립변수를 너무 많이 넣었다는 의미

  - 모델에 사용된 독립변수의 논리성과 이론적 근거 병기 필요

 

- 과적합 : 모델이 이번에 수집한 표본에서만 높은 R2를 보이면 우연일 수 있다. 

  - Cross-validation 적용 : 표본을 랜덤하게 둘로 나누어 한 표본 모델 구축 후 다른 표본에서 모델의 적합성 테스트

 

 

 

 

더미변수의 활용


- 더미변수 : 값이 오직 0,1로 이루어진 변수, 0,1에는 수리적 의미는 없고 범주의 의미만 있음

  - 범주가 3개 이상이어 1,2,3 이런식으로 사용할 경우, 순수한 연속형 변수가 되어 문제가 됨(순서, 등간의미 포함)

- 필요한 변수 개수 = 범주의 개수 - 1 (변수 하나가 더 만들 시 dummy trap 발동하여 회귀분석 되지 않음)

- 해석 : 제거된 범주가 비교의 기준이 됨(reference group, 모든 더미변수에서 0인 범주)

  - credit card 지불 고객과 bank transfer고객 간의 총 지불금액은 유의한 차이가 없다.

  - Electronic check 지불 고객과 bank transfer고객 간의 총 지불금액은 유의한 차이가 있고, electronic check 지불고객의 총 지불금액은 bank transfer고객의 총지불금액보다 유의하게 적다 (= mail check고객도 동일)

  - 만약 다른 조합을 비교하고 싶다면, 더미변수 다시 만들어야 함

 

 

 

다중공선성


- 상관관계가 매우 높은 독립변수들이 동시에 모델에 포함될 때 발생

  - 두 변수가 완벽하게 다중공선성에 걸려 있다면, 같은 변수를 두 번 넣은 것이라 최소제곱법 계산상 어려움

  - 다중공선성이 높다면 회귀계수의 표준오차가 비정상적으로 커짐→ t값이 작아짐

- 다중공선성 찾기

  - 산포도 & 상관계수 : 상관계수 0.9를 넘으면 다중공선성 문제

  - 허용/공차(tolerance) 확인

    - tolerance : 한 개의 독립변수를 종속변수로, 나머지 독립변수를 독립변수로 하는 회귀분석을 했을 때 나오는 R2를 이용해 (1-R2)를 의미, tolerance가 0이면 완벽한 상관성에 의한 다중공선성이 심각함 의미 

  - 분산팽창지수 (Variance Inflation Factor) $VIF=1\div tolerance = 1 \div (1-R^2)$

    - 연속형인 경우 : 일반적으로 10보다 크면 문제

    - 더미형 : 3이상이면 큰 문제

  - 상태지수 Condition Index : 100이상이면 심각한 다중공선성

 

- 다중공선성 해결

1) 다중공선성이 큰 변수가 유의한지 확인 필요 ⇒ 연구자의 의도와 변수의 유의성에 따라 결정 필요

  - 다중공선성이 커도 유의하다면 → 표준오차가 비정상적으로 팽창되어도 유의하다, 그 자체로 유의하다는 의미

  - 조절효과를 확인하기 위해 교호작용 변수를 추가하는 경우 연구자가 의도적으로 넣음으로써 어느정도 다중공선성 피할 수 없음

2) 해당 변수를 제거

  - 가장 일반적, 해당 변수가 연구의 중심이 되는 중요변수일 경우 문제 ⇒ 근본적인 원인은 기존 연구 및 이론/논리적 구성이 사전에 부족

3) 주성분 분석으로 변수를 재조합

  - 겹치는 분산을 제거하는 효과, 제거된 분산이 꼭 겹치는 것 만은 아니어서 경우에 따라 재조합 된 변수들이 이상한 결과 가능

4) 다중공선성이 발생한 독립변수 합침

  - 다중공선성이 높은 변수는 결국 비슷, 합쳐서 회귀분석에 사용할 수 있으나 해석이 어려워짐

  - 평균을 사용하나 완벽하진 않음

5) 능형 회귀분석

6) Mean centering

  - 모든 변수를 각 변수의 평균값으로 뺀 뒤에 회귀분석

 

 

 

이분산성(Heteroskedasticity)


- 분산이 다르다. 회귀계수의 표준오차(분산)이 다르다는 의미

⇒ 회귀계수의 유의성 판단하기 위해서 t-값 계산하는데, 표준오차가 이분산성을 띄게 되면 하나의 수로 나타낼 수 없음

 

→ 거실 크기가 커질 수록, 회귀계수의 표준오차가 커짐

⇒ 표준오차는 독립변수 거실크기의 함수로 표현될 수 있음

 

 

 

 

 

 

 

- 이분산성을 확인하는 방법 => 이분산성이 있으면, 독립변수의 유의성에 대한 확신을 가질 수 없음

  - 산포도, 잔차도

  - White test / Goldfeld-Quandt test / Breusch-Pagan test : 유의하면 이분산성 존재

 

- 이분산성을 해결하는 방법 : 완벽한 해결이 어려움

1) (heteroskdastistic) robust standard error 사용 : 계산 복잡, 많이 사용

2) Weighted least square regression

  - 이분산성 함수를 찾아서 그 역함수로 독립변수를 만들어 추가하는 OLS

  - 이분산성의 역함수를 찾는 것이 쉽지않아 현실적으로 어려움

3) GLS/FGLS regression : 근본적으로 WLS 동일한 개념이나, 현실적으로는 어려움

 

 

댓글