Intro
안녕하세요 명완식 입니다. 아직 추운 겨울이지만, 조금씩 겨울이 가고 봄이 오는 시즌인 것 같습니다. 이번 포스트에서는 태블로를 통해 어떻게 선형회귀분석을 구현할 수 있는지 알아보는 시간을 가져보도록하겠습니다.
먼저 선형회귀분석을 처음 접하신 분들이 있을 수 있으니 선형회귀분석이 무엇인지 설명 드리도록 하겠습니다. 네이버에서 소개한 선형회귀분석은 아래와 같습니다.
“독립 변수와 종속 변수의 관계를 규명하는 회귀 분석에서, 독립 변수와 종속 변수 사이에 선형 관계가 있다고 가정한 후 분석을 수행하는 통계적 분석 방법” -네이버 국어사전-
즉, 만약 독립 변수(지역구 아파트 평단가)를 예측하고 싶을 때, 해당 종속 변수(재난지원금수령비율)의 상관관계가 있다고 파악하고 통계적으로 종속 변수의 예측 영향력 분석을 수행하는 방법이라고 이해하면 좋을 것 같습니다.
그리하여 이번 포스트를 예를 들자면, “재난지원금 비율이 1%로 올라갈때 아파트 평단가가 어느정도 내려가는지?” 선형식으로 알아볼 수 있습니다.
에러 변수를 제외한 회귀식은 아래와 같습니다.
- Y = 종속 변수
- B0 = 상수값
- B1 = 기울기
- Xi = 독립 변수
위와 같은 식을 만들기 위해, 태블로 계산된 필드를 통해 상수값과 기울기 등을 직접 구해보도록 하겠습니다.
만들기 앞서 선형회귀식은 어디에 활용될 수 있을까요?
실제로 구현에 앞서, 어디에 활용될 수 있는지 확인해 보겠습니다. 선형 회귀 분석은 정말 여러방면으로 응용될 수 있습니다. 특히 연구 목적으로 선형 회귀 분석은 많이 활용되며, 통계적으로 독립변수에 대한 간단한 예측을 하는 경우에 자주 활용됩니다.
- 연봉(종속변수) 예측에 대한 학력(독립변수1), 경력(독립변수2) 영향력 분석
- 자녀의 키(종속변수) 예측에 대한 부모키(독립변수) 영향력 분석
- 시험점수(종속변수) 예측에 대한 공부시간(독립변수1), 부모의 학력(독립변수2) 영향력 분석
- 폐암 발병자수(종속변수) 예측에 대한 평균 미세먼지농도(독립변수1) 영향력 분석
- 농작물 수확량(종속변수) 예측에 대한 일조량(독립변수1), 강수량(독립변수2), 비료(독립변수3) 영향력 분석
어떻게 해석하면 좋을까요?
https://public.tableau.com/app/profile/tableauwiki/viz/_16460706990800/Dash
- 상관관계
- 상관관계는 -1 ~ +1 까지 범위를 나타내는 숫자로 -1 혹은 1에 가까울수록 두 변수의 상관관계가 높다고 판단합니다.
- 마이너스일 때는 음의 상관관계 플러스일때는 양의 상관관계입니다.
- 위 예시에서는 음의 상관관계로써, 재난 지원금이 높을 수록 아파트 평단가가 낮아지는 음의 상관관계가 있습니다.
- R-Square
- X 축에 있는 재난지원금 비율이 얼마나 Y축에 해당하는 아파트 평단가에 대해 얼마나 정확한 설명력을 가지는지 확인합니다.
- 0 ~ 1 까지 범위로 나타내며 1에 가까울수록 높은 설명력을 가지고 있다고 판단합니다.
- 위 예시에서는 높은 0.93 R-Square로 재난지원금 대상 비율이 아파트 평단가 예측의 높은 설명력을 가지고 있음을 확인할 수 있습니다.
- Equation
- 간단하게 x계수가 붙은 쪽을 확인하시면 되시며, X계수가 1씩 올라갈때 얼마나 Y값이 크게 변하는지 확인할 수 있습니다.
- 위 예시의 해석은 “서울시 지역구의 5차 재난 지원금 비율이 1% 높아질때마다 지역구 평균 아파트 평단가 가격은 95만원 하락합니다.”로 해석될 수 있습니다.
- 이에 따라 위 차트를 보시면, 강남구의 재난지원금 대상자 비율이 매우 낮고 아파트 평단가가 높게 측정됨을 확인할 수 있습니다.
잠깐, 태블로의 추세선을 활용하면 되지 않을까요?
그런데 태블로를 자주 사용하시는 분이라면 이런 말씀을 하실 수도 있으실 것 같습니다.
“태블로 사이드 바 상단 분석 탭에 추세선이라는 기능을 통해 간단하게 만들수 있지않나요?“
네, 태블로 뷰 옆에 있는 사이드 바 상단에 보시면 분석 탭이 있습니다. Scatter Chart 혹은 시계열 라인 차트를 만든 다음 추세선을 뷰로 드래그 하면 [선형, 로그, 지수, 다항식, 거듭제곱] 등 다양한 추세선을 만들어 볼 수 있습니다.
하지만 태블로를 활용하다보면 선형회귀 방정식에서 나타나는 생각하는 Intercept, Coefficient, Covariance, Pearson correlation, R-Square 와 같은 수치들을 대시보드에 직접 만들어 표현하고 싶으실 수 있습니다. 또한, 어떻게 수학식이나 통계식을 태블로에서 구현하는지 궁금하신 분들이 있을거라고 생각합니다. 그러한 니즈를 반영하고자 선형회귀식들을 직접 입력하여 태블로를 통해 분석해 보도록 하겠습니다.
데이터 다운로드
이번 포스트에 사용된 데이터 원본은 제가 직접 만든 데이터로써, 각 지역구 단위별 평균 아파트 평단가와 5차 재난지원금 대상자 비율이 기록되어 있습니다.
계산된 필드 만들기
그럼 지금부터 태블로를 통해 선형회귀분석을 활용하는 방법에 대해 알아보도록 하겠습니다. 우선, 선형회귀분석을 위해 필요한 14개의 필드들을 만들어보도록 하겠습니다.
1. Mean Price: 아파트 평단가의 평균을 구합니다.
{avg([Price])}
2. Mean Subsidy: 재난지원금의 평균을 구합니다.
{avg([5차 재난지원금 대상자 비율])}
3. Slope Numerator: 선형회귀분석 라인의 기울기를 구하는 공식의 분자 부분 입니다.
sum([5차 재난지원금 대상자 비율]*[Price])*count([5차 재난지원금 대상자 비율])-(sum([5차 재난지원금 대상자 비율])*sum([Price]))
4. Denominator: 선형회귀 분석 라인의 기울기를 구하는 공식의 분모 부분 입니다.
sum([5차 재난지원금 대상자 비율]^2)*COUNT([5차 재난지원금 대상자 비율])-(sum([5차 재난지원금 대상자 비율])*sum([5차 재난지원금 대상자 비율]))
5. Y-Numerator: 상수값의 분자 부분 입니다.
sum([5차 재난지원금 대상자 비율]^2)*sum([Price])-(sum([5차 재난지원금 대상자 비율]*[Price])*sum([5차 재난지원금 대상자 비율]))
6. Slope: 선형회귀분석의 라인 기울기를 구합니다.
[Slope numerator]/[Denominator]
7. Y-intercept: 선형회귀분석의 상수값을 구합니다.
[Y Numerator]/[Denominator]
8. Regression Equation: 선형회귀분석 공식을 만듭니다.
{[Slope]}*[5차 재난지원금 대상자 비율]+{[Y-intercept]}
9. Mean Squared Error: 평균제곱오차를 구합니다.
{Fixed:sum(([Price]-[Regression Equation])^2)}/{fixed:count([5차 재난지원금 대상자 비율])}
10. Residual Sum of Square
{Fixed:sum(([Price]-[Regression Equation])^2)}
11. Total Sum of Square
{sum(([Price]-[Mean Price])^2)}
12. R2: 재난지원금 비율이 아파트 평당가를 얼마나 잘 설명하는지 나타낼 수 있는 R-Square 값 입니다.
1-([Residual Sum of Squares]/[Total Sum of Squares])
13. Pearson Correlation: 상관관계를 구합니다.
{FIXED: SUM(([5차 재난지원금 대상자 비율]-[Mean Subsidy])*([Price]-[Mean Price]))}
/
{FIXED: SQRT(SUM(([5차 재난지원금 대상자 비율]-[Mean Subsidy])^2)*SUM(([Price]-[Mean Price])^2))}
14. Covariance: 분산 정도를 확인할 수 있는 공분산을 구합니다.
{FIXED: SUM(([5차 재난지원금 대상자 비율]-[Mean Subsidy])*([Price]-[Mean Price]))}
/
({FIXED: COUNTD([5차 재난지원금 대상자 비율])} -1)
워크시트 작성하기
아래와 같이 태블로를 통해 만든 필드들을 배치하고 색상 및 폰트를 설정하여 줍니다.
1. Regression 차트 워크시트
2. 선형 회귀 공식 워크시트
3. Covariance 워크시트
4. Correlation
5. R-Square
6. 위에 만들었던 워크시트를 대시보드에 배열하여 주면 아래와 같이 완성된 대시보드를 만드실 수 있습니다.
Use case
아래는 제가 위의 예시를 디자인으로 씌워 완성한 대시보드 입니다. 이렇게 태블로를 통해 선형회귀분석 수치와 차트를 만들면 아래와 같은 대시보드를 만들어 좀 더 가시적으로 사람들에게 공유할 수 있습니다. 여러분도 R이나 Python을 넘어 태블로를 통해 선형 회귀분석을 해보는게 어떨까요? 사람들에게 더 가시적인 통계 시각화 자료를 제공할 수 있습니다.
https://public.tableau.com/app/profile/wansikmyung/viz/_16314136490200/Dash
Reference
Playfair – https://playfairdata.com/how-to-isolate-linear-regression-equations-in-tableau/