BookmarkSubscribeRSS Feed

[SAS University Edition] 가중 회귀 분석 이론& 실습 (Weighted Linear Regression)

Started ‎06-09-2020 by
Modified ‎06-09-2020 by
Views 1,695

Weighted linear Regression _이론 [weighted least square].

1. introduction

여러분들도 아시다시피, 선형회귀 분석은 등분산성 가정을 기반으로 분석이 진행됩니다. 그런데 만약 등분산성이 만족하지 않는다면 어떻게 해야 될까요?. 혹은 데이터를 조정한다고 해도, 모든 데이터를 등분산성에 만족시킬 수 있을까요? 여기서 고안된 방법이 바로 가중 선형 회귀, 일명 가중 최소 제곱법입니다.

2. Assessment

 

mteWO.png

가중회귀는 일반 선형회귀보다 조금 더 "유연하다"라고 말할 수 있습니다. 가중 최소제곱법 이라고 불리는 이 기법은, 편차를 이용한 최소제곱법에 기반하지만 조금 더 발전한 형태를 띄고 있습니다.
 

기존 최소제곱법이 잔차의 제곱을 최소로하는 거였다면, 본 기법은 잔차에 가중치를 적용한 제곱 값을 최소로 하는 기법입니다. 때문에 가중치를 어떻게 적용하냐에 따라 결과가 다양해 질 수 있습니다. 그렇다고 해서 가중 최소제곱법이 일반 (비가중) 최소제곱법보다 좋다고는 말할 수 없습니다. 하지만, 특별히 이런 모델이 고안된 이유는 어떠한 상황에서 weighted 된 제곱법이 더 정확하기 때문입니다.

예를 들어, 기존의 선형회귀분석은 등분산성을 가정하고 진행하게됩니다. 오차항의 분산이 일정하다는 것은 그만치의 오차를 예측하는데 있어 좀 더 정확한 오차를 계산할 수 있으니까요. 그런데 등분산성이 성립하지 않는 경우 , 즉 어떠한 오차의 분산은 크고, 어떠한 오차항의 분산은 작다면 여기에 가중치를 적용하여 등분산성을 맞춰주는 것입니다. .

주의해야 할 점은 빈도와 가중치는 비슷하면서도 다르다는 겁니다. 어떠한 측정값의 빈도가 많다고 해서 그 값이 더 큰 신뢰를 준다고 생각하면 이 또한 가중치가 되겠지만, 여기서 말하는 가중치는 오차항에 대한 가중치를 말하는 것입니다.

3. Methodology

우선 선형회귀와의 비교를 위해, 수식을 비교하는 식으로 개괄하겠습니다.

 

 

 

0.PNG

일반 회귀 잔차제곱합

 

1.PNG

가중 선형회귀 잔차제곱합 및 가중 변수

흥미롭게도, 가중치는 해당 관측치의 분산의 역수입니다. 등분산성이 성립되지 않으므로 잔차의 분산이 다를테고, 이것이 잔차에 적용되어 조정 파라미터 역할을 하게 됩니다. 분산이 큰 잔차는 잔차제곱합을 결정하는데 많은 역할 을 하지 못하겠군요. 반면 분산이 작은 잔차는 잔차제곱합을 결정하는데 많은 기여를 할 것으로 보입니다.

 

 

 

2.PNG

일반 선형회귀 계수 추정

 

3.PNG

가중선형회귀 계수 추정

 

가중 회귀선형 분석을 정리해보면, 어떤 가중치가 크다는 것 - 해당 가중치가 제곱합에 많은 기여를 한다 - 분산이 작은 관측치는 신뢰할 수 있다 - 분산이 큰 관측치는 신뢰하기 어렵다. 라는 결론을 내릴 수 있습니다.

 
 
 

4.PNG

일반 회귀 Gradient equation

 

5.PNG

가중 회귀 Gradient equation

 

 

 

 

예를 통해 좀 더 쉽게 이해해볼까요?

어떤 과학자가 실험을 하고 있는데, X=13 혹은 14라는 값을 세 번 실험하면 결과값이 1.5 , 3.5 , 4.5 등의 결과가 나오고, X=10혹은을 넣을때 2.9, 3.0, 3.3 등의 결과가 나옵니다. 어떤 X값이 더 신뢰가 있을까요? 분산이 작은 X=10이 더 큰 신뢰도를 갖겠죠? 과학자는 이 실험을 회귀분석으로 결과를 내고 싶은데, X=10 일때의 설명력을 다르게 적용하고 싶습니다.

이 때 사용하는 것이 "가중 선형회귀 분석"이 되는 겁니다.

그래프를 통해 예를 들어 봅시다.

 
 

image (1).png

빨간선 = 가중 회귀 / 파란선 = 일반 회귀

 

X가 13, 14로 갈 수록 관측치의 신뢰가 떨어집니다. ( 즉 관측치의 분산이 크다는 것)

