728x90

 

 

An Introduction to Statistical Learning with Application in R

 

 

 

3.4 마케팅 전략 The Marketing Plan

 

 이번 장 초반에 봤던 마케팅 데이터에 대한 7가지 질문들에 대해 대답들을 간단하게 정리해봅시다.

 

1. 광고 예산과 판매량 사이에 관계가 존재하나요?

 이 질문에 대한 대답으로 (3.20)의 티비, 라디오, 신문의 판매량에 대한 다중 회귀 모델을 훈련시키고, 가설 $H_{0}$ : $\beta_{TV}$ = $\beta_{radio}$ = $\beta_{newspaper}$ = 0을 검정하여 판별할수 있겠습니다. 3.2.2에서 우리는 귀무 가설 null hypothesis를 기각할수 있는지를 판별하는 F 통계량 F statistic을 봤었고, 표 3.6에서 F통계량에 대한 유의확률 p value가 매우 낮다보니 광고와 판매량 사이에 유의미한 관계를 가지고 있음을 검증하였습니다.

* 위 귀무 가설이 기각 된다는 것은 위 계수들이 0이 아니라는 말로, 입력 변수와 반응 변수가 유의미한 관계를 가지고 있다고 볼수 있기 때문.

 

 

 

 

2. 우리가 구한 모델이 얼마나 정확하였나요?

 

 우리는 3.1.3에서 모델의 정확도에 대한 두가지 척도를 보았습니다. 첫째는 RSE로 모 회귀 직선으로 부터 출력들의 표준 편차를 추정하는 방법이었는데, 광고 데이터에서 RSE는 1,681, 출력의 평균은 14,022로 오차의 비율이 12%정도 되는걸 알수 있었어요. 두번째 방법은 $R^{2}$ 통계량을 보는 방법으로 우리가 구한 모델이 반응 변수의 변동성을 얼마나 설명할수 있는지, 분산의 퍼센트로 표한하는 방법입니다. 그래서 판매량 데이터에서 분산의 90%까지 모델이 설명할수 있었어요. RSE와 $R^{2}$는 표 3.6에서 볼수있어요.

 

 

 

 

3, 어떤 광고 매체가 판매량에 영향을 줄까요? which media contribuete to sales?

 

 이 질문에 대한 대답은 각 입력 변수의 t 통계량과 그에 대한 p value로 확인할수 있어요(3.1.2). 표 3.4의 다중 선형회귀 모델에선 TV와 라디오의 유의확률은 낮지만, 신문은 그렇지 않았죠. 그렇다는건 티비와 라디오만이 판매량과 관련된 변수라는 걸 알수있어요. 6장에서 더 자세하게 다뤄보겠습니다.

 

 

 

 

4. 각 매체의 판매량에 대한 영향이 얼마나 큰가요? how large is the effect of each medium on sales?

 

 우리가 3.1.2장을 봤을때 $\widehat{\beta}_{j}$의 표준 오차는 $\beta_{j}$의 신뢰 구간을 만드는데 사용할수 있었어요. 광고 데이터의 경우 95% 신뢰구간(실제 계수가 95%의 확률로 포함될 구간)은 TV의 경우 (0.043, 0.049), 라디오의 경우 (0.172, 0.206), 그리고 신문은 (-0.0113, 0.011)이었죠. 티비와 라디오의 신뢰구간은 좁고 0과는 떨어져있다보니 이 광고 매체들이 판매량과 관련되어 있다는걸 알수 있어요. 하지만 신문의 신뢰구간은 0을 포함하고 있어 이 변수는 티비나 라디오보다 유의미한 통계량이 아니라는 걸 알려줍니다.

 

 3.3.3장을 보면 공선성 collinearity가 표준 오차에 큰 영향을 준다고 배웠습니다. 그러면 공선성이 신문의 신뢰구간이 넓어지게 만든 원인이라 할수 있을까요? 티비와 라디오, 신문의 VIF 점수는 각각 1.005, 1.145, 1.145로 다중 공선성의 문제라고 보기는 어렵습니다.

 

 각 매체가 판매량에 미치는 영향을 평가하기위해서 세 매채를 나누어 단순 선형 회귀를 수행할수 있겠습니다. 표 3.1과 3.3에서 그 결과를 볼수있엇죠. 여기를 보면 TV와 판매량, 그릭 라디오와 판매량이 강한 관계를 가지고 있었어요. 하지만 티비와 라디오를 무시하고  신문과 판매량을 보았을때 둘 사이에는 약한 관계를 가지고 있었죠. 

 

 

 

 

