R을 이용해 공동주택 가격에 대한 통계분석을 시도해보았습니다.
이번 게시물에서는
1. 공동주택에 대한 설명
2. 사용한 데이터에 대한 소개
3. 데이터 전처리
4. EDA
5. 가격의 통계분석
6. 교차분석
7. 추가상관분석 & 회귀분석
에 대해 다뤄보겠습니다.
>> 이전 게시물
[R 데이터분석] 공동주택 가격현황분석 - (1) 개요
>> 사용 데이터 파일은 다음 링크를 통해 다운 받으실 수 있습니다.
https://drive.google.com/file/d/1DzOminjLAGnGlEPIj7RkbtYG_U3VMO3y/view?usp=sharing
# 데이터 불러오기
# 엑셀 파일 불러오기
install.packages("readxl")
library(readxl)
getwd()
setwd("C:/Rwork/Gong")
gongdong <- read_excel("gongdong.xlsx", col_names = FALSE)
View(gongdong)
gongdong_price <- read_excel("gongdong_price.xlsx", col_names = FALSE)
View(gongdong_price)
gongdong_price2 <- read_excel("gongdong_price2.xlsx", col_names = FALSE)
View(gongdong_price2)
# => 칼럼이름 없이 엑셀에 입력 되어있는 공동주택, 공동주택가격 데이터 불러옴
# 불러온 데이터 확인하기
head(gongdong)
head(gongdong_price)
head(gongdong_price2)
str(gongdong) # 155686 obs. of 14 variables:
str(gongdong_price) # 1048576 obs. of 11 variables:
str(gongdong_price2) # 253644 obs. of 11 variables:
# 나눠져있는 price 데이터 합치기
gd_price <- rbind(gongdong_price, gongdong_price2)
str(gd_price) # 1302220 obs. of 11 variables:
1048576 + 253644 # 1302220
# column 이름 넣기
colnames(gongdong) <- c("시도명", "시군구명", "시군구코드", "법정동명", "법정동코드",
"주번지", "부번지", "Y좌표값", "X좌표값", "고유코드", "공동주택명",
"공동주택구분", "건축년월", "도로명")
colnames(gd_price) <- c("고유코드", "공동주택명", "공동주택구분", "가격구분", "평형",
"대지평형", "계약일", "보증금", "월세", "층", "년월")
# => 의미를 구분할 수 있게 칼럼 이름 추가
head(gongdong)
head(gd_price)
# 두 테이블 '고유코드'로 조인하기
install.packages('dplyr')
library('dplyr')
gd <- inner_join(gongdong, gd_price, by = c("고유코드"="고유코드"))
# 지역정보와 가격 및 평형 데이터를 함께 보기 위해 공통필드인 '고유코드'로 두 데이터 결합
str(gd)
# 가격구분 칼럼의 매매(1), 전세(2), 월세(3)로 나누기
# 형식) df %>% filter(필터조건) -> 행선택
gd1 <- filter(gd, gd$가격구분=="매매")
gd2 <- filter(gd, gd$가격구분=="전세")
gd3 <- filter(gd, gd$가격구분=="월세")
# 조건대로 잘 나눠졌는지 확인
subset(gd1, select=c("가격구분","시도명"))
subset(gd2, select=c("가격구분","시도명"))
subset(gd3, select=c("가격구분","시도명"))
#----------------------- 사용할 칼럼만 정리하기 -------------------------
# 사용할 칼럼 : 1. 시도명, 2.시군구명, 8.Y좌표값, 9.X좌표값,
# 12.공동주택구분.x, 13.건축년월,
# 17.가격구분, 18.평형, 21.보증금
colnames(gd1)[c(12)] <- c("공동주택구분")
gd1 <- gd1[,c(1,2,8,9,12,13,17,18,21,23)]
# 출력 형태 확인
head(gd1)
- 앞으로의 과정과 통계분석을 간단히 진행하기 위해서 '전세'와 '월세' 데이터는 필요가 없다고 판단함
- 일단 전세 주택의 가격(보증금)은 매매 주택의 가격(보증금)과 차이가 없었고,
- 월세 주택은 보증금과 월세, 두 칼럼으로 가격이 결정되기 때문에 복잡함
- 월세 주택의 가격을 결정 짓기 어렵지만, 건물의 가격이 비싸면 월세도 비싸지는 것이 보편적이기 때문에 매매 주택만 살펴봐도 괜찮겠다는 결론을 내림
- 즉, 매매로 분류된 주택의 가격(보증금)만 가지고 통계분석을 진행할 것
# 건축년월 칼럼 범주형으로 변경
# 건축년월에 나타나는 0(이상치) 제거
gd1 <- filter(gd1, 건축년월!=0)
# '0'값이 일부 포함되어 있는 것은 이상치라고 판단하고 제거함
# 척도변경(연속형 -> 범주형)
gd1$건축년대[gd1$건축년월 <= 1939] <- 1930
gd1$건축년대[gd1$건축년월 >= 1940 & gd1$건축년월 <= 1949] <- 1940
gd1$건축년대[gd1$건축년월 >= 1950 & gd1$건축년월 <= 1959] <- 1950
gd1$건축년대[gd1$건축년월 >= 1960 & gd1$건축년월 <= 1969] <- 1960
gd1$건축년대[gd1$건축년월 >= 1970 & gd1$건축년월 <= 1979] <- 1970
gd1$건축년대[gd1$건축년월 >= 1980 & gd1$건축년월 <= 1989] <- 1980
gd1$건축년대[gd1$건축년월 >= 1990 & gd1$건축년월 <= 1999] <- 1990
gd1$건축년대[gd1$건축년월 >= 2000 & gd1$건축년월 <= 2009] <- 2000
gd1$건축년대[gd1$건축년월 >= 2010] <- 2010
# 1938년부터 2015년까지의 건축년도 데이터를 10년 단위로 범주화
# 평형 칼럼 단위 변경, 범주형으로 변경
# 평형데이터 변경(제곱미터 -> 평수)
gd1$평형 <- (gd1$평형 / 3.305785)
# 원본은 제곱미터 기준이나, 대중적으로 통용되어 익숙한 평 기준으로 변환
# 평형 1평~100평 이외의 이상치 제거
gd1 <- filter(gd1, 평형 >= 1)
# 1평보다 작은 평수는 이상치라고 판단하고 제거
# 척도변경(연속형 -> 범주형)
gd1$평형분류[gd1$평형 < 10] <- "1.초소형"
gd1$평형분류[gd1$평형 >= 10 & gd1$평형 < 24] <- "2.소형"
gd1$평형분류[gd1$평형 >= 24 & gd1$평형 < 40] <- "3.중형"
gd1$평형분류[gd1$평형 >= 40 & gd1$평형 < 60] <- "4.대형"
gd1$평형분류[gd1$평형 >= 60] <- "5.초대형"
# 인터넷 부동산 카페 의견을 참고하여 소형, 중형, 대형 등 평수를 범주화
>> 다음 게시물
[R 데이터분석] 공동주택 가격현황분석 - (3) EDA 및 통계분석
'R 과 데이터분석 > [활용] 공동주택 가격 분석' 카테고리의 다른 글
[R 데이터분석] 공동주택 가격현황분석 - (5) 상관, 회귀분석 (0) | 2019.11.28 |
---|---|
[R 데이터분석] 공동주택 가격현황분석 - (4) 교차분석 (0) | 2019.11.28 |
[R 데이터분석] 공동주택 가격현황분석 - (3) EDA 및 통계분석 (0) | 2019.11.28 |
[R 데이터분석] 공동주택 가격현황분석 - (1) 개요 (0) | 2019.11.28 |
댓글