들어가며
왜 부산 남구 아파트 실거래 데이터를 분석해야 할까?
아파트 실거래 데이터를 기반으로 가격 예측모형을 만들때 우선 고려할 요소는 부동산의 특성입니다. 상대적 입지와 비교에 대한 상품인 부동산의 경우, 특정 지역에 한정되는 특성이 있습니다. 세부적으로 보면 어떤 특정 동의 특정 지역에 한정할 수도 있습니다. 그렇다고 시 전체의 데이터를 가지고 하면, 넓은 지역의 특징이 모두 평균적으로 반영되어 개별 아파트의 가격 예측의 정확성이 떨어질 수 밖에 없습니다.
그래서 구 단위의 데이터를 가지고, 구 단위의 예측모델을 만드는게 목표입니다. 부산의 13개의 구,군이 있습니다. 이중에서 제가 살고 있는 부산남구의 데이터를 가지고 예측모델을 만들어보고, 다음에는 해운대구, 수영구, 동래구 등으로 개별 모델을 만들어 보려고합니다.
데이터 분석 및 예측 모델의 중요성
데이터 분석을 통해서 아파트 실거래가 데이터의 특성을 알아보고, 어떤 요소들이 부동산 가격에 영향을 미치는 중요 변수인지 확인하는게 이 프로젝트의 목표입니다. 부가적으로 예측모델을 만들어 실제 매물들의 가격을 예측해보고, 그 차이를 통해서 매물들의 저평가 가능성을 확인할 수 있습니다.
2020-2024년 데이터를 선택한 이유
부산의경우 2020년을 전후로 하여 부동산가격이 급등하고 이후 22년 23년을 거치면서 다시 하락을 했습니다. 전 고점대비 평균적으로 2~30% 하락한 시점이고, 이 데이터 역시 2010년 후반에 비하면 많이 오른 가격입니다. 최근 4년정도의 데이터를 가지고 흐름을 보는게 적절하다고 판단하였습니다.
실제 데이터는 2020년 1월~2024년 9월까지의 부산 남구의 아파트 실거래가 입니다.
데이터 수집 및 준비
데이터 수집 경로와 출처 소개
데이터는 공공데이터 포털에서 제공하는 국토교통부 아파트 매매 실거래가 상세자료를 이용하였습니다. 여기서 제공되는 open api를 이용해서 python을 이용해서 수집하였습니다.
데이터 구성 및 주요 변수 설명
수집된 데이터는 아래와 같습니다. 법정동 코드와 지번코드 주소관련 정보와 단지명(아파트명) 그외 거래된 년,월,일, 거래금액, 전용면적, 층수, 건축년도 등이 있고 기타 부가적인 정보(해제일, 부동산중개소 주소 등)가 있습니다.
데이터 정제 과정
데이터분석은 R을 통해서 진행했습니다. 분석을 위해서 추가적인 작업을 하였습니다.
결측치 처리 및 이상치 제거 방법
필요 없는 변수 제거 및 변수 생성
1. 계약년월일 컬럼 생성 : 계약년도, 월, 일이 분리 되어 있어서 3개를 합해서 1개의 컬럼을 생성하였습니다.
# 계약일자 생성(계약년도+계약월+계약일) df_trade <- df_trade %>% mutate( # Create date by combining year, month, day 계약일자 = as.Date( paste( 계약년도, # Year sprintf("%02d", 계약월), # Month with leading zero sprintf("%02d", 계약일), # Day with leading zero sep = "-" ) ) ) |
2. 컬럼에 값이 없는(NA)이 없는 컬럼을 제외하였습니다. 32개의 컬럼중 5개가 na값으로 되어 있습니다.
#NA값만 있는 컬럼 제외 df_clean <- df_trade %>% select_if(~!all(is.na(.))) # Keep only columns where not all values are NA |
이렇게 정리하면 14,116개의 레코드와 27개의 컬럼으로 구성된 데이터셋을 세팅하였습니다.
EDA (탐색적 데이터 분석)
1. 컬럼명 확인
> print(names(df_clean)) [1] "법정동시군구코드" "법정동읍면동코드" "법정동지번코드" "법정동본번코드" "법정동부번코드" "도로명" [7] "도로명시군구코드" "도로명코드" "단지명" "지번" "전용면적" "계약년도" [13] "계약월" "계약일" "거래금액" "층" "건축년도" "단지일련번호" [19] "해제여부" "해제사유발생일" "아파트동명" "토지임대부아파트여부" "법정동코드" "시도명" [25] "시군구명" "읍면동명" "계약일자" |
2. 기본 통계량 확인( skim 패키지)
Detailed Summary Statistics: > skim(df_clean) ── Data Summary ──────────────────────── Values Name df_clean Number of rows 14116 Number of columns 27 _______________________ Column type frequency: character 18 Date 1 logical 1 numeric 7 ________________________ Group variables None ── Variable type: character ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── skim_variable n_missing complete_rate min max empty n_unique whitespace 1 법정동시군구코드 0 1 5 5 0 1 0 2 법정동읍면동코드 0 1 5 5 0 6 0 3 법정동지번코드 0 1 1 1 0 2 0 4 법정동본번코드 0 1 1 4 0 236 0 5 법정동부번코드 0 1 1 4 0 61 0 6 도로명 4 1.00 3 10 0 139 0 7 도로명시군구코드 4 1.00 5 5 0 1 0 8 도로명코드 4 1.00 7 7 0 139 0 9 단지명 0 1 2 20 0 356 0 10 지번 0 1 1 9 0 607 0 11 단지일련번호 0 1 7 10 0 359 0 12 해제여부 13308 0.0572 1 1 0 1 0 13 해제사유발생일 13308 0.0572 8 8 0 482 0 14 토지임대부아파트여부 0 1 1 1 0 1 0 15 법정동코드 0 1 10 10 0 6 0 16 시도명 0 1 5 5 0 1 0 17 시군구명 0 1 2 2 0 1 0 18 읍면동명 0 1 3 3 0 6 0 ── Variable type: Date ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── skim_variable n_missing complete_rate min max median n_unique 1 계약일자 0 1 2020-01-01 2024-09-30 2021-05-03 1655 ── Variable type: logical ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── skim_variable n_missing complete_rate mean count 1 아파트동명 12310 0.128 1 TRU: 1806 ── Variable type: numeric ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist 1 전용면적 0 1 80.7 29.9 16.2 59.9 84.5 85.0 262. ▆▇▂▁▁ 2 계약년도 0 1 2021. 1.44 2020 2020 2021 2023 2024 ▇▅▂▃▂ 3 계약월 0 1 6.54 3.22 1 4 6 9 12 ▇▆▇▅▇ 4 계약일 0 1 15.8 8.69 1 8 16 23 31 ▇▇▇▇▆ 5 거래금액 0 1 42074. 32350. 3000 19900 32700 56000 380000 ▇▁▁▁▁ 6 층 0 1 11.9 8.84 1 5 10 17 68 ▇▃▁▁▁ 7 건축년도 0 1 2004. 10.6 1971 1997 2004 2013 2024 ▁▂▇▇▆ |
3. 수치형 변수 요약 통계 확인
> #기본 통계량 생성: Generate summary statistics using skimr > cat("\nDetailed Summary Statistics:\n") > print(summary_stats) 전용면적 계약년도 계약월 계약일 거래금액 층 건축년도 Min. : 16.25 Min. :2020 Min. : 1.00 Min. : 1.00 Min. : 3000 Min. : 1.00 Min. :1971 1st Qu.: 59.94 1st Qu.:2020 1st Qu.: 4.00 1st Qu.: 8.00 1st Qu.: 19900 1st Qu.: 5.00 1st Qu.:1997 Median : 84.52 Median :2021 Median : 6.00 Median :16.00 Median : 32700 Median :10.00 Median :2004 Mean : 80.67 Mean :2021 Mean : 6.54 Mean :15.82 Mean : 42074 Mean :11.89 Mean :2004 3rd Qu.: 84.98 3rd Qu.:2023 3rd Qu.: 9.00 3rd Qu.:23.00 3rd Qu.: 56000 3rd Qu.:17.00 3rd Qu.:2013 Max. :262.42 Max. :2024 Max. :12.00 Max. :31.00 Max. :380000 Max. :68.00 Max. :2024 |
4.수치형 변수 히스토그램 분포 확인
거래금액은 대부분의 거래가 5억 이하이고, 3억이하 거래가 비중이 높은편이네요.
건축년도 기준으로 보면 조금 다양한ㄴ데 그래도 2000년 이후와 2020년전후 아파트의 거래량이 많습니다.
년도로 보면 2020년에 가장 거래량이 많았고 2022년이 거래량이 가장 작았습니다.
거래월은 6월과 10월이 가장 빈도가 높고, 계약일은 15일정도가 가장 빈도가 높게 나오네요
전용면적으로 보면 84, 혹은 59타입에 해당하는 34평, 25평대 거래가 가장 빈도가 높은것으로 보입니다.
층별로는 10층이하 거래가 많고, 중층으로 보이는 15~6층대 거래도 빈도가 있는것으로 보이네요.
5. 범주형 변수의 확인
일부 건만 확인해봤는데 전체 거래건수중에 808건이 해제로(실거래가 취소거래) 등록되어 있습니다.
동별로 보면 대연동 5185건으로 가장 거래건수가 많고, 용호동, 문현동 순입니다.
$해제여부 Value Count Percentage 1 O 808 100 $읍면동명 Value Count Percentage 1 감만동 1028 7.282516 2 대연동 5185 36.731369 3 문현동 2044 14.480023 4 용당동 647 4.583451 5 용호동 4596 32.558799 6 우암동 616 4.363842 |
6. 수치형 변수 상관관계 분석
기본적으로 거래금액은 전용면적과 상관관계가 높고(너무 당연하겠지요), 계약년도 와도 상관관계가 조금 높게 나오네요. 즉 최근 거래일수록 거래금액이 조금 상승한다고 봐야겠지요.
'층'수를 기준으로 보면 층이 높을수록 거래금액이 높고, 전용면적이 넓을수로 층도 높은 경우가 있나봅니다.
건축년도 기준으로 보면 최근 건축년도(신축)일수록 거래금액이 높다는거 너무 당연한걸까요? 그외 층수와 계약년도와도 상관관계가 높게 나왔습니다.
7. 결측치 분석 Missing Values Analysis
결론 및 다음 단계
이번 분석에서 얻은 주요 인사이트
이번 포스팅에서는 부산남구 지역의 실거래가 데이터로 간단히 EDA를 통해서 확인을 해보았습니다.다음번에는 해당 데이터셋을 년도별로, 동별로 좀 더 자세히 살펴보겠습니다. 예측모델을 만들때까지 한번 계속 봐주세요.
함께 보면 좋을
국토교통부_아파트 매매 실거래가 상세 자료
https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15126468
'아재도 하는 데이터분석' 카테고리의 다른 글
[부산 아파트 가격 예측 3편] 부산 남구 아파트 실거래가 예측: 머신러닝 모델 비교와 분석 (0) | 2024.12.29 |
---|---|
[부산 아파트 가격 예측 2편] 부산 남구 아파트 실거래가 데이터 분석: 거래량, 금액, 주요 단지 트렌드 (0) | 2024.12.28 |
[데이터소개] 스타벅스 매장은 지난 1년간 얼마나 늘었을까?(feat. 스타벅스 매장 목록 파일, 2023.06.15.) (1) | 2023.06.17 |
[데이터 소개] 국민건강영양조사 2편(Feat. R DataExplorer) (1) | 2020.05.21 |
[데이터 소개] 국민건강영양조사 1편(Feat. 질병관리본부 KCDC) (0) | 2020.05.19 |