5. 우리가 예측한 판매량이 얼마나 정확할까요? How accurately can we predict futuer sales?

 

  (3.21) 모델로 출력을 예측할수 있는데, 이 추정량의 정확도는 우리가 예측한 개별 출력 Y = f(X) + $\epsilon$ 혹은 출력 f(X)(3.2.2)의 평균에 달려있다고 할수 있습니다. 전자의 경우 예측 구간 prediction interval을 사용해서 봤엇고, 후자의 경우 신뢰 구간 confidence interval의 개념을 봤었습니다. 예측 구간은 항상 신뢰구간 보다 넓었었죠. 왜냐면 예측 구간은 개별 출력을 예측하다보니 제거불가 오차 $\epsilon$에의한 불확실성을 가지고 있거든요.

 

 

6. 선형적인 관계가 존재하였나요? Is the relationship linear?

 

 3.3.3장에서 잔차 플롯 residual plot을 비선형성이 존재하는지 파악하기 위해 사용하였습니다. 선형적인 관계가 존재한다면 잔차 플롯 상에서는 눈에 띄는 패턴이 없었어요. 광고 데이터의 경우 그림 3.5에서 비선형적인 형태를 볼수 있었고, 이 영향을 잔차 플롯 상에서도 확인할수 있었습니다. 3.3.2에서는 선형 회귀 모델이 비선형적인 관계를 다룰수있도록 예측 변수를 변환시킨 경우에 대해서 배워보았습니다.

 

 

 

7. 광고 매체 사이에 시너지 효과/ 교호작용이 존재하였나요? Is there synergy among the advertising media?

 

 표준 선형 회귀 모델은 입력 변수와 출력 변수 사이에 가산 관계를 가정하고 있었습니다. 가산 모델은 각 입력의 출력에 대한 영향이 서로 다른 변수의 값에 영향을 받지 않는다라고 이해할 수 있었어요. 다시 말하면 한 변수가 변할때 다른 변수는 변하지 않는다, 다른 변수에 의한 출력에 대한 영향이 변하지 않는다고 말하면 될거같아요. 하지만 가산 가정은 어떤 데이터셋에선 비현실적이었죠.

 

 3.3.2에서 선형 회귀 모델에 비가산적인 관계 non-additive relationship을 다룰수있도록 교호작용항을 어떻게 추가시키는지를 보았습니다. 교호작용 항에 대한 pvalue가 매우 작다는건 교호작용이 존재한다고 볼수 있습니다. 그림 3.5에서 광고 데이터가 가산적이지 않다는걸 알수 있었어요. 그래서 교호작용 항을 추가하여 기존의 $R^{2}$ 통계량이 90%에서 97%까지 크게 증가시킬수가 있었습니다.

 

 

 

 

 

 

 

 

 

