Must Learning With Statistics

선형, 비선형 회귀모형 적합방법과 Bias-variance Trade off 관계 본문

데이터마이닝

선형, 비선형 회귀모형 적합방법과 Bias-variance Trade off 관계

Doublek Park 2020. 3. 16. 23:37
데이터마이닝-2장-Model-Flexibility.utf8

지도학습에서의 적합한 통계모형 추정 방식

 이번에는 적합한 통계모형을 추정하는 방법에 대해 다루도록 하겠습니다. 기본적으로 적합한 통계모형을 추정하기 위해서는 선형모형에 대한 기본적인 이해가 전제가 되어야 합니다.

참고) https://mustlearning.tistory.com/14?category=859137

위 링크에 해당되는 회귀분석에 대한 기본적인 이해가 있다는 가정하에서 포스팅을 작성하도록 하겠습니다.

최소제곱법

회귀분석을 간단하게 짚고 넘어가자면, ’인과관계를 가지고 있는 변수들 간의 함수적 관계를 통계적으로 규명하고자 한다’라고 할 수 있습니다. 인과관계와 함수적 관계는 Input에 대해 그 Output이 나온다는 것으로 이해하시면 됩니다. 그다음에 통계적으로 규명한다는 것은 데이터에 존재하는 error(\(\epsilon\))을 최소화하는 관계를 찾겠다라고 이해하시면 됩니다.

일반적인 수학함수와는 다르게, 실제 데이터에서는 항상 많은 변수가 존재합니다. 그렇기에 항상 제한된 정보를 얻을수 밖에 없는 우리 입장에서 모든 관계를 한 줄의 수식으로 설명을 한다는 것은 절대 불가능합니다. 즉, ’어느정도의 오차는 허용하되, 그 오차를 최소화하는 모형을 규명하겠다.’가 지도학습의 추정방식 핵심입니다. 회귀분석의 기본꼴을 수식으로 풀자면 다음 식과 같습니다.

\[ y = f(x_{1},x_{2},\cdots,x_{n}) + \epsilon \]

\(x_{1},x_{2},\cdots,x_{n}\)에 적절한 가중치(기울기)를 부여함으로써 회귀식을 만듭니다. 그리고 그 회귀식으로 계산이 된 예측값(\(\hat{y}\))과 반응변수(\(y\))의 차이가 최소화과 되는 가를 살펴보는 것입니다. 이를 통계학에서는 최소제곱법이라고 합니다. 제곱이 붙는 이유는 차이값에 대해 부호(+,-)로 인항 상쇄가 일어나지 않도록 제곱을 해주기 때문입니다.

\[ \epsilon = y-\hat{y}\\ \epsilon = y-{\hat{f}(X)}\\ \]

Train set과 Test set

기본적으로 통계적 학습을 위해서는 보유하고 있는 데이터를 Train set과 Test set으로 구분을 합니다. 쉽게 생각하면 ’학습’이란 것은 ’시험’을 잘보기 위한 준비단계입니다. 우리는 모형이 어떤 데이터가 오더라도 예측을 잘할 수 있도록 학습을 시켜줘야합니다. 그렇기에 시험문제를 연습용문제와 분리시킵니다.

MS.Zoning Overall.Qual Year.Built Year.Remod.Add Exter.Qual
RL 6 1960 1960 3
RH 5 1961 1961 3
RL 6 1958 1958 3
RL 7 1968 1968 4
RL 5 1997 1998 3
RL 6 1998 1998 3
Exter.Cond Garage.Qual Garage.Cond Sale.Type Sale.Condition SalePrice
3 3 3 WD Normal 215000
3 3 3 WD Normal 105000
3 3 3 WD Normal 172000
3 3 3 WD Normal 244000
3 3 3 WD Normal 189900
3 3 3 WD Normal 195500

Train, Test set을 나누는 방법은 매우 간단합니다.

모델의 정확도

통계모형의 정확도는 MSE(Mean Squared Error)를 주로 활용합니다. 평균제곱합의 개념을 가진 이 값은 \([y-{\hat{f}(X)}]^2\)의 평균합을 의미합니다.
\[ MSE = \frac{1}{n}\sum_{i\in Data}[y-{\hat{f}(X)}]^2 \]

