Multi Regression분석방법
우리는 앞에서 단순회귀분석을 엑셀에서 하는 방법을 살펴보았습니다. 그 분석에서 살펴본 결과 광고가 매출을 설명하기는 하였는데 전체 설명의 비중이 40%밖에 되지 않아서 추가적인 매출을 설명할 수 있는 독립변수를 추가하는 방안을 좀 고려해야 한다는 결론을 얻을 수 있었습니다.
따라서, 매출에 영향을 주는 독립변수를 한개 혹은 두개 더 늘려서 그 회귀모델의 설명력을 높일 수 있도록 만들고 현업에서의 활용도를 더 높일 수 있도록 살펴보겠습니다.
즉, 매출이라는 변수가 페이지뷰와도 연관이 있고, 그 당시에 판매가격에도 영향이 있고, 검색광고비, 디스플레이 광고비들과도 연관이 있을 수 있기 때문에 어떤 변수가 가장 영향이 있는지를 찾아보는 재미도 있을수 있습니다.
다만, 독립변수의 수를 무작정 늘리다보면 회귀모델에 또 새로운 문제가 생기게 되므로 그 부분에 대해서도 간단하게 설명 드리도록 하겠습니다.
그럼 앞서 살펴보았던 데이터를 살짝 수정해서 가격과 광고비 그리고 매출을 포함하는 자료를 가지고 회귀분석을 진행해 보겠습니다.
앞서 살펴보았던 것 처럼 엑셀 데이터는 열방향으로 채워 넣어서 데이터를 만드는 것은 동일합니다.
여기에서 Y축범위는 매출을 넣고, X축범위에는 가격과 광고비의 범위를 선택해 주면 됩니다. 앞서 분석했던 것처럼 이름표를 포함해서 영역을 지정하시는것은 쉬우시죠? 이후에 이름표를 선택해주고, 신뢰수준 95%(결국에는 유의수준 5%) 그리고 출력범위를 편한것으로 선정하고 잔차와 확률도까지 선택하고 확인을 누르면 다음과 같은 결과가 나옵니다.(보통 잔차와 정규확률도를 모두 선택하지는 않지만 그래도 처음이니까 모두 선택하였습니다)
이 결과를 보시면, 유의한 F와, P값이 소수점을 포함한 숫자로 되어 있는데 원래 출력시에는 이런형태가 아니었습니다. 그러니 보시기 편하시려면 저처럼 셀서식을 숫자로 바꿔서 보시면 좀 더 편하실 것 같습니다.
이 회귀모델의 실행결과 해석도 앞서 살펴보았던 단순회귀와 같이 해석하시면 됩니다.
이번에는 독립변수로 광고비와 가격이 종속변수인 매출에 영향을 미치는 요인을 살펴보기 위해 회귀분석을 진행했습니다. 그 결과, 두 변수 모두 매출에 유의미한 영향을 주는 것으로 나타났고, 전체 모델의 설명력도 매우 높게(97.9%) 그리고 모델의 유의성을 보여주는 유의한 F비가 0.0000000*로 0.05보다 작게 나타났습니다.
우선 모델의 결정계수(R²)는 "알스퀘어 값"이라고 보통 하는데, 이 값이 0.979, 즉 이 회귀모델이 매출의 움직임을 약 98% 가까이 설명할 수 있다는 뜻입니다. 이는 분석 모델로서 아주 높은 수준의 설명력을 지닌 것으로, 광고비와 가격이라는 두 변수만으로도 매출 변화를 충분히 설명하고 앞으로 예측할 수 있다는 점을 보여줍니다.
각 변수의 영향력을 살펴보면, 광고비는 p-값이 0.0000014로 매우 유의미했으며, 회귀계수는 0.80으로 나타났습니다. 즉, 광고비가 1만 원 증가할 때 매출이 평균적으로 약 0.8만 원 증가하는 경향이 있다는 의미입니다. 이 결과는 광고 활동이 매출 향상에 확실히 긍정적인 영향을 준다는 사실을 뒷받침합니다.
또한 가격 역시 p-값이 0.004로 유의미했고, 회귀계수는 -0.25로 나왔습니다. 이는 가격이 1단위 오를 때 매출은 평균적으로 0.25단위 줄어드는 것으로 해석됩니다. 가격이 높아질수록 소비자 수요가 감소하고, 그에 따라 매출이 줄어들 가능성이 있다는 점을 시사합니다.
모델의 절편은 약 321.97로, 광고비와 가격이 모두 0일 때의 기본적인 매출 수준을 나타냅니다. 물론 현실에서는 이 상황이 실제로 발생할 가능성은 적지만, 모델의 구조상 해석의 기준점이 된다고 볼 수 있습니다.
전체적으로 봤을 때, 광고비와 가격을 포함한 이 회귀모델은 매출이라는 종속변수에 대한 설명력과 예측력 모두에서 우수한 성과를 보여주었습니다.
회귀분석에서는 각 변수의 계수를 해석하는 것 외에도, 모델 전체가 통계적으로 의미 있는지를 확인하는 과정으로 분산분석(ANOVA)을 주로 사용합니다. 이번 분석에서의 분산분석 결과를 보시면 다음과 같습니다. 회귀모델에 의해 설명된 변동(회귀 제곱합)은 약 455,850, 오차에 해당하는 잔차 제곱합은 약 9,610, 총 제곱합은 약 465,460으로 나타났습니다. 이 수치는 모델이 데이터 전체의 변동 중에서 얼마나 많은 부분을 설명하고 있는지를 수치적으로 보여줍니다.
분산분석을 통한 모델점검에 있어서 가장 핵심적인 지표는 F-통계량과 그에 따른 유의확률(유의한 F비, p-값)입니다. 본 모델의 F-값은 284.62, 유의한 F비는 0.00000000, 절편, 가격, 광고비의 p-값은 모두 0.000** (거의 0에 가까움)으로, 유의수준(0.05)보다 매우 작은 값을 보여줍니다. 이는 회귀모형이 통계적으로 매우 유의미하다는 것을 강력하게 보여주는 결과입니다.
쉽게 말하면, 광고비와 가격이라는 두 변수를 넣은 이 모델은 단순히 평균값으로 예측하는 것보다 훨씬 더 정확하게 매출을 예측할 수 있으며, 그 차이가 우연히 발생했을 가능성은 극히 낮다는 뜻입니다. 즉, 이 모델은 실제 데이터를 잘 설명하고 있으며, 분석 결과에 신뢰를 가질 수 있다고 해석할 수 있습니다.
하지만, 언제나 이렇게 잘 맞는 데이터가 딱 나타나지는 않는 경우가 실무에서는 더 많이 있습니다.
비슷한 데이터이지만 다른 결과가 나오는 경우를 한 번 살펴보겠습니다.
앞서 분석했던 것과 동일한 가격과 광고비를 독립변수로, 매출을 종속변수로 설정해서 분석을 해 보았습니다. 하지만 이 자료는 앞서 분석했던 자료와 독립변수의 데이터가 다르게 설정했습니다.
회귀분석을 실행하고 결과를 보는 과정까지는 동일한데 실행후 결과를 살펴보겠습니다.
이 분석결과를 보면, 결정계수값은 96.4%로 상당히 높은 것을 알 수 있습니다. 그리고 분산분석으로 모델을 확인한 경우에도 유의한 F가 0.000000002178로 거의 0에 가깝게 나타나므로 P값이 0.05보다 작으므로 통계적으로 유의한 모델이라고 이야기 할 수 있습니다.
여기까지 본다면, 큰 문제가 없는 것 같지만 이제 회귀모델을 만들어야 하는 가격 그리고 광고비의 P값을 보면 광고비는 P값이 0.05대비 매우 작은 값을 보이고 있지만 가격의 경우에는 0.05대비 큰 0.177391575를 보이고 있어서 통계적으로 유의하지 않은 상황이라고 이야기 할 수 있습니다.
물론 전체적으로 모델의 설명력이 매우 높고, 이성적으로 볼 때 가격이 매출에 영향을 미치는 것이 당연하므로 P값이 좀 낮더라도 회귀모델에 포함할 수 있다고 현업에서 판단할 수 있기도 합니다.
하지만, 만약 가격이라는 독립변수를 제외하고서도 매출이라는 모델을 더 잘 분석할 수 있고 독립변수의 수가 지금처럼 2개가 아닌 좀 더 많은 상황이라면 통계적으로 유의하지 않은 독립변수를 제거하는 것은 상대적으로 효율적인 것 이라고 생각할 수 도 있습니다.(전문 통계프로그램에서는 스텝와이즈 기법을 통해서 최적의 독립변수 갯수를 찾아주기도 하지만 엑셀에는 없으니 분석하는 분들이 좀 판단을 할 필요가 있습니다.)
혹시나 하는 우려로 인해서 다중공선성이라는 개념을 간단하게 설명 드리고 넘어가도록 하겠습니다. 이 설명은 좀 TMI일 지 모르지만 그래도 간단하게는 들어보시는 것이 좋을 듯 해서 말씀 을 드립니다.
다중공선성(multicollinearity)이라는 것은 회귀분석을 시행할 때 두 개 이상의 독립변수(설명변수)들 사이에 서로 강한 상관관계가 있을 때 발생하는 문제입니다. 이 경우, 각각의 독립변수가 종속변수에 어떤 영향을 주는지를 명확하게 구분하기 어려워지고, 회귀계수의 추정이 불안정해질 수 있습니다. 그 결과, 변수의 p-값이 높게 나와 통계적으로 유의하지 않게 보일 수 있으며, 해석이 왜곡될 우려가 있습니다.
즉, 두개 변수를 넣지 말고 그 중에서 한개를 제거하는 것이 좀 더 명확한 회귀모델이 될 수 있기에 모두 넣는 것 보다는 적절하게 제거하는 편이 모델의 명확성 확보에 도움이 된다는 이야기 입니다.
아쉽게도, 엑셀에서는 이러한 다중공선성 문제를 보여주는 지표는 없습니다. 하지만 궁금하다면 계산이 가능할 수는 있습니다.
우선 다중회귀에서 각 독립변수를 종속변수로 놓고 나머지 독립변수들로 회귀분석을 개별적으로 실행하고, 각 회귀분석에서 나온 결정계수 R² 값을 기록합니다. 아래 공식을 사용해 VIF를 계산합니다:
계산된 VIF 값이 만약 1 ~ 5 사이에 있다면 대체로 문제가 없지만, 5 이상 이라면 다중공선성의 주의가 필요하고, 10 이상 이라면 심각한 다중공선성 가능성있으므로 제거하는 것을 추천합니다.
앞서 살펴본 회귀모델의 가격과 광고비의 VIF값을 계산해 보면 다음과 같습니다.
가격의 경우 결정계수 R² 가 0.96으로 나왔다고 가정할 때 (가격을 종속변수로, 광고비를 독립변수로 놓고 회귀분석을 엑셀에서 하면 값이 나옵니다) =1 / (1 - 0.96) = 4.55가 됩니다. 그러므로 5에 가깝다고 할 수 있고 어느정도의 주의가 필요한 수준이라고 할 수 있습니다.
만약 독립변수가 2개라면 다중공선성의 값이 2개 독립변수간에는 동일합니다. 하지만 3개이상이 되면 각각 다르게 되니 계산을 통해서 검토해 보는것이 좋겠습니다.
다시 엑셀의 분석모델로 돌아가겠습니다.
만약, 앞에서와 같이 독립변수 광고비는 통계적으로 유의한 수준인데 반해서, 가격은 통계적으로 유의하지 않을 때에는 어떻게 하는게 최선일까요? VIF의 값을 보더라도 5에 가까우니 약간 찜찜한 느낌이 들기는 하는데 말입니다.
회귀분석 결과, 광고비는 매출에 유의미한 영향을 미친 반면, 가격 변수는 통계적으로 유의하지 않은 것으로 나타났습니다(P = 0.177). 이런경우 가격 변수를 제거하는 것이 실무적으로 바람직할까를 고민하는 상황이 되었습니다.(실제로 이런 경우가 정말 자주 발생하니 당황하지 마시고 잘 응용해 보세요)
통계적 유의성은 분석 결과의 신뢰도를 판단하는 데 중요한 기준이지만, 변수의 실질적 중요성까지 판단해주는 것은 아니라고 할 수 있습니다. 가격은 이커머스에서 고객의 구매 결정에 직접 영향을 미치는 핵심 요소입니다. 특정 데이터셋에서 유의하지 않았다고 하더라도, 이는 가격의 영향력이 없어서가 아니라, 가격 변동 폭이 작거나 표본 수가 부족해 검출되지 않았을 가능성이 크다고 할 수 있습니다.
또한 분석의 목적이 단순 예측이 아닌, 의사결정을 위한 해석이라면 가격과 같은 핵심 변수는 포함하는 것이 타당할 수 있습니다. 실제로 가격을 포함한 모델의 설명력(R²)은 96.4%로 매우 높게 나타났고, 이는 가격이 일정 부분 매출 변동을 설명하고 있다는 의미라고 해석할 수 도 있습니다.
따라서 통계적 유의성만을 기준으로 판단하기보다는, 변수의 이론적 중요성과 실무적 의의를 함께 고려하여 가격 변수를 모델에 포함하는 것이 보다 타당한 접근이라고 할 수 있겠습니다.(통계선생님들께 죄송합니다. 현업에서의 판단은 이런경우가 많습니다.)
하지만, 이런 데이터를 분석하는 사람의 입장에서 지금과 달리 P값이 0.6정도 나와서 전혀 의미가 없다고 할 수준의 값일 경우에는 판단에 따라 제외할 수 도 있습니다. 독립변수가 2개가 아니라 7개쯤 된다고 가정할 때 의미없는 변수를 넣어 두는 것 보다 전체 모델에 대한 설명력이 높아지거나 더 긍정적인 예측이 가능하다고 판단될 경우에는 제외 하는 것도 좋은 전략입니다.
이랬다 저랬다 하는 것 같아서 죄송하지만, 이래서 통계를 하는 분들이 의사결정을 하는 분이셔야 한다는 말씀을 또 드리게 됩니다. 남들이 의사결정해서 이렇다고 하는 결과물만 봐서는 실제로 그 결과가 어떻게 나온 것인지를 모르면서 그 결과를 가지고 잘못된 판단을 하는 경우가 발생하게 됩니다.
예를들어 앞서 살펴본 가격과 광고비 회귀모델에서 P값이 높았던 가격을 제외한 회귀모델을 살펴본다면 어떻게 될까요?
이렇게 보면 가격이 없는 모델도 매출을 충분히 잘 설명하고 있다고 볼 수 있습니다. 거의 95.8%설명하니까요 하지만 가격이 있는 모델과 함께 비교해 보도록 하겠습니다.
이 비교를 보면, 두 모델 모두 높은 설명력을 보이나, 다중 회귀모델이 조금 더 높은 설명력(R²)과 낮은 예측 오차를 가지는 것을 볼 수 있습니다. 광고비는 두 모델 모두에서 매우 유의미한 변수로 확인되고 가격 변수는 통계적으로 유의하지는 않지만, 전체 모델 설명력은 소폭 향상시키는 것으로 보아서 전혀 영향이 없다고 볼 수는 없다고 생각됩니다.
따라서, 결론적으로 가격을 제외한 모델 보다는 가격을 넣어서 함께 분석한 최종 회귀모델을 분석과 예측에 활용하는 것이 좋겠다고 판단됩니다.
이경우 사용되는 회귀식은 다음과 같습니다.
지금까지 회귀분석 공부하시느라 고생하셨습니다. 한번씩 본인 업무에 있는 데이터를 활용해서 잊어버리시기 전에 연습해 보시는것이 좋을것 같습니다.