3.5 선형 회귀 모델과 K 최근접 이웃의 비교 Comparision of Linear Regression with K-Nearest Neighbors.

 

  2장에서 얘기를 했었지만, 선형 회귀모델은 모수적 방법 중 하나라고 할수 있습니다. 왜냐면 f(X)가 선형 함수의 형태를 갖는다고 가정하고 있거든요. 모수적 방법 parametric methods는 여러가지 이점을 가지고 있는데, 모수적 방법에서는 적은 수의 모수를 추정하면 되므로 학습하기가 쉽습니다. 선형 회귀의 경우에서 계수들은 이해하기가 쉬웠죠, 그리고 계수들의 통계적인 기여도 statistical significance를 확인하기도 쉬웠습니다. 하지만 모수적인 방법은 몇가지 단점도 가지고 있는데, 이 모델을 만들때 실제 모델, 법칙 f(X)에 가까운 모델/가정을 만들어야 한다는 점입니다.

 

 만약 우리가 정의/가정한 함수 형태의 모델이 실제 모델/법칙과 유사하지 않다면 예측 정확도는 좋지 못할겁니다. 예를 든다면 우리가 X와 Y사이에 선형적 관계가 존재한다고 가정을 했다고해요 실제로는 선형적인 관계가 없지만, 그러면 선형적일거라는 가정을 가지고 만든 모델은 데이터를 잘 학습하지 못하고, 학습해서 만든 모델의 예측값을 신뢰하기는 어려울 거에요.

 

 반대로 비모수적 방법 non parametric method는 f(X)에 대한 어떤 파라미터를 갖는 형태/함수적 형태를 가정하지 않고, 대신 회귀를 하는데 더 유연한 방법이라고 할수 있어요. 앞으로 우리는 이 책에서 수많은 비 모수적인 방법들을 다룰건데, 가장 간단하고, 잘 알려진 비모수적 방법의 예시로 K 최근접 이웃 회귀 모델 K-nearest neighbors regression(KNN regression)에 대해 살펴봅시다.

 

 KNN 회귀 모델은 2장에서 다루었던 KNN분류기와 비슷하게 동작을 합니다. K에 대한 값과 그리고 예측하고자 하는 값/ 입력 값 $x_{0}$가 주어질떄 KNN 회귀모델은 $x_{0}$에 가까운 K개의 학습 관측치들을 찾을거에요. 이 이웃한 학습 관측치들을 $N_{0}$이라고 하겠습니다. 그래서 $N_{0}$에 속하는 전체 훈련 출력값들의 평균으로 f($X_{0}$)를 추정할수 있어요. 이를 아래와 같이 정리할 수 있겠습니다.

 

그림 3.16. 2차원의 64개 관측치 데이터(노란점) 집합으로 KNN 회귀모델을 학습해 구한 f(X)의 추정치들. 좌측 : K = 1인 경우 모델 학습 결과가 거칠/러프하게 나오고 있습니다. 우측 : K = 9로 지정한 경우 훨씬 부드러운 학습 결과를 볼 수 있습니다.

 

 그림 3.16는 입력 변수가 두 개인 p = 2 데이터셋에 KNN 회귀 모델을 학습시킨 결과를 보여주고 있습니다. 왼쪽 판낼은 K = 1로 학습하여 나온 모델이고, 우측 판낼은 K = 9일때의 학습된 회귀 모델을 보여주고 있어요. K = 1로 한 경우, KNN 모델이 관측치들을 보간interpolate(구간 안의 값을 채우는)하고 있고, 그 결과 스탭 함수(사각형의 신호 함수)형태가 되고 잇죠. K=9인 경우, 학습된 KNN 회귀 모델은 여전히 스탭 함수 형태를 띄나 9개의 주변 관측치를 이용하여 평균을 내다보니 예측 영역이 훨신 작아졌고, 더 부드러워졌습니다.

 

 일반적으로 최적의 K는 편향 분산 트레이드오프/길항 관계를 고려하여 고르는데, 이에 대해서 2장에서 이야기하였었습니다. K가 작을수록 학습 모델이 유연해 지지만, 편향이 작고 분산은 높았엇죠(모델의 변동정도가 크다.). 분산 값이 높게 나오는 이유는 예측 결과가 가장 가까운 값 하나만 가지고 예측해서 (완만하게 아니라 크게크게 변하므로) 그래요. 하지만 K가 크수록 더 부드러워지고, 학습한 모델이 덜 유연해 졌었씁니다. 그리고 예측 영역은 주위 여러개의 점들을 평균으로 구하여, 관측치 하나가 변할때 미치는 영향이 더 작았죠.

 

 이 유연함때문에 편향이 생길수 있는데, 5장에서 테스트 에러율을 추정하는 방법에 대해서 다룰건데, 이 방법들로 KNN 회귀에서 최적의 K값을 찾는 데 사용할수가 있겠습니다.

 

 최소 제곱 선형 회귀 같은 모수적 방법이 KNN같은 비모수적 방법보다 더 좋은 성능을 보일때는 어떤 경우일까요? 이에 대한 해답은 간단한데, 실제 모델 f에 가까운 파라미터 모델/함수 모델을 사용할수 있을때 모수적 방법이 비모수적 방법보다 더 잘 동작합니다.

 

