일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 데이터전처리
- 데이터분석
- IT멘토링
- 상권배후지
- 브라이틱스데이터분석
- EDA
- Brightics서포터즈
- 삼성자격증
- 브라이틱스서포터즈
- 데이터분석대외활동
- SDSBrightics
- 모델링
- 골목상권데이터분석
- 삼성SDSBrightics
- associateDS
- 삼성sds
- Kaggle출전
- houseprice
- kaggle
- 분석모델링
- 회귀모형평가
- ProDS
- AdSP
- BrighticsStudio
- Datascientist
- 서울시상권분석
- 브라이틱스
- samsungsds
- Brightics
- 코딩없이데이터분석
- Today
- Total
Database for Everything
[삼성 SDS Brightics] 상관분석 - 부동산 데이터를 통해 전/월세와 매매가격 간 상관관계 분석(feat. Pearson분석) 본문
[삼성 SDS Brightics] 상관분석 - 부동산 데이터를 통해 전/월세와 매매가격 간 상관관계 분석(feat. Pearson분석)
Yeenn 2021. 7. 5. 02:40
안녕하세요! 브라이틱스 서포터즈 yeenn입니다:)
이제 드디어 서포터즈 활동 5주차에 접어들었는데요,
지난 주까지의 개인분석 미션이 모두 끝나고 드디어 팀 미션이 시작되었습니다!
제가 속해 있는 브라이틱스 3조는 현재 브라이틱스 홍보 영상관련해서 영상 기획안 회의를 진행중인데요,
관련 포스팅도 회의가 마무리되는 대로 정리하여 올리도록 하겠습니다!(기대해주세요ㅎㅎ)
이번 주 포스팅은 개인 미션은 아니구요, 3주간 개인분석 미션에서 다 다루지 못한 브라이틱스 공부&실습을 다루는 포스팅입니다..!
브라이틱스 활동 종료시점까지,, 개인 포스팅으로 전반적인 머신러닝부분까지 다루는 것이 목표인데, 팀 미션들과 잘 병행할 수 있도록 호흡 조절 잘해보겠습니다!
이번 주 포스팅에서 다룰 내용은 '상관분석'인데요,
브라이틱스 Tutorial 페이지에 개인적으로 흥미있어보이는 dataset분석이 있어서 튜토리얼을 따라 직접 실습을 진행해보려고 합니다!
* 브라이틱스 튜토리얼 페이지를 보시면 분석 프로세스별로, 분석이 이용되는 산업별로 예제를 통한 자세한 tutorial을 확인하실 수 있습니다!
[이론학습]
상관분석(Correlation Analysis)이란?
두 변수가 서로 어떠한 선형관계를 가지는지 분석하는 기법으로 상관계수를 이용하여 측정하는 분석방법입니다.
상관계수란?
상관계수 r은 X와 Y가 함께 변하는 정도와 X와 Y가 각각 변하는 정도를 나타내며, 이 'r'은 X와 Y가 완전히 동일하면 +1, 반대방향으로 완전히 동일하면 -1 의값을 가집니다.
※ r값이 0인 경우, '상관이 없다'라고 해석하기 보다는 '선형의 관계가 아니다' 라고 말하는 것이 적절합니다!
대표적인 상관계수로는 피어슨(Pearson) 상관계수, 스피어만(Spearman) 상관계수, 켄달(Kendall)상관계수가 있습니다!
1) Pearson 상관계수
-피어슨 상관계수는 두 연속형 변수가 한 직선에 얼마나 모여 있는지, 즉 선형관계의 정도와 그 방향이 어떠한지를 나타냅니다.
- -1≤r≤1 의 범위를 가지며, 절댓값이 1에 가까울수록 강한 상관관계를 나타냅니다.
2) Spearman 상관계수
-스피어만 상관계수는 원래 데이터를 그대로 사용했던 피어슨 상관계수와는 다르게, 원래 데이터에 대해 순위를 구한 후 그 순위에 대해 상관계수를 구한 것입니다.
-순위를 활용하여 상관계수를 구하기 때문에, 스피어만 순위 상관계수라고도 부릅니다.
-피어슨 상관계수와 마찬가지로 -1≤r≤1 의 범위를 가지며, 절댓값이 클 수록 강한 상관관계를 나타냅니다.
3) Kendall 상관계수
-켄달 상관계수는 두 변수의 순위의 일치정도를 측정합니다.
-켄달 상관계수 역시 순위와 관련된 상관계수이기 때문에 켄달 순위 상관계수라고 부르고, 타우를 사용하기 떄문에 '켄달의 타우'라고도 부릅니다.
피어슨 상관계수 | 스피어만/켄달 상관계수 |
-두 변수의 형태가 등간형(interval) 또는 비율형(ratio)일 경우의 상관계수 -두 변수의 선형 정도를 파악할 때 사용 -한 변수의 값이 증가할 때, 다른 변수의 값도 같이 증가 또는 감소하는지의 관계 |
-두 변수의 형태가 순서형(ordinal)인 경우. 서열변수간의 상관관계 -변수의 순위가 증가할 때, 다른 변수의 순위도 같이 증가 또는 감소하는지의 관계 -두 연속형 변수의 분포가 정규분포를 심하게 벗어날 경우의 상관관계를 측정시에도 사용 |
여기까지 간단히 상관분석에 대한 이론학습을 해보았는데요, 충분히 선행 학습이 되셨다면 다음 실습으로 넘어가보도록하겠습니다!
[실습]
1. 상황 및 분석 목표
- 부동산 시장에 관심이 많은 재승이는 주거 밀집지역인 송파구를 대상으로 전/월세 가격와 매매가격 간에 상관관계가 있는지 분석해보고자 합니다.
- 한국감정원, 공공데이터포탈 등에서 부동산 관련 데이터를 제공하고 있으므로 2017년의 월별 데이터로 상관관계를 분석해보고자 합니다.
2. Dataset
- 송파구 지역 아파트 단지의 전/월세 데이터(61_py_rent_price.csv)
변수 | 변수 설명 |
address1 | 시군구 |
address2 | 번지 |
main_num | 본번 |
sub_num | 부번 |
complex_name | 단지명 |
rent_type | 전, 월세 구분 |
area | 면적(제곱미터) |
contract_ym | 계약연월 |
contract_date | 계약일(초, 중 하순 구분) |
deposit | 보증금 |
monthly_rent_fee | 월세 |
floor | 층수 |
construction_year | 시공연월 |
street | 도로명 |
area2 | 평형대 |
- 전월세 전환율(61_py_rent_ratio.csv)
변수 | 변수 설명 |
yyyymm | 연월 |
ratio | 전환율 |
- 매매가격(61_py_sale_price.csv)
변수 | 변수 설명 |
address1 | 시군구 |
address2 | 번지 |
main_num | 본번 |
sub_num | 부번 |
complex_name | 단지명 |
area | 면적 |
contract_ym | 계약연월 |
contract_date | 계약일 |
price | 매매가 |
floor | 층수 |
construction_year | 시공연월 |
street | 도로명 |
area2 | 평형대 |
0. Data Flow Model
1. Data Load
3 종류의 dataset - 송파구 지역 아파트 단지의 전/월세 데이터(61_py_rent_price.csv) / 전월세 전환율(61_py_rent_ratio.csv) / 매매가격(61_py_sale_price.csv) 을 모두 load해줍니다.
세 dataest의 Delimiters는 모두 Comma로 설정하고 load해주시면 됩니다!
특별히 load과정에서 수정해야 할 사항은 없는 듯 합니다.
61_py_rent_price.csv 를 load해줍니다.
61_py_rent_ratio.csv 를 load해줍니다.
61_py_sale_price.csv 를 load해줍니다.
2. 데이터 전처리
앞서 목표에서 전/월세 데이터를 모두 살펴보기로 했었는데요, 두 금액의 단위가 다르기 때문에 월세의 단위를 전세로 환산하는 작업을 진행하도록 하겠습니다.
월세의 경우 보증금의 크기에 따라 정해지기 때문에, 한국감정원에서 매달 발표하는 '전월세 전환율' 데이터를 이용하여 월세를 전세 단위로 환산하여 계산해보겠습니다!
2-1. 데이터 전처리-결합
전/월세 데이터와 전/월세 전환율 데이터의 거래년월을 key value로 결합합니다.
Parameter 설정을
Join Type: Inner join
Left Keys: contract_ym
Right Keys: yyyymm
Sort: Flase
로 지정해주세요.
참!
work flow model에서 rent_price 데이터와 rent_ratio 데이터 load함수를 모두 join함수로 연결시키는 것 유의해주세요!
2-2. 데이터 전처리-전환
그 다음은 전월세 전환율을 이용하여 월세를 전세로 전환할 경우의 보증금을 계산해볼 건데요,
한국감정원에서 발표한 전월세 전환율을 활용한 수식을 사용해보겠습니다.
※ 전환된 보증금 = ((월세 * 12) / 전월세전환율) * 100 + 기존 보증금
New Column Name에는 전환된 변수임이 잘 들어날 수 있는 새 변수명을 지정해주시고,
Expression Type: SQLite
Expression: ((monthly_rent_fee*12)/ratio)*100+deposit)
을 지정하여 Run을 눌러주세요.
월세를 전세로 전환할시의 보증금 변수가 새로 생성이 되었네요!
2-3. 데이터 전처리-변환
그 다음, 주소, 단지명, 전/월세 타입, 계약연월, 평형 별로 평균 보증금 을 구하기 위해서는 데이터의 열과 행을 변환해야 겠죠? pivot함수를 사용해줍니다.
Rows: address1, complex_name, rent_type, contract_ym, area2
Values: deposit
Agreegate Function: Mean
을 지정한 후, Run을 눌러주세요!
그럼 다음과 같은 결과가 나타나게 됩니다.
여담이지만,, 피벗 함수사용도 엑셀보다 브라이틱스가 훨씬 편해요bbb
2-4. 데이터 전처리 - 전세 case filtering
그 다음, 전세인 경우 전세보증금과 매매가격과의 상관관계를 알아보기 위해, 전처리된 데이터에서 전세인 경우의 데이터만 필터링해보겠습니다.
Filter 함수의 Condition에
rent type=='lease'를 지정해줍니다.
(따옴표 잊지 마세요!)
rent type 중 전세 항목인 lease type만 필터링되었습니다!
그 다음은, 월세인 경우 전세보증금과 매매가격과의 상관관계를 알아보아야 겠죠?
앞서 진행한 process와 동일하게 pivot 함수를 통한 데이터 정렬 → filter함수를 통한 월세경우 추출 작업을 진행해줍니다.
2-5. 데이터 전처리-변환
Rows: address1, complex_name, rent_type, contract_ym, area2
Values: mean_monthly_pay_to_deposit
Agreegate Function: Mean
을 지정한 후, Run을 눌러주세요!
2-6. 데이터 전처리 - 월세 case filtering
월세인 경우 전세보증금과 매매가격과의 상관관계를 알아보기 위해, 전처리된 데이터에서 월세인 경우의 데이터만 필터링해보겠습니다.
Filter 함수의 Condition에
rent type=='monthly rent'를 지정해줍니다.
rent type 중 월세 항목인 monthly rent type만 필터링되었습니다!
2-7. 데이터 전처리 - 변환
그 다음, 주소, 단지명, 계약연월, 평형 별로 평균 가격 을 구하기 위해서 데이터의 열과 행을 변환하는 pivot함수를 사용해줍니다.
Row: address_1, complex_name, contract_ym, area2
Vaule: price
Aggregate Function: Mean
을 지정하고 Run을 눌러주세요.
주소, 단지명, 계약연월, 평형 별 평균 매매가격이 table에 재정렬되었습니다!
2-8. 데이터 전처리 - 결합
그 다음은, 앞서 전처리된 평균 전세보증금과 평균 매매가격을 비교해보겠습니다.
송파구 지역의 아파트 단지별 계약연월, 평형별 평균 전세보증금과 평균 매매가격을 비교하기 위해
두 dataset을 join함수를 이용해 결합해보겠습니다.
Join Type: innerjoin
Left Keys: address1, complex_name, contract_ym, area2
Right Keys: address1, complex_name, contract_ym, area2
를 지정하고 Run을 눌러줍니다.
산점도(Scatter Plot)을 통해 위 table을 조금 더 자세히 살펴보겠습니다!
평형별 평균 매매가와 평균 보증금의 관계를 산점도를 통해 살펴보기 위해 parameter을 다음과 같이 지정합니다.
Chart Type: Scatter Plot
X-axis: mean_price
Y_axis: mean_deposit
Color By: area2
그럼 위와 같은 산점도를 확인할 수 있는데요, 전체 데이터의 갯수가 1322개로 default Show rows 1000개보다 많으므로, Show Rows를 3000으로 설정하여 전체 data를 확인할 수 있게 해줍니다.
→ 데이터가 선형으로 분포하고 있음을 알 수 있습니다!
2-9. 데이터 전처리 - 결합
그 다음은, 송파구 지역의 아파트 단지별 계약연월, 평형별 전환된 월세보증금 평균금액과 평균 매매가격을 비교하기 위해 전처리된 두개의 데이터셋을 Join 함수를 이용하여 결합해보겠습니다!
Join Type : Inner Join
Left Keys : address1, complex_name, contract_ym, area2
Right Keys : address1, complex_name, contract_ym, area2
Sort : False
을 지정한 후, Run을 눌러줍니다.
위와 마찬가지로, 산점도(Scatter Plot)을 통해 위 table을 조금 더 자세히 살펴보겠습니다!
아파트 단지별 계약연월, 평형별 전환된 월세보증금 평균금액과 평균 매매가격을 비교하기 위해
Parameter을 다음과 같이 지정해줍니다.
Chart Type: Scatter Plot
X-axis: mean_price
Y-axis: mean_monthly_pay_to_deposit
Color By: area2
→ 데이터가 대체적으로 선형으로 분포하고 있으나 매매가격에 비해 월세 보증금은 크게 오르지 않는 경우가 존재하는 것으로 보여지네요!
3-1. Pearson 상관분석
앞서 살펴 본 평형대 별 매매가격과 전세보증금 간의 상관계수를 계산하여 매매가격의 상승이 전세보증금과 어느정도의 연관성을 가지고 있는지 상관관계분석을 진행해보도록 하겠습니다.
Correlation 함수를 추가하여
Input Columns: mean_price, mean_deposit
Method: Pearson
Display Plots: True
Group By: area2
를 지정해주시고 Run을 눌러주세요.
결과를 살펴볼까요?
- 0평형
- 10평형
- 20평형
- 30평형
- 40평형
- 50평형
→20평형 미만대의 소규모 평수에서 상관계수가 0.84~0.96 로 매우 높은 것을 확인할 수 있었는데요, 이를 통해 매매가격이 오르면 전세보증금도 거의 비슷한 규모로 상승함을 알 수 있었습니다.
→또한, 평형 별로 차이는 있으나 대부분 0.5 이상으로 전세가격과 매매가격 사이에 높은 상관관계가 있음을 알 수 있었습니다.
3-1. Pearson 상관분석
마지막으로, 앞서 살펴 본 평형대 별 매매가격과 월세보증금 간의 상관계수를 계산하여 매매가격의 상승이 월세보증금과 어느정도의 연관성을 가지고 있는지 상관관계분석을 진행해보도록 하겠습니다.
Correlation 함수를 추가하여
Input Columns: mean_price, mean_monthly_pay_to_deposit
Method: Pearson
Display Plots: True
Group By: area2
를 지정해주시고 Run을 눌러주세요.
결과를 살펴볼까요?
- 0평형
- 10평형
- 20평형
- 30평형
- 40평형
- 50평형
→ 월세보증금의 경우도 20평형 미만대의 소규모 평수에서 상관계수가 비교적 높은 상관성을 띄고있는 것을 확인할 수 있었습니다.(0.91, 0.83)
→다만 월세보증금은 송파구 전체의 평균 전월세전환율로 전환된 보증금이므로 실제 세입자가 월세를 전세로 전환할 경우의 보증금 가격과 차이가 존재하기 때문에 전세 보증금과는 다르게 상관관계가 낮게 나타날 수 있습니다.
※ 위의 실습과정은 아래 Brightics Studio Tutorial을 참고하여 작성되었습니다.
https://www.brightics.ai/kr/docs/ai/s1.0/tutorials/61_py_housing_rent_sales_corr?type=insight
Brightics Studio
www.brightics.ai
-본 게시물은 Brightics 서포터즈 활동의 일환으로 작성된 포스팅 입니다.
'삼성 SDS Brightics' 카테고리의 다른 글
[삼성 SDS Brightics] Brightic3 3조의 기가막히는 홍보영상 촬영비하인드 A to Z!! (0) | 2021.07.13 |
---|---|
[삼성 SDS Brightics] 시계열 분석 - ARIMA를 이용하여 샴푸 매출액 분석 및 예측하기 (0) | 2021.07.09 |
[삼성 SDS Brightics] 세계적인 리서치 기관 Gartner도 인정한 Brightics AI의 글로벌한 경쟁력! (0) | 2021.06.29 |
[삼성 SDS Brightics] Brightics AI와 함께하는 삼성 SDS의 무료 웨비나에 여러분을 초대합니다! (0) | 2021.06.28 |
[삼성 SDS Brightics] 브라이틱스 함수 라이브러리-PALLETE_필요한 Function 찾는 방법 (0) | 2021.06.28 |