요약
국내에서 많이 활용되고 있는 4개(소상공인 상권정보시스템, 나이스비즈맵, 지오비전, 우리마을 가게 상권분석 서비스)의 대표적인 상권분석 서비스들은 기업의 자체 데이터 및 공공데이터를 활용하여 단편적인 정보 제공이 그친다. 본 프로젝트의 목적은 서울시가 제공하고 있는 ’우리마을 가게 상권분석 서비스’를 바탕으로 추가적인 데이터 분석을 통해 서울시 및 자치구의 창업 관련 정책지원에 활용될 수 있도록 인사이트를 제공하여 자영업자에 대한 지원을 거시적 관점으로 전환하고 자영업자의 자생력을 높이는 정책 수립 및 집행 과정에 활용되고자 한다.
모델링 아이디어
서울시 골목상권의 점포당 매출액 크기에 따른 다양한 분석을 제공하기 위해 분위회귀분석(Quantile Regression)을 사용한다. Quantile Regression이란 종속변수의 조건부 평균을 추정하는 단일 모형이 아닌 조건부 분위별로 차별화된 모형을 추정하여 대표값만이 아닌 분포패턴 변화를 볼 수 있는 분석 방법이다. 평균에 비해 이상치(outliers)나 비대칭분포(skewed distribution)에 민감하게 반응하지 않는 추정치를 제공한다.
분위회귀분석은 종속변수를 기준으로 분석대상을 줄 세우고 이를 N등분 했을 때, 나뉜 각각의 구간에서 독립변수들이 지니는 효과의 크기가 모두 다를 수 있음을 상정한다. 다시 말해 분석대상들이 수준에 따라 매우 이질적(heterogeneous)일 때, 분위회귀분석을 통해 좀 더 정교한 분석이 가능하다.
\[ y_i = \beta_{\tau}'X_i + u_{\tau i}, \quad Q_{\tau} (y_i \mid X_i) = \beta_{\tau}'X_i \qquad (i=1,2, \dots, n)\]
여기서 \(\beta_{\tau}\)는 \((k \times 1)\) 계수 벡터, \(X_i\)는 설명변수의 \((k \times 1)\) 벡터, \(u_{\tau i}\)는 오차항(error terms)을 각각 나타내며, \(Q_{\tau} (y_i \mid X_i)\)는 \(X\)가 주어진 상태에서의 \(y\)의 \(\tau\)번째 조건부 분위(conditional quantile)를 가리킨다. 물론 모든 \(i\)에 대하여 \(Q_{\tau}(u_{\tau i} \mid X_i) =0\)이 성립한다. 분위회귀계수 \(\beta_{\tau}\)의 추정치는 주어진 분위(\(\tau\))하에서 다음 최소화 문제의 해가 된다.
\[\min \frac{1}{n} \{ \sum_{y_i \geq \beta'X_i} \tau | y_i - \beta'X_i | + \sum_{y_i < \beta'X_i} (1- \tau) | y_i - \beta'X_i| \}\]
데이터 탐색 및 전처리
기본적으로 서울시 공공데이터 포털에서 제공하는 ‘골목상권영역 및 프로파일링’ 자료를 활용한다. 자료는 43개 생활밀착형 업종에 대한 1,008개 골목상권 영역을 대상으로 한다. 데이터 merge를 위해 기준년월, 상권, 서비스 업종 코드를 기준으로 매칭하였다 상당수의 결측치가 존재하여 아래의 기준으로 데이터 전처리를 시행하였으며, 2014년 1월부터 2017년 6월 자료를 분석 대상으로 삼았다.
| 분류 | 컬럼 한글 명 | NA 처리 기준 |
|---|---|---|
| Basic | 총 유동인구 수 | 골목별 평균으로 대체 |
| Basic | 총 직장인구 수 | 0으로 대체(관련 컬럼이 모두 NA인 경우 조사되지 않은 것으로 추정) |
| Basic | 총 상주인구 수 | 0으로 대체(관련 컬럼이 모두 NA인 경우 조사되지 않은 것으로 추정) |
| Basic | 월 평균 소득금액 | 골목별 평균으로 대체 |
| Basic | 지출 총금액 | 골목별 평균으로 대체 |
| Basic | 집객시설 수 | 14년도 : 골목별 15년 1월 데이터로 대체, 15년도 이후 : 골목별 평균으로 대체 |
| Basic | 총 가구 수 | 14년도 : 골목별 15년 데이터로 대체, 15년도 이후 : 골목별 평균으로 대체 |
| Basic | 전년도 매출 금액 | NA제거 |
| Basic | 전년도 매출 건수 | NA제거 |
| Basic | 전년도 점포수 | NA제거 |
변수 선택 및 Scaling 과정
서울시에서 제공하는 공공데이터 자료를 위와 같이 merge 후 결측값 처리 후 자료를 변수 선택을 하고 scaling 과정을 통해 여러 모형 중 Adjusted R2 값을 고려하고 왼쪽으로 치우쳐 있는 반응변수 분포를 보고 log 변환시 각 설명변수의 계수추정값을 아래의 표와 같이 비교해 본 후 최종 모형 선택하였다.
| 변수/변수변화 | 기본회귀 | 설명변수스케일링적용 | 반응변수(매출액) log10 | 매출변화율추가 | 작년매출추가 | 작년매출/점포수 |
|---|---|---|---|---|---|---|
| Intercept | 15.81 | 14.88797 | 6.464 | 13.5603804 | 5.6407524 | 2.2113273 |
| 총 유동인구수 | 0.00001571 | 0.1959947 | 0.08512 | 0.1948344 | 0.1271496 | 0.0581184 |
| 총 직장인구수 | 0.000147 | 0.2714333 | 0.1179 | 0.3141601 | 0.0853105 | 0.0478908 |
| 총 상주인구수 | -0.0001294 | -0.2334790 | -0.1014 | 0.0026710 | -0.0694175 | -0.0401509 |
| 지출 총 금액 | 0.000000 | 0.0298575 | 0.01297 | -0.2324817 | -0.1164573 | 0.0123447 |
| 집객 시설수 | 0.009681 | 0.0077166 | 0.003351 | 0.0073031 | -0.0056289 | 0.0011983 |
| 월평균소득금액 | NA | NA | NA | 0.4047557 | 0.1101651 | -0.0048163 |
| 매출변화율 | NA | NA | NA | 1.1876134 | NA | NA |
| 작년매출(/점포) | NA | NA | NA | NA | 0.6062615 | 0.8437535 |
| Adjusted R2 | 0.01725 | 0.01583 | 0.01583 | 0.1029 | 0.5773 | 0.7105 |
최종변수 정의
| Basic 변수 | 단위 | 정의 | Scaling |
|---|---|---|---|
| 점포당 매출 금액 | 원 | 당월 매출금액을 점포수로 나눈 금액 | 자연로그 |
| 총 유동인구 수 | 명 | 골목상권의 유동인구 | log10 |
| 총 직장인구 수 | 명 | 골목상권에 위치한 회사에서 근무하는 인구 | log10 |
| 총 상주인구 수 | 명 | 골목상권에 주거지를 둔 인구 | log10 |
| 당월 매출 건수 | 건 | 골목상권에 해당하는 상점의 거래건수 | log10 |
| 월 평균 소득 금액 | 원 | 상주인구의 월 평균 소득 | log10 |
| 집객시설 수 | 개 | 골목상권 상점 수 | 없음 |
| 남성매출액 비율 | % | 당월 해당 골목상권의 총 매출액 중 남성이 해당하는 비율 | 없음 |
| 주말매출액 비율 | % | 당월 해당 골목상권의 총 매출액 중 주말이 해당하는 비율 | 없음 |
| 작년매출/점포수 | 원 | 전년도 해당월매출금액을 점포수로 나눈 금액 | log10 |
분석 시나리오
유의미한 분석 결과를 얻기 위해 전체 데이터셋에 대한 분석 외에 다양한 시나리오를 구성하여 분석하였다. 점포당 매출액에 따른 1) 업종(외식업, 서비스업, 도소매업)의 영향력 2) 전년대비 매출 그룹화 3) 주요상권(마포, 강남, 관악)의 영향력을 보고 남자매출 비율 , 주말매출 비율을 설명변수에 추가하여 분석하였다.
시나리오 세부 설명
전년도 점포당 매출액(전년도 해당월 매출액/전년다도 점포수) 대비 당해년도 점포당 매출액(당월 매출액/점포수)를 살펴본 결과, 3개의 그룹으로 나누어진다.
그룹 1은 매출 하락 ,그룹 2는을 매출 유지,그룹 3은 매출 상승이라 볼 수 있다.
외식업: quantile regression
유동인구수: tau 0.5(0.05756) 대비 tau 0.9(0.05987)일 때 1.04배
직장인구수: tau 0.5(0.01496) 대비 tau 0.9(0.01122)일 때 0.75배
상주인구수: tau 0.5(-0.0677) 대비 tau 0.9(-0.01760)일 때 0.26배
월평균소득: tau 0.5(0.0064) 대비 tau 0.9(0.1322)일 때 20배 <=p-value 0.80177
집객시설 : 집객시설수가 늘어나면 tau 0.5일 때 매출 증가 tau 0.9일 때 매출 감소<=p-value 0.21185
서비스업: quantile regression
유동인구수: tau 0.5(0.06609) 대비 0.9(0.08950)일 때 1.35배
직장인구수: tau 0.5(0.03255) 대비 0.9(0.02893)일 때 0.89배
상주인구수: tau 0.5(-0.00804) 대비 0.9(-0.02648)일 때 3.29배
월평균소득: 월소득 늘어나면 tau 0.5일 때 매출 감소 tau 0.9일 때 매출 증가
집객시설 : 집객시설수가 늘어나면 tau 0.5일 때 매출 증가 tau 0.9일 때 매출 감소
도소매업: quantile regression
유동인구수: tau 0.5(0.04498) 대비 0.9(0.04617)일 때 1.03배
직장인구수: tau 0.5(0.01947) 대비 0.9(0.02022)일 때 1.04배
상주인구수: tau 0.5(-0.00414) 대비 0.9(-0.00399)일 때 0.96배<=p-value 0.35958
월평균소득: 월소득 늘어나면 tau 0.5일 때 매출 감소 tau 0.9일 때 매출 증가
집객시설: 집객시설수가 늘어나면 tau 0.5일 때 매출 증가 tau 0.9일 때 매출 감소
그룹1: quantile regression
직장인구수: tau 0.5(0.0005139) 대비 0.9(0.001130)일 때 2.2배 영향이 큼 =>p- value 0.69304
상주인구수: 상주인구 늘어나면 tau 0.5일 때 매출 감소 tau 0.9일 때 매출 증가 =>p- value 0.98316
월평균소득: tau 0.5(-0.05015024) 대비 0.9(-0.007333)일 때 0.15배
집객시설 : tau 0.5(0.002258) 대비 0.9(0.000357)일 때 0.16배
그룹2: quantile regression
유동인구수: tau 0.5(0.0164) 대비 0.9(0.0058)일 때 0.35배
직장인구수: tau 0.5(0.0041) 대비 0.9(0.0025)일 때 0.61배
상주인구수: tau 0.5(-0.0008) 대비 tau 0.9(-0.0005)일 때 0.63배 =>p- value 0.11372
월평균소득: tau 0.5(-0.0152) 대비 0.9(-0.0056)일 때 0.37배
집객시설 : 집객시설수가 늘어나면 tau 0.5일 때 매출 증가 tau 0.9일 때 매출 감소 =>p- value 0.11277
그룹3: quantile regression
유동인구수: tau 0.5(0.026) 대비 tau 0.9(0.066)일 때 2.54배
직장인구수: tau 0.5(0.0052) 대비 tau 0.9(0.0223)일 때 4.29배
상주인구수: tau 0.5(-0.0058) 대비 tau 0.9(-0.011)일 때 1.9배
월평균소득: tau 0.5(0.0868) 대비 tau 0.9(0.2834)일 때 3.26배
집객시설 : tau 0.5(-0.0006) 대비 tau 0.9(-0.0008)일 때 1.3배
강남상권:quantile regression
유동인구수: tau 0.5(0.05015) tau 대비 0.9(0.08493)일 때 1.70배
직장인구수: tau 0.5(0.07862) tau 대비 0.9(0.19561)일 때 2.49배
상주인구수: tau 0.5(-0.07262) tau 대비 0.9(-0.16021)일 때 2.20배
월평균소득: 월소득 늘어나면 tau 0.5일 때 매출 감소 tau 0.9일 때 매출 증가
집객시설 : 집객시설수가 늘어나면 tau 0.5일 때 매출 증가 tau 0.9일 때 매출 감소 =>p- value 0.8484
마포상권: quantile regression
유동인구수: tau 0.5(0.0538) tau 대비 0.9(0.19692)일 때 3.66배
직장인구수: tau 0.5(0.04399) tau 대비 0.9(0.01545)일 때 0.33배
상주인구수: tau 0.5(-0.00816) tau 대비 0.9(-0.01512)일 때 1.8배
월평균소득: 월소득 늘어나면 tau 0.5일 때 매출 감소 tau 0.9일 때 매출 증가
관악상권:quantile regression
상주인구수: tau 0.5(-0.03496) tau 대비 0.9(-0.09668)일 때 2.77배
총유동인구수: tau 0.5(0.0528) 대비 tau 0.9(0.0551)일 때 1.04배 영향
총직장인구수: tau 0.5(0.0171) 대비 tau 0.9(0.018)일 때 1.05배 영향
총상주인구수: tau 0.5(-0.0065) 대비 tau 0.9(-0.0139)일 때 2.14배 영향
월평균소득: 월소득 늘어나면 tau 0.5일 때 매출 감소 tau 0.9일 때 매출 증가
집객시설 : 집객시설수가 늘어나면 tau 0.5일 때 매출 증가 tau 0.9일 때 매출 감소
남자매출액비율: 남자매출이 늘어나면 tau 0.5일 때 매출 증가 tau 0.9일 때 매출 감소
주말매출액비율: 주말매출이 늘어나면 tau 0.5일 때 매출 증가 tau 0.9일 때 매출 감소
총유동인구수: 외식업과 서비스업은 tau 0.5 대비 tau 0.9 일 때 매출액 상승에 더 큰 영향력 있지만 도소매업은 영향력 줄어듬.
총직장인구수: 외식업매출은 다른 업종에 비해 매출상승에 더 큰 영향력을 받고 tau 0.5 대비 tau 0.9일도 더 많이 받음.
총상주인구수: 매출감소에 영향을 주며 특히 서비스 업종에서 tau 0.9 매출감소에 영향력이 큼
월평균 소득: 서비스 업과 도소매 업에서 월평균 소득금액이 증가하면tau 0.5 매출이 감소 하지만 tau 0.9 매출이 증가
집객시설수 : 서비스업과 도소매업에서 집객시설수가 증가하면 tau 0.5 매출이 증가 하지만 tau 0.9 매출이 감소
남자매출액 : 외식업과 서비스업에서 남자매출액비가 증가하면 tau 0.5 매출이 증가 하지만 tau 0.9 매출이 감소, 도소매업은 남성매출액 비율은 tau 0.5 대비 tau 0.9일때 영향력이 감소.
주말매출액 : 외식업의 경우 주말매출액비가 증가하면 tau 0.9 매출 증가에 더 큰 영향력을 주지만 서비스업과 도소매업의 경우 tau 0.5 매출이 증가 하지만 tau 0.9 매출이 감소
활용방안
총유동인구수: 매출상승 그룹에서는 총유동인구수가 매출액에 영향력 있는 변수이고 tau 0.5대비 tau 0.9 일때 2.64배 영향.
총직장인구수: 매출상승 그룹에서는 총직장인구수가 매출액상승에 영향력 있는 변수이고 tau 0.5대비 tau 0.9 일때 4.12배 영향.
총상주인구수: 매출상승 그룹에서는 총상주인구수가 매출액감소에 영향력 있는 변수이고 tau 0.5대비 tau 0.9 일때 1.69배 영향.
월평균소득: 매출상승 그룹에서는 월평균소득이 매출액증가에 영향력 있는 변수이고 tau 0.5대비 tau 0.9 일때 3.3배 영향.
집객시설수: 매출상승 그룹에서는 집객시설수가 매출액감소에 영향력 있는 변수이고 tau 0.5대비 tau 0.9 일때 2.23배 영향.
남자매출액 : 매출하락과 매출유지 그룹에서 남자매출액비가 늘어나면 매출도 상승하지만 매출상승 그룹에서는 남자매출액비가 늘어나면 매출은 감소하고 남성매출액 비율은 tau 0.5대비 tau 0.9 일때 3.97배 영향
주말매출액 : 매출하락 그룹의 경우 주말매출액비가 증가하면 매출 증가 하지만 매출유지과 매출상승 그룹의 경우 매출이 감소
활용방안
총유동인구수: 마포상권은총유동인구수가 매출액에 영향력 있는 변수이고 tau 0.5대비 tau 0.9 일때 3.08배 영향.
총직장인구수: 강남상권은 총직장인구수가 매출액상승에 영향력 있는 변수이고 tau 0.5대비 tau 0.9 일때 2.19배 영향.
총상주인구수: 강남상권은 총상주인구수가 매출액감소에 영향력 있는 변수이고 tau 0.5대비 tau 0.9 일때 1.88배 영향
월평균소득: 월소득 늘어나면 tau 0.5일 때 매출 감소 tau 0.9일 때 매출 증가
집객시설수: 집객시설수 늘어나면 tau 0.5일 때 매출 증가 tau 0.9일 때 매출 감소
남자매출액 : 남자매출액비가 늘어나면 강남상권 tau 0.9와 마포상권 tau 0.9에서는 매출 감소
주말매출액 : 관악상권 tau 0.9의 경우 주말매출액비가 증가하면 매출
활용방안
본 프로젝트는 서울시 및 자치구의 골목상권 활성화 정책을 위한 인사이트 제공을 목적으로 위와 같이 매출에 영향을 미치는 변수에 대한 분석을 제공하였다.총유동인구수, 총직장인구수, 총상주인구수, 월평균소득, 집객시설수, 남자배출액, 주말매출액을 설명 변수로 하여 업종별, 전년도 매출액 대비별, 주요상권별 내용을 살펴본 결과 활용방안에서 제시한 내용처럼 관심을 갖고 있는 시나리오와 분위에 따라 전체자료를 분석했을때와 비교하여 그 변수의 영향력이 달라짐을 알 수 있었다. 자료수집부터 전처리 및 분석과정을 상세히 기술하여 추후 관심이 있는 지역이나 매출분위에 효율적으로 활용할 수 있을 것으로 기대한다. 향후 추가적인 변수 분석을 통해 전년도 매출액을 대체할 변수를 찾아 모형 적합성을 높일 계획이며 다른 버젼의 보고서에서는 통계용어의 사용을 최소한으로 하여 누구나 쉽게 본 프로젝트의 결과물을 응용할 수 있게 할 것이다.
setwd(“/mnt/Data”) getwd() install.packages(“dplyr”) library(dplyr) merged_final=file1_2015_NO_NA3
function_NO_NA3_delete <- function( arg1 ) { merged_final =arg1 ### 특이 Row 필터링 # 월_평균_소득_금액, 지출_총금액 (row 삭 제) merged_final <- filter(merged_final,!(is.na(merged_final\(월_평균_소득_금액) | is.na(merged_final\)지출_총금액)))
#집객시설_수 (0을으로 대체 ) for (k in c(49)){ merged_final[,k][is.na(merged_final[,k])] <- 0 } return=merged_final }
function_NO_NA3_gagu <- function( arg1,arg2) {
merged_final =arg1 merged_final2 =arg2 #for (k in c(28:45)){ # merged_final[,k][is.na(merged_final[,k])] <- 0 #} # # size=nrow(merged_final) for (m in c(46)){ l=1 for(l in c(1:size)){ if(merged_final[l,m]==‘NA’ || is.na(merged_final[l,m])){ # print(m) # print(l) merged_final[l,m]=mean(merged_final2[,m][merged_final2\(상권_코드==merged_final\)상권_코드[l]],na.rm=TRUE) # print(merged_final[l,m]) } } } return=merged_final }
file1_2013_NO_NA3 <- read.csv(‘file1_2013_NO_NA3.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,‘’),fileEncoding=“euc-kr”) file1_2014_NO_NA3 <- read.csv(’file1_2014_NO_NA3.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,‘’)) file1_2015_NO_NA3 <- read.csv(’file1_2015_NO_NA3.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,‘’)) file1_2016_NO_NA3 <- read.csv(’file1_2016_NO_NA3.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,‘’)) file1_2017_NO_NA3 <- read.csv(’file1_2017_NO_NA3.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,’’))
file1_2014_NO_NA3_delete=function_NO_NA3_delete(file1_2014_NO_NA3) file1_2015_NO_NA3_delete=function_NO_NA3_delete(file1_2015_NO_NA3) file1_2016_NO_NA3_delete=function_NO_NA3_delete(file1_2016_NO_NA3) file1_2017_NO_NA3_delete=function_NO_NA3_delete(file1_2017_NO_NA3)
file1_2015_NO_NA3_delete=function_NO_NA3_gagu(file1_2015_NO_NA3,file1_2016_NO_NA3)
colSums(is.na(file1_2014_NO_NA3_delete)) colSums(is.na(file1_2015_NO_NA3_delete)) colSums(is.na(file1_2016_NO_NA3_delete)) colSums(is.na(file1_2017_NO_NA3_delete))
getwd()
write.csv(file1_2014_NO_NA3_delete, paste0(“file1_2014_NO_NA3_delete.csv”), row.names = F,fileEncoding=“euc-kr”) write.csv(file1_2015_NO_NA3_delete, paste0(“file1_2015_NO_NA3_delete.csv”), row.names = F,fileEncoding=“euc-kr”) write.csv(file1_2016_NO_NA3_delete, paste0(“file1_2016_NO_NA3_delete.csv”), row.names = F,fileEncoding=“euc-kr”) write.csv(file1_2017_NO_NA3_delete, paste0(“file1_2017_NO_NA3_delete.csv”), row.names = F,fileEncoding=“euc-kr”)
file1_2014_NO_NA_test <- read.csv(‘file1_2014_NO_NA3_delete.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,’’))
function_NO_NA3_yearbefore <- function(arg1,arg2) { data_set2=arg1 data_set1=arg2 size=nrow(data_set1) yearbefore=data.frame(rep(1,size)) for(i in c(1:size)){ if(any((data_set2\(상권_코드 == data_set1\)상권_코드[i])&(data_set2\(서비스_업종_코드 == data_set1\)서비스_업종_코드[i])&(data_set2\(기준_년월_코드==data_set1\)기준_년월_코드[i]-100))){ yearbefore[i,1] = data_set2\(당월_매출_금액[(data_set2\)상권_코드 == data_set1\(상권_코드[i])&(data_set2\)서비스_업종_코드 == data_set1\(서비스_업종_코드[i])&(data_set2\)기준_년월_코드==data_set1$기준_년월_코드[i]-100)] print(yearbefore[i,1]) } else { yearbefore[i,1] = NA print(yearbefore[i,1]) } } return=yearbefore }
file1_2014_NO_NA3_delete_yearbefore=function_NO_NA3_yearbefore(file1_2013_NO_NA3,file1_2014_NO_NA3_delete) file1_2015_NO_NA3_delete_yearbefore=function_NO_NA3_yearbefore(file1_2014_NO_NA3_delete,file1_2015_NO_NA3_delete) file1_2016_NO_NA3_delete_yearbefore=function_NO_NA3_yearbefore(file1_2015_NO_NA3_delete,file1_2016_NO_NA3_delete) file1_2017_NO_NA3_delete_yearbefore=function_NO_NA3_yearbefore(file1_2016_NO_NA3_delete,file1_2017_NO_NA3_delete)
colnames(file1_2014_NO_NA3_delete_yearbefore)=‘yearbefore’ colnames(file1_2015_NO_NA3_delete_yearbefore)=‘yearbefore’ colnames(file1_2016_NO_NA3_delete_yearbefore)=‘yearbefore’ colnames(file1_2017_NO_NA3_delete_yearbefore)=‘yearbefore’
colnames(file1_2014_NO_NA3_delete_yearbefore_jumpo)=‘yearbefore_jumpo’ colnames(file1_2015_NO_NA3_delete_yearbefore_jumpo)=‘yearbefore_jumpo’ colnames(file1_2016_NO_NA3_delete_yearbefore_jumpo)=‘yearbefore_jumpo’ colnames(file1_2017_NO_NA3_delete_yearbefore_jumpo)=‘yearbefore_jumpo’
colnames(file1_2014_NO_NA3_delete_yearbefore_cnt)=‘yearbefore_cnt’ colnames(file1_2015_NO_NA3_delete_yearbefore_cnt)=‘yearbefore_cnt’ colnames(file1_2016_NO_NA3_delete_yearbefore_cnt)=‘yearbefore_cnt’ colnames(file1_2017_NO_NA3_delete_yearbefore_cnt)=‘yearbefore_cnt’
file1_2014_NO_NA3_delete_yearbefore_bind=cbind(file1_2014_NO_NA3_delete,file1_2014_NO_NA3_delete_yearbefore) file1_2015_NO_NA3_delete_yearbefore_bind=cbind(file1_2015_NO_NA3_delete,file1_2015_NO_NA3_delete_yearbefore) file1_2016_NO_NA3_delete_yearbefore_bind=cbind(file1_2016_NO_NA3_delete,file1_2016_NO_NA3_delete_yearbefore) file1_2017_NO_NA3_delete_yearbefore_bind=cbind(file1_2017_NO_NA3_delete,file1_2017_NO_NA3_delete_yearbefore)
file1_2014_NO_NA3_delete_yearbefore_jumpo_bind=cbind(file1_2014_NO_NA3_delete_yearbefore_bind,file1_2014_NO_NA3_delete_yearbefore_jumpo) file1_2015_NO_NA3_delete_yearbefore_jumpo_bind=cbind(file1_2015_NO_NA3_delete_yearbefore_bind,file1_2015_NO_NA3_delete_yearbefore_jumpo) file1_2016_NO_NA3_delete_yearbefore_jumpo_bind=cbind(file1_2016_NO_NA3_delete_yearbefore_bind,file1_2016_NO_NA3_delete_yearbefore_jumpo) file1_2017_NO_NA3_delete_yearbefore_jumpo_bind=cbind(file1_2017_NO_NA3_delete_yearbefore_bind,file1_2017_NO_NA3_delete_yearbefore_jumpo)
write.csv(file1_2014_NO_NA3_delete_yearbefore_bind, paste0(“file1_2014_NO_NA3_delete_yearbefore_bind.csv”), row.names = F,fileEncoding=“euc-kr”) write.csv(file1_2015_NO_NA3_delete_yearbefore_bind, paste0(“file1_2015_NO_NA3_delete_yearbefore_bind.csv”), row.names = F,fileEncoding=“euc-kr”) write.csv(file1_2016_NO_NA3_delete_yearbefore_bind, paste0(“file1_2016_NO_NA3_delete_yearbefore_bind.csv”), row.names = F,fileEncoding=“euc-kr”) write.csv(file1_2017_NO_NA3_delete_yearbefore_bind, paste0(“file1_2017_NO_NA3_delete_yearbefore_bind.csv”), row.names = F,fileEncoding=“euc-kr”)
file1_2013_NO_NA3 <- read.csv(‘file1_2013_NO_NA3.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,‘’),fileEncoding=“euc-kr”) file1_2014_NO_NA3_delete_yearbefore <- read.csv(’file1_2014_NO_NA3_delete_yearbefore_bind.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,‘’),fileEncoding=“euc-kr”) file1_2015_NO_NA3_delete_yearbefore <- read.csv(’file1_2015_NO_NA3_delete_yearbefore_bind.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,‘’),fileEncoding=“euc-kr”) file1_2016_NO_NA3_delete_yearbefore <- read.csv(’file1_2016_NO_NA3_delete_yearbefore_bind.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,‘’),fileEncoding=“euc-kr”) file1_2017_NO_NA3_delete_yearbefore <- read.csv(’file1_2017_NO_NA3_delete_yearbefore_bind.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,’’),fileEncoding=“euc-kr”)
file1_2014_NO_NA3_delete_yearbefore_bind <- read.csv(‘file1_2014_NO_NA3_delete_yearbefore_bind.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,‘’),fileEncoding=“euc-kr”) file1_2015_NO_NA3_delete_yearbefore_bind <- read.csv(’file1_2015_NO_NA3_delete_yearbefore_bind.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,‘’),fileEncoding=“euc-kr”) file1_2016_NO_NA3_delete_yearbefore_bind <- read.csv(’file1_2016_NO_NA3_delete_yearbefore_bind.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,‘’),fileEncoding=“euc-kr”) file1_2017_NO_NA3_delete_yearbefore_bind <- read.csv(’file1_2017_NO_NA3_delete_yearbefore_bind.csv’,sep=“,”,header = T, stringsAsFactors = F, na.strings = c(‘NA’,’’),fileEncoding=“euc-kr”)
size=nrow(data_set2) for(i in c(1:size)){ if(data_set2$당월_매출_금액[i]==‘14865728’){ print(i) stop() } } data_set2[22,] data_set1[1,]
colSums(is.na(file1_2014_NO_NA3_delete_yearbefore_bind)) colSums(is.na(file1_2015_NO_NA3_delete_yearbefore_bind)) colSums(is.na(file1_2016_NO_NA3_delete_yearbefore_bind)) colSums(is.na(file1_2017_NO_NA3_delete_yearbefore_bind)) colSums(is.na(file1_2014_2017_NO_NA3_delete_yearbefore_bind))
file1_2014_2017_NO_NA3_delete=rbind(file1_2013_NO_NA3,file1_2014_NO_NA3_delete,file1_2015_NO_NA3_delete,file1_2016_NO_NA3_delete,file1_2017_NO_NA3_delete) file1_2014_2017_NO_NA3_delete_yearbefore_bind=rbind(file1_2014_NO_NA3_delete_yearbefore_bind,file1_2015_NO_NA3_delete_yearbefore_bind,file1_2016_NO_NA3_delete_yearbefore_bind,file1_2017_NO_NA3_delete_yearbefore_bind) file1_2014_2017_NO_NA3_delete_yearbefore_jumpo_bind=rbind(file1_2014_NO_NA3_delete_yearbefore_jumpo_bind,file1_2015_NO_NA3_delete_yearbefore_jumpo_bind,file1_2016_NO_NA3_delete_yearbefore_jumpo_bind,file1_2017_NO_NA3_delete_yearbefore_jumpo_bind) file1_2014_2017_NO_NA3_delete_yearbefore_cnt_bind=rbind(file1_2014_NO_NA3_delete_yearbefore_cnt,file1_2015_NO_NA3_delete_yearbefore_cnt,file1_2016_NO_NA3_delete_yearbefore_cnt,file1_2017_NO_NA3_delete_yearbefore_cnt)
file1_2014_2017_NO_NA3_delete_yearbefore_jumpo_cnt_bind=cbind(file1_2014_2017_NO_NA3_delete_yearbefore_jumpo_bind,file1_2014_2017_NO_NA3_delete_yearbefore_cnt_bind)
file1_2014_2017_NO_NA3_delete_yearbefore_jumpo_bind <- read.csv(‘file1_2014_2017_NO_NA3_delete_yearbefore_jimpo_bind.csv’,header = T, stringsAsFactors = F, na.strings = c(‘NA’,’’),fileEncoding=“euc-kr”)
write.csv(file1_2014_2017_NO_NA3_delete, paste0(“file1_2014_2017_NO_NA3_delete.csv”), row.names = F,fileEncoding=“euc-kr”) write.csv(file1_2014_2017_NO_NA3_delete_yearbefore_bind, paste0(“file1_2014_2017_NO_NA3_delete_yearbefore_bind.csv”), row.names = F,fileEncoding=“euc-kr”) write.csv(file1_2014_2017_NO_NA3_delete_yearbefore_jumpo_bind, paste0(“file1_2014_2017_NO_NA3_delete_yearbefore_jimpo_bind.csv”), row.names = F,fileEncoding=“euc-kr”) write.csv(file1_2014_2017_NO_NA3_delete_yearbefore_jumpo_bind, paste0(“file1_2014_2017_NO_NA3_delete_yearbefore_jimpo_bind.csv”), row.names = F,fileEncoding=“euc-kr”) write.csv(file1_2014_2017_NO_NA3_delete_yearbefore_jumpo_cnt_bind, paste0(“file1_2014_2017_NO_NA3_delete_yearbefore_jumpo_cnt_bind.csv”), row.names = F,fileEncoding=“euc-kr”)
data_set1=file1_2014_2017_NO_NA3_delete_yearbefore_jumpo_cnt_bind
((data_set1\(yearbefore+1)/data_set1\)당월_매출_금액)
file1_2014_2017_NO_NA3_delete_yearbefore_bind_NA <- filter(file1_2014_2017_NO_NA3_delete_yearbefore_bind,is.na(file1_2014_2017_NO_NA3_delete_yearbefore_bind$yearbefore))
i=1 data_set1=file1_2014_NO_NA3_delete function_NO_NA3_monthbefore <- function(arg1) { data_set1=arg1 size=nrow(data_set1) monthbefore=data.frame(rep(1,size)) for(i in c(1:size)){ if(any((data_set1\(상권_코드 == data_set1\)상권_코드[i])&(data_set1\(서비스_업종_코드 == data_set1\)서비스_업종_코드[i])&(data_set1\(기준_년월_코드==data_set1\)기준_년월_코드[i]-1))){ monthbefore[i,1] = data_set1\(당월_매출_금액[(data_set1\)상권_코드 == data_set1\(상권_코드[i])&(data_set1\)서비스_업종_코드 == data_set1\(서비스_업종_코드[i])&(data_set1\)기준_년월_코드==data_set1$기준_년월_코드[i]-1)] print(monthbefore[i,1]) } else { yearbefore[i,1] = NA print(monthbefore[i,1]) } } return=yearbefore }
function_NO_NA3_yearbefore_jumpo <- function(arg1,arg2) { data_set2=arg1 data_set1=arg2 size=nrow(data_set1) yearbefore=data.frame(rep(1,size)) for(i in c(1:size)){ if(any((data_set2\(상권_코드 == data_set1\)상권_코드[i])&(data_set2\(서비스_업종_코드 == data_set1\)서비스_업종_코드[i])&(data_set2\(기준_년월_코드==data_set1\)기준_년월_코드[i]-100))){ yearbefore[i,1] = data_set2\(점포수[(data_set2\)상권_코드 == data_set1\(상권_코드[i])&(data_set2\)서비스_업종_코드 == data_set1\(서비스_업종_코드[i])&(data_set2\)기준_년월_코드==data_set1$기준_년월_코드[i]-100)] print(yearbefore[i,1]) } else { yearbefore[i,1] = NA print(yearbefore[i,1]) } } return=yearbefore }
function_NO_NA3_yearbefore_cnt <- function(arg1,arg2) { data_set2=arg1 data_set1=arg2 size=nrow(data_set1) yearbefore=data.frame(rep(1,size)) for(i in c(1:size)){ if(any((data_set2\(상권_코드 == data_set1\)상권_코드[i])&(data_set2\(서비스_업종_코드 == data_set1\)서비스_업종_코드[i])&(data_set2\(기준_년월_코드==data_set1\)기준_년월_코드[i]-100))){ yearbefore[i,1] = data_set2\(당월_매출_건수[(data_set2\)상권_코드 == data_set1\(상권_코드[i])&(data_set2\)서비스_업종_코드 == data_set1\(서비스_업종_코드[i])&(data_set2\)기준_년월_코드==data_set1$기준_년월_코드[i]-100)] print(yearbefore[i,1]) } else { yearbefore[i,1] = NA print(yearbefore[i,1]) } } return=yearbefore }
file1_2014_NO_NA3_delete_yearbefore_jumpo=function_NO_NA3_yearbefore_jumpo(file1_2013_NO_NA3,file1_2014_NO_NA3_delete) file1_2015_NO_NA3_delete_yearbefore_jumpo=function_NO_NA3_yearbefore_jumpo(file1_2014_NO_NA3_delete,file1_2015_NO_NA3_delete) file1_2016_NO_NA3_delete_yearbefore_jumpo=function_NO_NA3_yearbefore_jumpo(file1_2015_NO_NA3_delete,file1_2016_NO_NA3_delete) file1_2017_NO_NA3_delete_yearbefore_jumpo=function_NO_NA3_yearbefore_jumpo(file1_2016_NO_NA3_delete,file1_2017_NO_NA3_delete)
file1_2014_NO_NA3_delete_yearbefore_cnt=function_NO_NA3_yearbefore_cnt(file1_2013_NO_NA3,file1_2014_NO_NA3_delete_yearbefore) file1_2015_NO_NA3_delete_yearbefore_cnt=function_NO_NA3_yearbefore_cnt(file1_2014_NO_NA3_delete_yearbefore,file1_2015_NO_NA3_delete_yearbefore) file1_2016_NO_NA3_delete_yearbefore_cnt=function_NO_NA3_yearbefore_cnt(file1_2015_NO_NA3_delete_yearbefore,file1_2016_NO_NA3_delete_yearbefore) file1_2017_NO_NA3_delete_yearbefore_cnt=function_NO_NA3_yearbefore_cnt(file1_2016_NO_NA3_delete_yearbefore,file1_2017_NO_NA3_delete_yearbefore)
| 변수명 | OLS(전체) | Tau 0.1 | Tau 0.5 | Tau 0.9 |
|---|---|---|---|---|
| Intercept | 2.502 *** | -0.294 | 1.535 | 4.451 |
| 총유동인구수 | 0.070 *** | 0.076 | 0.053 | 0.055 |
| 총직장인구수 | 0.023 *** | 0.032 | 0.017 | 0.018 |
| 총상주인구수 | -0.010 *** | -0.008 | -0.006 | -0.014 |
| 월평균소득 | 0.058 ** | -0.140 | -0.015 | 0.116 |
| 집객시설수 | 0.008 *** | 0.005 | 0.001 | -0.002 |
| 남자비율 | 0.102 *** | 0.255 | 0.112 | -0.132 |
| 주말비율 | 0.129 *** | 0.545 | 0.023 | -0.256 |
| 전년 매출 | 1.884 *** | 2.291 | 2.065 | 1.645 |
| 변수명 | OLS(외식업) | Tau 0.1 | Tau 0.5 | Tau 0.9 |
|---|---|---|---|---|
| Intercept | 2.395 *** | -0.431 | 1.654 | 4.332 |
| 총유동인구수 | 0.093 *** | 0.106 | 0.063 | 0.070 |
| 총직장인구수 | 0.026 *** | 0.074 | 0.022 | 0.017 |
| 총상주인구수 | -0.012 *** | -0.010 | -0.007 | -0.017 |
| 월평균소득 | 0.058 *** | -0.059 | 0.012 | 0.154 |
| 집객시설수 | 0.001 *** | 0.003 | -0.001 | -0.001 |
| 남자비율 | -0.017 * | 0.083 | 0.015 | -0.154 |
| 주말비율 | 0.416 *** | 0.450 | 0.254 | 0.434 |
| 전년 매출 | 1.844 *** | 2.245 | 2.016 | 1.583 |
| 변수명 | OLS(서비스업) | Tau 0.1 | Tau 0.5 | Tau 0.9 |
|---|---|---|---|---|
| Intercept | 2.984 *** | 0.798 | 2.156 | 4.486 |
| 총유동인구수 | 0.080 *** | 0.068 | 0.068 | 0.090 |
| 총직장인구수 | 0.026 *** | 0.054 | 0.029 | 0.030 |
| 총상주인구수 | -0.012 *** | 0.001 | -0.009 | -0.028 |
| 월평균소득 | 0.058 *** | -0.126 | -0.009 | 0.121 |
| 집객시설수 | 0.001 *** | 0.006 | 0.001 | -0.003 |
| 남자비율 | -0.017 *** | 0.157 | 0.065 | -0.099 |
| 주말비율 | 0.416 *** | 0.150 | -0.281 | -0.559 |
| 전년 매출 | 1.844 *** | 2.121 | 1.963 | 1.622 |
| 변수명 | OLS(도소매업) | Tau 0.1 | Tau 0.5 | Tau 0.9 |
|---|---|---|---|---|
| Intercept | 2.389 *** | -0.125 | 1.166 | 4.059 |
| 총유동인구수 | 0.051 *** | 0.044 | 0.055 | 0.045 |
| 총직장인구수 | 0.020 *** | -0.002 | 0.017 | 0.018 |
| 총상주인구수 | -0.009 *** | -0.018 | -0.004 | -0.005 |
| 월평균소득 | -0.010 *** | -0.262 | -0.030 | 0.177 |
| 집객시설수 | 0.002 *** | 0.007 | 0.001 | -0.002 |
| 남자비율 | 0.278 *** | 0.251 | 0.408 | 0.122 |
| 주말비율 | 0.385 *** | 0.881 | 0.156 | -0.247 |
| 전년 매출 | 1.909 *** | 2.386 | 2.111 | 1.645 |
| 변수명 | OLS(그룹1) | Tau 0.1 | Tau 0.5 | Tau 0.9 |
|---|---|---|---|---|
| Intercept | -0.851 *** | -1.517 | -0.889 | -0.363 |
| 총유동인구수 | 0.013 ** | 0.028 | 0.006 | 0.001 |
| 총직장인구수 | 0.001 0.508 | -0.001 | 0.003 | 0.001 |
| 총상주인구수 | -0.001 0.937 | -0.001 | -0.001 | 0.001 |
| 월평균소득 | -0.056 *** | -0.162 | -0.043 | -0.006 |
| 집객시설수 | 0.003 *** | 0.008 | 0.002 | 0.001 |
| 남자비율 | 0.115 *** | 0.190 | 0.089 | 0.015 |
| 주말비율 | 0.304 *** | 0.455 | 0.250 | 0.042 |
| 전년 매출 | 2.337 *** | 2.406 | 2.371 | 2.315 |
| 변수명 | OLS(그룹2) | Tau 0.1 | Tau 0.5 | Tau 0.9 |
|---|---|---|---|---|
| Intercept | 0.211 *** | -0.161 | 0.274 | 0.470 |
| 총유동인구수 | 0.011 *** | 0.009 | 0.016 | 0.006 |
| 총직장인구수 | 0.003 *** | 0.003 | 0.003 | 0.002 |
| 총상주인구수 | -0.001 0.195 | -0.001 | -0.001 | -0.001 |
| 월평균소득 | -0.011 *** | -0.008 | -0.016 | -0.006 |
| 집객시설수 | 0.001 0.275 | 0.001 | 0.001 | -0.001 |
| 남자비율 | 0.024 *** | 0.016 | 0.037 | 0.014 |
| 주말비율 | -0.012 *** | 0.011 | -0.020 | -0.021 |
| 전년 매출 | 2.281 *** | 2.301 | 2.274 | 2.274 |
| 변수명 | OLS(그룹3) | Tau 0.1 | Tau 0.5 | Tau 0.9 |
|---|---|---|---|---|
| Intercept | 3.612 *** | 0.705 | 2.301 | 5.241 |
| 총유동인구수 | 0.041 *** | 0.004 | 0.025 | 0.066 |
| 총직장인구수 | 0.011 *** | 0.001 | 0.005 | 0.019 |
| 총상주인구수 | -0.006 *** | -0.002 | -0.006 | -0.011 |
| 월평균소득 | 0.126 *** | 0.012 | 0.084 | 0.278 |
| 집객시설수 | -0.001 * | -0.001 | -0.001 | -0.001 |
| 남자비율 | -0.122 *** | -0.006 | -0.081 | -0.320 |
| 주말비율 | -0.135 *** | -0.030 | -0.138 | -0.229 |
| 전년 매출 | 1.751 *** | 2.243 | 1.975 | 1.460 |
| 변수명 | OLS(강남) | Tau 0.1 | Tau 0.5 | Tau 0.9 |
|---|---|---|---|---|
| Intercept | 2.809 *** | -0.082 | 1.582 | 4.630 |
| 총유동인구수 | 0.070 *** | 0.040 | 0.046 | 0.082 |
| 총직장인구수 | 0.108 *** | 0.019 | 0.091 | 0.199 |
| 총상주인구수 | -0.099 *** | -0.047 | -0.076 | -0.143 |
| 월평균소득 | 0.011 *** | -0.037 | -0.001 | 0.058 |
| 집객시설수 | 0.005 * | 0.013 | 0.002 | -0.001 |
| 남자비율 | 0.187 *** | 0.495 | 0.146 | -0.200 |
| 주말비율 | 0.305 *** | 0.602 | 0.200 | 0.005 |
| 전년 매출 | 1.832 *** | 2.172 | 2.040 | 1.645 |
| 변수명 | OLS(마포) | Tau 0.1 | Tau 0.5 | Tau 0.9 |
|---|---|---|---|---|
| Intercept | 3.203 *** | 0.177 | 1.970 | 5.194 |
| 총유동인구수 | 0.094 *** | 0.052 | 0.062 | 0.192 |
| 총직장인구수 | 0.060 *** | 0.094 | 0.042 | 0.017 |
| 총상주인구수 | -0.011 ** | -0.015 | 0.008 | -0.015 |
| 월평균소득 | -0.030 0.063 | -0.136 | -0.033 | 0.044 |
| 집객시설수 | 0.002 * | 0.007 | 0.001 | -0.001 |
| 남자비율 | 0.178 *** | 0.423 | 0.171 | -0.221 |
| 주말비율 | 0.169 *** | 0.413 | 0.112 | -0.012 |
| 전년 매출 | 1.792 *** | 2.204 | 2.001 | 1.542 |
| 변수명 | OLS(관악) | Tau 0.1 | Tau 0.5 | Tau 0.9 |
|---|---|---|---|---|
| Intercept | 2.745 *** | -0.456 | 1.460 | 4.947 |
| 총유동인구수 | 0.046 ** | 0.050 | 0.035 | 0.015 |
| 총직장인구수 | -0.008 | 0.412 | 0.010 | 0.014 |
| 총상주인구수 | -0.003 | 0.808 | 0.146 | -0.028 |
| 월평균소득 | -0.053 * | -0.211 | -0.018 | 0.060 |
| 집객시설수 | 0.004 *** | 0.006 | 0.001 | -0.001 |
| 남자비율 | 0.211 *** | 0.398 | 0.195 | 0.053 |
| 주말비율 | 0.201 *** | 0.677 | 0.002 | -0.285 |
| 전년 매출 | 1.913 *** | 2.322 | 2.090 | 1.673 |