그림 3.17 관측치가 100개인 1차원 데이터 집합에 KNN 회귀 모델을 학습하여 구한 추정 모델 f_hat(X)의 플롯들. 실제 모델은 검은색 직선입니다. 좌측 : 파란색 곡선은 K = 1일때 학습한 결과로 훈련 데이터로 추정 결과들을 보간 하고 있습니다. 우측 : 파란색 커브는 K = 9일때 학습한 결과로, 이전 모델보다 더 부드러운 학습 결과? 예측 결과를 보여줍니다.

 

 그림 3.17은 1차원 선형 회귀 모델로 생성한 데이터들의 예시를 보여주고 있는데요. 검은색 직선 실제 모델인 f(X), 파란색 커브는 K = 1, K = 9로 설정하여 KNN 회귀 모델로 학습시킬 결과물 입니다. K=1인 경우에 예측값은 실제와 너무 멀고, K = 9로 설정한 경우에는 실제 f(X)에 더 가까운 예측결과를 얻을수 있었습니다. 하지만 이건 실제 입출력 관계가 선형적이기 때문이며, 선형 회귀 모델이 적합하지 비모수적인 방법으로는 어렵습니다. 비 모수적인 방법은 편향으로 제거할수 없수없는 분산이 있어 비용이 발생할수 있어요.

 

 

그림 3.18. 그림 3.17과 같은 데이터를 사용하고 있습니다. 좌측 : 파란색 점선은 이 데이터를 최소 제곱법으로 학습한 직선입니다. f(X)는 실제 모델을 의미하는 직선이구요(검은선), 최소 제곱 회귀선이 실제 f(X)를 잘 추정하고 있는걸 볼 수 있습니다. 우측 : 점 평행선은 최소 제곱 모델을 시험데이터셋을 사용한 MSE이고, 녹색선은 KNN 회귀 모델의 MSE로 1/K한 결과를 보여주고 있어요. 선형 회귀 모델이 KNN 회귀 모델보다 시험 MSE가 더 낮은데 이건 실제 모델 f(X)가 실제로 선형이기 떄문입니다. KNN 회귀 모델의 경우 K가 큰 값일수록 1/K은 작아지고, 더 좋은 결과를 얻을 수 있었어요.

 

그림 3.18의 왼쪽 판낼에서 파란색 점선은 같은 데이터 셋을 선형 회귀 모델로 학습한 결과를 보여주고 있는데, 거의 완벽하죠. 그림 3.18의 오른쪽 판낼은 이 데이터에서 선형 회귀 모델이 KNN 회귀 모델을 능가하는걸 볼수 있어요. 녹색 선은  KNN의 시험 MSE를 보여주고 있는데 x축에 1/K로 놓고 보여주고 있어요. KNN 에러는 대체로 선형 회귀 모델의 시험 MSE인 검은색 점선보다 높게 나오는걸 볼수 있습니다. KNN은 K가 클때 시험 MSE가 줄어들고, K가 작은 경우 더 나쁜 결과를 보입니다.

(위 오른쪽 그림에서 K = 1인경우 MSE가 0.15를 넘어가고, K = 2인경우 0.15 아래로 내려온다, K = 10이라면 0.1보다는 크지만 전보다 더 내려와있다.)

 

 