다음의 데이터에서 적합한 회귀선을 찾아보는 과정을 R로 풀어보도록 하겠습니다.

\[ SalePrice = f(Overall.Qual) + \epsilon \]

기본적으로 회귀모형은 선형(Linear)으로 적합시킬 것인지 비선형(NonLinear)으로 적합시킬지에 따라서 모형의 모수(parameter)가 달라집니다.

선형으로 적합시킬 경우에는 빨간 선처럼, 비선형으로 적합시킬 경우네는 검은선처럼 적합시키는 것을 의미합니다. 먼저 선형모형으로 적합시켜보도록 하겠습니다.

선형모형(Linear Model)


Call:
lm(formula = SalePrice ~ Overall.Qual, data = TRAIN)

Residuals:
    Min      1Q  Median      3Q     Max 
-168819  -28536   -2848   21152  401431 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -89873.9     4611.6  -19.49   <2e-16 ***
Overall.Qual  44344.3      738.4   60.05   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 47140 on 2049 degrees of freedom
Multiple R-squared:  0.6377,    Adjusted R-squared:  0.6375 
F-statistic:  3606 on 1 and 2049 DF,  p-value: < 2.2e-16

회귀분석의 결과 다음과 같습니다. 우리의 목적은 어떤 모형의 \(MSE\)가 적게 나오는지가 주요관심사항이기 떄문에 TEST SET을 모형에 넣어 \(MSE\)를 계산해보도록 하겠습니다.

[1] "Linear MSE : 2506179735"

아무래도 집값의 단위가 매우 크기 때문에 \(MSE\)또한 매우 큰 값으로 나오는 것을 확인할 수가 있습니다.

비선형모형(Nonlinear Model)

비선형모형은 흔히 다항회귀분석(polynomial)이라고 합니다. 예측자의 항차를 높여가며 회귀선이 데이터의 유동적인 성질을 따라갈 수 있도록 도와줍니다. 즉 항차 차수를 높일 수록 모형은 더욱 유연(flexible)해지며 데이터를 더욱 잘 따라가게 됩니다. 하지만, 무조건적으로 항차를 높일 경우에는 분산이 매우 크게 증가하는 단점이 존재합니다. 이를 bias-variance trade off라고 합니다. 먼저 해당 모형에 몇차항의 회귀선이 적합할지 모르기 때문에 적당한 Test를 해주어야 합니다. 간단하게 2차항 비선형모형을 만들어보도록 하겠습니다.

\[ \hat{y}=\hat\beta_{0}+\hat\beta_{1}x+\hat\beta_{1}x^2 \]


Call:
lm(formula = SalePrice ~ poly(Overall.Qual, 2), data = TRAIN)

Residuals:
    Min      1Q  Median      3Q     Max 
-252749  -24292   -1218   20627  317501 

Coefficients:
                        Estimate Std. Error t value Pr(>|t|)    
(Intercept)             179910.6      954.9  188.41   <2e-16 ***
poly(Overall.Qual, 2)1 2830949.9    43245.3   65.46   <2e-16 ***
poly(Overall.Qual, 2)2  850658.1    43245.3   19.67   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 43250 on 2048 degrees of freedom
Multiple R-squared:  0.6953,    Adjusted R-squared:  0.695 
F-statistic:  2336 on 2 and 2048 DF,  p-value: < 2.2e-16
[1] "NonLinear MSE : 2173567410"

선형회귀를 적합할때보다는 MSE가 감소한 것을 확인할 수가 있습니다.

[1] "Var :3931079014.77699"
[1] "Var :4779433812.99504"

하지만 분산을 계산하면 비선형모형의 분산이 더 큰 것을 확인할 수가 있습니다. 즉 좋은 통계적 지도학습은 이 trade off관계에서 적합한 모형을 찾는 것입니다.

여기까지 통계적 지도학습 모델링에 대해 간단하게 다루었습니다. 더 자세한 내용은 Mustlearning with R의 ’통계이론 2편’을 참고부탁드립니다.

Comments