오늘도 어제에 이어서 프로젝트와 관련된 내용이다.
특정 지역에서 아파트 지표들과 매출이 상관관계가 있다는 논문을 봤는데 모든 지역에 적용되는 것은 아닌가보다.
쓸데없는 짓을 했다는 생각이 든다.
일단 오늘 한 자료를 올린다.
================================ R ================================
rm(list=ls())
## MongoDB connection
#sales 데이터 분석
con1 <- mongolite::mongo(collection = "apart",
db = "seoulpopulation",
url = "mongodb://localhost",
verbose = TRUE,
options = ssl_options()
)
#MongoDB에서부터 데이터를 data.frame으로 가져오기 : type data.frame
df_apart <- con1$find(query ='{}')
#가져온 것을 확인
head(df_apart)
#클래스 확인: data.frame
class(df_apart)
#요약
summary(df_apart)
#df_sales와 df_apart를 join시켜 총매출과 아파트의 상관관계를 비교분석 할 수 있게 만든다.
df_sales_apart <- left_join(df_sales,df_apart,by="TRDAR_CD")
#제대로 되었는지 확인
head(df_sales_apart)
#결측치를 확인
table(is.na(df_sales_apart))
#1.###########################매출금액과 아파트 면적의 관계
# AE_66_SQMT_BELO_HSHLD_CO: 아파트 면적 66제곱미터 미만 세대 수
# AE_66_SQMT_HSHLD_CO: 아파트 면적 66제곱미터 세대 수
# AE_99_SQMT_HSHLD_CO: 아파트 면적 99제곱미터 세대 수
# AE_132_SQMT_HSHLD_CO: 아파트 면적 132제곱미터 세대 수
# AE_165_SQMT_HSHLD_CO: 아파트 면적 165제곱미터 세대 수
#데이터가 0, 음수면 잘못된 값이기 때문에 그런 값들을 없애준다.
#없애기 전 데이터
dim(df_sales_apart) #299617 100
df_filter_sqmt <- df_sales_apart %>% filter(!(AE_66_SQMT_BELO_HSHLD_CO <= 0) ) %>%
filter(!(AE_66_SQMT_HSHLD_CO <= 0)) %>% filter(!(AE_99_SQMT_HSHLD_CO <= 0)) %>%
filter(!(AE_132_SQMT_HSHLD_CO <= 0)) %>% filter(!(AE_165_SQMT_HSHLD_CO <= 0)) %>%
filter(!(THSMON_SELNG_AMT <= 0))
dim(df_filter_sqmt) #194437 100
#그래프 그리기
AE_66_SQMT_BELO <- ggplot(df_filter_sqmt, aes(x = THSMON_SELNG_AMT, y = AE_66_SQMT_BELO_HSHLD_CO)) + geom_point()
AE_66_SQMT_BELO
#데이터 확인 결과 점들이 앞부분에 몰려있어 제대로 된 데이터 분석이 어려워 상용로그를 취해 데이터 분포를 줄인다.
AE_66_SQMT_BELO <- ggplot(df_filter_sqmt, aes(x = log10(THSMON_SELNG_AMT), y = log10(AE_66_SQMT_BELO_HSHLD_CO))) + geom_point()
AE_66_SQMT <- ggplot(df_filter_sqmt, aes(x = log10(THSMON_SELNG_AMT), y = log10(AE_66_SQMT_HSHLD_CO))) + geom_point()
AE_99_SQMT <- ggplot(df_filter_sqmt, aes(x = log10(THSMON_SELNG_AMT), y = log10(AE_99_SQMT_HSHLD_CO))) + geom_point()
AE_132_SQMT <- ggplot(df_filter_sqmt, aes(x = log10(THSMON_SELNG_AMT), y = log10(AE_132_SQMT_HSHLD_CO))) + geom_point()
AE_165_SQMT <- ggplot(df_filter_sqmt, aes(x = log10(THSMON_SELNG_AMT), y = log10(AE_165_SQMT_HSHLD_CO))) + geom_point()
#각 그래프를 출력해본다.
AE_66_SQMT_BELO
AE_66_SQMT
AE_99_SQMT
AE_132_SQMT
AE_165_SQMT
##모든 그래프가 전혀 상관이 없어 보인다.
#어떤 회귀분석 모델을 사용할지 결정을 하기 위해 상관관계분석을 해본다.
df_amt_by_sqmt <- df_filter_sqmt %>% select(THSMON_SELNG_AMT, AE_66_SQMT_BELO_HSHLD_CO, AE_66_SQMT_HSHLD_CO, AE_99_SQMT_HSHLD_CO, AE_132_SQMT_HSHLD_CO, AE_165_SQMT_HSHLD_CO)
df_amt_by_sqmt_cor <- cor(df_amt_by_sqmt)
#데이터를 출력해본다.
df_amt_by_sqmt_cor
corrplot(df_amt_by_sqmt_cor)
#상관관계가 없다는 걸 알았으므로 분석을 그만한다.
#2.###########################매출금액과 아파트 가격의 관계
# PC_1_HDMIL_BELO_HSHLD_CO: 아파트 가격 1억 미만 세대 수
# PC_1_HDMIL_HSHLD_CO: 아파트 가격 1억 세대 수
# PC_2_HDMIL_HSHLD_CO: 아파트 가격 2억 세대 수
# PC_3_HDMIL_HSHLD_CO: 아파트 가격 3억 세대 수
# PC_4_HDMIL_HSHLD_CO: 아파트 가격 4억 세대 수
# PC_5_HDMIL_HSHLD_CO: 아파트 가격 5억 세대 수
# PC_6_HDMIL_ABOVE_HSHLD_CO: 아파트 가격 6억 이상 세대 수
#데이터가 0, 음수면 잘못된 값이기 때문에 그런 값들을 없애준다.
#없애기 전 데이터
dim(df_sales_apart) #299617 100
df_filter_pc <- df_sales_apart %>% filter(!(PC_1_HDMIL_BELO_HSHLD_CO <= 0) ) %>%
filter(!(PC_1_HDMIL_HSHLD_CO <= 0)) %>% filter(!(PC_2_HDMIL_HSHLD_CO <= 0)) %>%
filter(!(PC_3_HDMIL_HSHLD_CO <= 0)) %>% filter(!(PC_4_HDMIL_HSHLD_CO <= 0)) %>%
filter(!(PC_5_HDMIL_HSHLD_CO <= 0)) %>% filter(!(PC_6_HDMIL_ABOVE_HSHLD_CO <= 0)) %>%
filter(!(THSMON_SELNG_AMT <= 0))
dim(df_filter_pc) #98642 100
#그래프 그리기
PC_1_HDMIL_BELO <- ggplot(df_filter_pc, aes(x = THSMON_SELNG_AMT, y = PC_1_HDMIL_BELO_HSHLD_CO)) + geom_point()
PC_1_HDMIL_BELO
#데이터 확인 결과 점들이 앞부분에 몰려있어 제대로 된 데이터 분석이 어려워 상용로그를 취해 데이터 분포를 줄인다.
PC_1_HDMIL_BELO <- ggplot(df_filter_pc, aes(x = log10(THSMON_SELNG_AMT), y = log10(PC_1_HDMIL_BELO_HSHLD_CO))) + geom_point()
PC_1_HDMIL <- ggplot(df_filter_pc, aes(x = log10(THSMON_SELNG_AMT), y = log10(PC_1_HDMIL_HSHLD_CO))) + geom_point()
PC_2_HDMIL <- ggplot(df_filter_pc, aes(x = log10(THSMON_SELNG_AMT), y = log10(PC_2_HDMIL_HSHLD_CO))) + geom_point()
PC_3_HDMIL <- ggplot(df_filter_pc, aes(x = log10(THSMON_SELNG_AMT), y = log10(PC_3_HDMIL_HSHLD_CO))) + geom_point()
PC_4_HDMIL <- ggplot(df_filter_pc, aes(x = log10(THSMON_SELNG_AMT), y = log10(PC_4_HDMIL_HSHLD_CO))) + geom_point()
PC_5_HDMIL <- ggplot(df_filter_pc, aes(x = log10(THSMON_SELNG_AMT), y = log10(PC_5_HDMIL_HSHLD_CO))) + geom_point()
PC_6_HDMIL_ABOVE <- ggplot(df_filter_pc, aes(x = log10(THSMON_SELNG_AMT), y = log10(PC_6_HDMIL_ABOVE_HSHLD_CO))) + geom_point()
#각 그래프를 출력해본다.
PC_1_HDMIL_BELO
PC_1_HDMIL
PC_2_HDMIL
PC_3_HDMIL
PC_4_HDMIL
PC_5_HDMIL
PC_6_HDMIL_ABOVE
##모든 그래프가 전혀 상관이 없어 보인다.
#어떤 회귀분석 모델을 사용할지 결정을 하기 위해 상관관계분석을 해본다.
df_amt_by_pc <- df_filter_pc %>% select(THSMON_SELNG_AMT, PC_1_HDMIL_BELO_HSHLD_CO, PC_1_HDMIL_HSHLD_CO, PC_2_HDMIL_HSHLD_CO, PC_3_HDMIL_HSHLD_CO, PC_4_HDMIL_HSHLD_CO,PC_5_HDMIL_HSHLD_CO,PC_6_HDMIL_ABOVE_HSHLD_CO)
df_amt_by_pc_cor <- cor(df_amt_by_pc)
#데이터를 출력해본다.
df_amt_by_pc_cor
corrplot(df_amt_by_pc_cor)
#상관관계가 없다는 걸 알았으므로 분석을 그만한다.
#3.###########################매출금액과 기타 아파트 지표의 관계
# APT_HSMP_CO 아파트 단지 수
# AVRG_AE 아파트 평균 면적
# AVRG_MKTC 아파트 평균 시가
#데이터가 0, 음수면 잘못된 값이기 때문에 그런 값들을 없애준다.
#없애기 전 데이터
dim(df_sales_apart) #299617 100
df_filter_other <- df_sales_apart %>% filter(!(APT_HSMP_CO <= 0) ) %>%
filter(!(AVRG_AE <= 0)) %>% filter(!(AVRG_MKTC <= 0)) %>%
filter(!(THSMON_SELNG_AMT <= 0))
dim(df_filter_other) #299577 100
#그래프 그리기
APT_HSMP_CO <- ggplot(df_filter_other, aes(x = THSMON_SELNG_AMT, y = APT_HSMP_CO)) + geom_point()
APT_HSMP_CO
#데이터 확인 결과 점들이 앞부분에 몰려있어 제대로 된 데이터 분석이 어려워 상용로그를 취해 데이터 분포를 줄인다.
APT_HSMP_CO <- ggplot(df_filter_other, aes(x = log10(THSMON_SELNG_AMT), y = log10(APT_HSMP_CO))) + geom_point()
AVRG_AE <- ggplot(df_filter_other, aes(x = log10(THSMON_SELNG_AMT), y = log10(AVRG_AE))) + geom_point()
AVRG_MKTC <- ggplot(df_filter_other, aes(x = log10(THSMON_SELNG_AMT), y = log10(AVRG_MKTC))) + geom_point()
#각 그래프를 출력해본다.
APT_HSMP_CO
AVRG_AE
AVRG_MKTC
##모든 그래프가 전혀 상관이 없어 보인다.
#어떤 회귀분석 모델을 사용할지 결정을 하기 위해 상관관계분석을 해본다.
df_amt_by_other <- df_filter_other %>% select(THSMON_SELNG_AMT, APT_HSMP_CO, AVRG_AE, AVRG_MKTC)
df_amt_by_other_cor <- cor(df_amt_by_other)
#데이터를 출력해본다.
df_amt_by_other_cor
corrplot(df_amt_by_other_cor)
#상관관계가 없다는 걸 알았으므로 분석을 그만한다.
================================ R ================================
정말 안타깝게도 전혀 연관성이 없었다.
도대체 내가 본 논문의 지역은 엄청 특수한 곳이었던가 아니면 데이터를 조작했던 게 아닐까.
어쨌든 전부 0.1 미만의 상관관계만 있었으므로 아파트 지표와 총매출은 전혀 관계가 없다고 말할 수 있다.
아니면 상용로그를 취한 게 잘못이었을까...?
'프로젝트' 카테고리의 다른 글
[Error] java.sql.SQLException: 부적합한 열 이름 (0) | 2018.04.30 |
---|---|
[Error] ORA-00942: 테이블 또는 뷰가 존재하지 않습니다 (0) | 2018.04.30 |
[Error] 데이터를 정제하지 않아 생기는 에러 (0) | 2018.04.27 |
[프로젝트 데이터 분석] 매출액과 연령, 시간, 요일의 상관관계 분석 및 시각화(상권배후지-추정매출) in R - MongoDB (0) | 2018.04.27 |
[프로젝트 데이터 분석] 상권분석을 위한 서울시 골목상권 프로파일링 정보(상권배후지-추정매출) in R - MongoDB (0) | 2018.04.26 |