오늘도 어제에 이어서 프로젝트와 관련된 내용이다.


특정 지역에서 아파트 지표들과 매출이 상관관계가 있다는 논문을 봤는데 모든 지역에 적용되는 것은 아닌가보다.


쓸데없는 짓을 했다는 생각이 든다.


일단 오늘 한 자료를 올린다.





================================ 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 미만의 상관관계만 있었으므로 아파트 지표와 총매출은 전혀 관계가 없다고 말할 수 있다.


아니면 상용로그를 취한 게 잘못이었을까...?

+ Recent posts