X는 10에서 매우 높은 수준의 신뢰를 가집니다. ( 즉, X=10일 때 일정한 결과만 나온다는 것)

여기서 X=10일 때 높은 가중치를 갖게 되고, X=14일 때 낮은 가중치를 갖게됩니다.

그러므로 가중회귀 곡선은 x=13,14의 관측치에 영향을 덜 받게 되어 낮은 기울기를 갖게 됩니다.

4. Restriction

 

가중회귀는 일일이 관측치 X값에 따른 가중치를 계산하고, 다시 가중치를 적용한 회귀식을 산출해야하므로 많은 양의 연산이 필요합니다. 컴퓨팅 사양이 증가되면 해결될 일이겠지만, 아직도 실무데이터의 방대한 양을 처리하기엔 다소 어려움이 있어보입니다. ROI를 잘 생각하여 일반 회귀로도 충분히 유의미한 결과를 얻을 수 있는지 분석가의 판단이 필요합니다. 

 

 

Weighted linear Regression _실습

 

1. Introduction

우리는 가중 회귀 (가중 최소 제곱)의 이론과 활용 사례를 배웠습니다. 이번에는 SAS University Edition를 활용하여 가중 회귀를 구현해보도록 하겠습니다.

 

image.png

           University Edition 실행 화면입니다.​

 

2. Data

​데이터는 SAS Global 커뮤니티의 Rick Wicklin 분석가가 제공한 것이며, 저희가 계산할 w가 산출 되어있는 값이므로 실습에 적절합니다.

 

data RegData;

input y x w;

datalines;

2.3 7.4 0.058

3.0 7.6 0.073

2.9 8.2 0.114

4.8 9.0 0.144

1.3 10.4 0.151

3.6 11.7 0.119

2.3 11.7 0.119

4.6 11.8 0.114

3.0 12.4 0.073

5.4 12.9 0.035

6.4 14.0 0

;

run;
 

위 코드를 입력하여 데이터를 불러옵니다. 변수 w는 기존에 계산된 가중치입니다.

 

3. practice

 

proc sgplot data=RegData;

scatter x=x y=y / filledoutlinedmarkers markerattrs=(size=12 symbol=CircleFilled)

colorresponse=w colormodel=TwoColorRamp; /* 가중치 시각화*/

reg x=x y=y / nomarkers legendlabel="Unweighted Regression"; /* 일반 회귀*/

reg x=x y=y / weight=w nomarkers legendlabel="Weighted Regression"; /* 가중 회귀*/

xaxis grid; yaxis grid;

run;

 


위 코드를 통해 일반 선형회귀와 가중 선형회귀를 시각화하여 비교합니다. 간편하게도, proc sgplot 내에서 reg를 선언하면 해당 reg선언에 대한 회귀 선을 관측할 수가 있습니다.

1. Colorresponse 옵션은 특수 색을 지정할 파라미터를 선정합니다.

2. Colormodel 옵션은 색 표현 방식을 지정하며, TwoColorRamp를 통해 우측에 그라데이션 막대를 생성합니다.

3. filledoutlinedmarkers~ 이하의 옵션은 관측치들을 어떤식으로 표현할지 지정해준 것입니다.

4. reg x=x y=y / weight=w 를 확인해보면, 간단하게 가중 회귀를 적용시킨 것을 볼 수가 있습니다. 이를 사용하여 그래프를 작성하시면 됩니다.

 

 

weightedreg1.png

 

proc reg data=RegData plots(only)=FitPlot;

 

Unweighted: model y = x;

ods select NObs ParameterEstimates FitPlot;

quit;

 

proc reg data=RegData plots(only)=FitPlot;

Weighted: model y = x;

weight w;

ods select NObs ParameterEstimates FitPlot;

quit;

 

PROC REG는 회귀분석을 쉽게 실행할 수 있는 프록시져입니다. code 3.2의 3번째 줄을 보면 weight w 문을 볼 수가 있는데요, 이를 통해 쉽게 가중회귀 분석을 구현할 수 있는 것을 볼 수 있습니다.

 

 

image (2).png

일반회귀 분석값

 

image (3).png

 

4. Conclusion

이렇게 가중회귀와 일반회귀의 실습을 통해 차이를 확인해보았습니다. 지난 번 이론에서 배웠던 가중 회귀의 특징을 잘 살펴볼 수 있었는데요, 가중회귀 분석은 이렇게 가중치를 넣어야하는 실제 실험에서 유용하게 사용될 수가 있습니다. 하지만 가중치를 구해야한다는 것이 단점이 되겠네요. 위 데이터의 경우 W가 계산이 되어있지만, 실제 데이터는 그렇지 않습니다. 이러한 부분을 감안하여 모델 선택을 고려하기 바랍니다.

 

Version history
Last update:
‎06-09-2020 01:20 AM
Updated by:
Contributors

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Article Tags