그림 3.19 위 왼쪽 : X와 Y사이에 약한 비선형 관계(검은색 선)를 가진 환경에서, K = 1로 KNN 모델을 학습한 경우(파란색), K = 9로 KNN 모델을 학습한 겨우(빨간색)을 보여주고 있습니다. 위 우칙 : 이 약한 비선형 관계를 가진 데이터에서, 최소 제곱 회귀 모델을 이용한 테스트 MSE(회색 평행 점선)와 다양한 K를 주었을떄(1/K) KNN의 테스트 MSE(녹색)을 보여주고 있습니다.   아래의 왼쪽 오른쪽 : 위 그림과 동일하나 X와 Y 사이에 강한 비선형 관계가 존재하고 있습니다.

 

 현실에서 X와 Y 사이 실제 관계가 선형인 경우는 매우 드뭅니다. 그림 3.19는 X, Y 사이 관계에서 비선형적인 정도가 증가할때 최소 제곱 회귀법과 KNN 회귀법 사이 성능을 보여주는데요. 위쪽 행에서 실제 관계는 선형에 가까운 경우로 선형 회귀의 테스트 MSE가 여전히 K가 낮은 경우 KNN의 MSE보다 더 나은 결과를 내는 것을 볼수 있어요. 하지만 두번째 행에서는 비선형성이 더 강한데, 여기서는 KNN이 K가 어떤 값이던간에 선형 회귀 모델의 테스트 MSE보다 더 나은 결과를 보이고 있습니다. 하지만 선형 회귀 모델의 MSE는 크게 증가하였죠.

 

 그래서 그림 3.18과 3.19는 KNN 모델은 실제 관계가 선형적일때 선형 회귀보다 나쁜 성능을 보이고, 비선형적인 상황에선 선형 회귀 모델보다 더 나은 성능을 보이는걸 보여주고 있습니다. 현실 세계에서는 실제 관계가 어떤지는 알수 없습니다. 하지만 KNN 모델이 실제 관계가 선형적이면 선형 회귀보다 약간 나쁠거고, 실제 관계가 비선형이라면 선형 회귀보다는 크게 더 좋은 성능이 나오기 때문에 KNN이 선형 회귀 보다는 더 잘 쓰이곤 합니다. 특히 그림 3.19과 3.19는 입력 변수가 1개 p = 1개인 상황을 다루다보니 더 높은 차원으로 간다면 KNN이 선형 회귀 모델과 나쁜 성능을 낼 수도 있어요.

 

 

그림 3.20 변수의 갯수 p가 증가할때 선형 회귀(검은색 점선)과 KNN(녹색 곡선)의 시험 MSE. 실제 함수는 그림 3.19의 아래 판낼에 나오는 걸로 비선형적이고, 다른 변수의 영향을 받지 않아요. 변수의 개수가 증가할수록 선형 회귀의 성능이 조금씩 나빠지고 있지만, KNN의 경우 p가 증가할수록 빠르게 나빠집니다.

 

 그림 3.20은 그림 3.19의 두번째 행의 강한 비선형 적인 상황에서 고려하는건데, 대신 (출력에 연관되지는 않았으나)노이즈를 가진 변수를 추가할때 테스트 MSE를 보여주고 있습니다. p = 1 혹은 2인경우 선형 회귀보다는 KNN이 좋은 성능을 보이고 있어요. 하지만 p = 3인 경우 결과가 비슷하다가 p >= 4 일때부터 선형 회귀가 더 좋은 결과를 보이고 있어요. 차원이 증가할수록 선형회귀 모델의 시험 MSE는 약간만 나빠지게 만드나 KNN의 경우에는 훨신 성능이 나빠지는걸 볼수 있습니다. 차원 증가시에 성능이 떨어지는건 KNN에서 흔한 형상이며, 큰 차워닐수록 표본 크기, 샘플 크기가 줄어들기 때문에 그래요.

 

 이 데이터셋에 100개의 훈련 데이터가 있다고 합시다. 그러면 p = 1인경우 f(X)를 정확하게 추정하는대 충분해요. 하지만 차원이 20인, p = 20인 100개의 데이터가 있다면 최근 

 

 

300x250

+ Recent posts