close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

그래프가 포함된 전체 버전은 첨부파일 참조!

 

DataLab Season 2β - Crank

유용빈

August 11, 2016

0.1 자료 명세

  dplyr::glimpse(data)
## Observations: 5,469,538
## Variables: 5
## $ code <S3: integer64> 23657800012, 23657800012, 23657800012, 23657800...
## $ cnt  <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...
## $ t0   <chr> "2014-01-25 05:03:05", "2014-01-25 05:03:05", "2014-01-25...
## $ t1   <chr> "2014-01-25 13:05:35", "2014-01-25 13:05:35", "2014-01-25...
## $ t2   <chr> "2014-01-26 19:05:12", "2014-01-26 19:05:12", "2014-01-26...
  • code : 상품식별번호 (64비트 정수)
  • cnt : 상품의 수 (정수)
  • t0 : 상품 EDI 수신 시점 (YYYY-MM-DD HH:MM:SS / 문자열)
  • t1 : 상품 집하 시점 (YYYY-MM-DD HH:MM:SS / 문자열)
  • t2 : 상품 배송완료 시점 (YYYY-MM-DD HH:MM:SS / 문자열)

0.2 자료 손보기

0.2.1 t0,t1,t2를 시간 객체로 변환

  data$t0 <- ymd_hms(data$t0, tz="Asia/Seoul")
  data$t1 <- ymd_hms(data$t1, tz="Asia/Seoul")
## Warning: 146 failed to parse.
  data$t2 <- ymd_hms(data$t2, tz="Asia/Seoul")
## Warning: 4371 failed to parse.

0.2.2 시점 정보가 부족한 자료

  • t0 : 0건
  • t1 : 146건
  • t2 : 4371건
  data <- data[!is.na(data$t0)]
  data <- data[!is.na(data$t1)]
  data <- data[!is.na(data$t2)]

0.2.3 d1 : 상품을 집하장까지 가져오는데 걸린 시간

  data$d1 <- data$t1 - data$t0

0.2.4 d2 : 상품을 집하장에서 고객에게 전달하는데 걸린 시간

  data$d2 <- data$t2 - data$t1

0.2.5 d3 : 상품이 고객에게 전달되는데 걸린 총 시간 (d1 + d2)

  data$d3 <- data$d1 + data$d2

0.2.6 d1 이 0보다 작은경우

일반적으로 d1은 0보다 작을수 없지만 존재한다. 삭제

  data <- data[d1 > 0]

0.2.7 t0의 년,월,일,시,요일 성분 추가

  data$t0.year  <- year(data$t0)
  data$t0.month <- month(data$t0)
  data$t0.day   <- day(data$t0)
  data$t0.hour  <- hour(data$t0)
  data$t0.week  <- week(data$t0)
  data$t0.wd    <- weekdays(data$t0)

0.2.8 t1의 년,월,일,시,요일 성분 추가

  data$t1.year  <- year(data$t1)
  data$t1.month <- month(data$t1)
  data$t1.day   <- day(data$t1)
  data$t1.hour  <- hour(data$t1)
  data$t1.week  <- week(data$t1)
  data$t1.wd    <- weekdays(data$t1)

0.2.9 t2의 년,월,일,시,요일 성분 추가

  data$t2.year  <- year(data$t2)
  data$t2.month <- month(data$t2)
  data$t2.day   <- day(data$t2)
  data$t2.hour  <- hour(data$t2)
  data$t2.week  <- week(data$t2)
  data$t2.wd    <- weekdays(data$t2)

0.2.10 d2 이 0보다 작은경우

일반적으로 d2은 0보다 작을수 없지만 존재한다. 삭제

  data <- data[d2 > 0]

0.2.11 분석대상 주문 한정

d1, d2의 분포를 살펴본 결과 예상과 다르게 분포가 상당히 컸다. 현재 분석의 대상이 되는 자료는 정상적으로 처리된 대다수의 일반적인 물량만을 대상으로 하는것이 타당하므로 주문 수신 후 삼일이내에 픽업되고, 고객에게 삼일 이내에 배송된 주문만을 분석대상으로 한다.

현재 자료 기준으로 약 98%의 주문의 위 조건을 만족한다.

  data <- data[ d1 < ddays(3) & d2 < ddays(3) ]

0.2.12 최종 자료

  dplyr::glimpse(data)
## Observations: 5,361,657
## Variables: 26
## $ code     <S3: integer64> 23657800012, 23657800012, 23657800012, 2365...
## $ cnt      <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
## $ t0       <time> 2014-01-25 05:03:05, 2014-01-25 05:03:05, 2014-01-25...
## $ t1       <time> 2014-01-25 13:05:35, 2014-01-25 13:05:35, 2014-01-25...
## $ t2       <time> 2014-01-26 19:05:12, 2014-01-26 19:05:12, 2014-01-26...
## $ d1       <S3: difftime> 482.5000 mins, 482.5000 mins, 482.5167 mins,...
## $ d2       <S3: difftime> 107977 secs, 107977 secs, 79385 secs, 94864 ...
## $ d3       <S3: difftime> 136927 secs, 136927 secs, 108336 secs, 12381...
## $ t0.year  <dbl> 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014,...
## $ t0.month <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
## $ t0.day   <int> 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 2...
## $ t0.hour  <int> 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,...
## $ t0.week  <dbl> 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,...
## $ t0.wd    <chr> "Saturday", "Saturday", "Saturday", "Saturday", "Satu...
## $ t1.year  <dbl> 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014,...
## $ t1.month <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
## $ t1.day   <int> 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 2...
## $ t1.hour  <int> 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1...
## $ t1.week  <dbl> 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,...
## $ t1.wd    <chr> "Saturday", "Saturday", "Saturday", "Saturday", "Satu...
## $ t2.year  <dbl> 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014,...
## $ t2.month <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
## $ t2.day   <int> 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 2...
## $ t2.hour  <int> 19, 19, 11, 15, 16, 14, 20, 20, 15, 20, 16, 20, 18, 1...
## $ t2.week  <dbl> 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,...
## $ t2.wd    <chr> "Sunday", "Sunday", "Sunday", "Sunday", "Sunday", "Su...
  summary(data)
##       code                  cnt          t0                     
##  Min.   :11821785012   Min.   :1   Min.   :2013-11-01 04:25:22  
##  1st Qu.:23479831012   1st Qu.:1   1st Qu.:2014-03-31 09:39:10  
##  Median :24666566012   Median :1   Median :2014-10-17 05:17:52  
##  Mean   :24837024791   Mean   :1   Mean   :2014-11-02 08:36:12  
##  3rd Qu.:26710573013   3rd Qu.:1   3rd Qu.:2015-05-27 05:49:45  
##  Max.   :30029880013   Max.   :1   Max.   :2015-12-31 14:19:11  
##        t1                            t2                     
##  Min.   :2013-11-01 10:13:53   Min.   :2013-11-02 07:42:16  
##  1st Qu.:2014-03-31 21:22:52   1st Qu.:2014-04-01 21:12:10  
##  Median :2014-10-17 09:35:03   Median :2014-10-18 15:43:42  
##  Mean   :2014-11-02 19:14:48   Mean   :2014-11-03 21:15:51  
##  3rd Qu.:2015-05-27 11:18:45   3rd Qu.:2015-05-28 20:49:25  
##  Max.   :2016-01-02 05:56:31   Max.   :2016-01-04 13:23:15  
##       d1                d2                d3              t0.year    
##  Length:5361657    Length:5361657    Length:5361657    Min.   :2013  
##  Class :difftime   Class :difftime   Class :difftime   1st Qu.:2014  
##  Mode  :numeric    Mode  :numeric    Mode  :numeric    Median :2014  
##                                                        Mean   :2014  
##                                                        3rd Qu.:2015  
##                                                        Max.   :2015  
##     t0.month          t0.day         t0.hour         t0.week     
##  Min.   : 1.000   Min.   : 1.00   Min.   : 4.00   Min.   : 1.00  
##  1st Qu.: 4.000   1st Qu.: 9.00   1st Qu.: 4.00   1st Qu.:13.00  
##  Median : 7.000   Median :16.00   Median : 7.00   Median :29.00  
##  Mean   : 6.925   Mean   :15.72   Mean   : 7.36   Mean   :28.31  
##  3rd Qu.:11.000   3rd Qu.:23.00   3rd Qu.: 9.00   3rd Qu.:44.00  
##  Max.   :12.000   Max.   :31.00   Max.   :21.00   Max.   :53.00  
##     t0.wd              t1.year        t1.month          t1.day     
##  Length:5361657     Min.   :2013   Min.   : 1.000   Min.   : 1.00  
##  Class :character   1st Qu.:2014   1st Qu.: 4.000   1st Qu.: 9.00  
##  Mode  :character   Median :2014   Median : 7.000   Median :16.00  
##                     Mean   :2014   Mean   : 6.925   Mean   :15.73  
##                     3rd Qu.:2015   3rd Qu.:11.000   3rd Qu.:23.00  
##                     Max.   :2016   Max.   :12.000   Max.   :31.00  
##     t1.hour         t1.week         t1.wd              t2.year    
##  Min.   : 0.00   Min.   : 1.00   Length:5361657     Min.   :2013  
##  1st Qu.:12.00   1st Qu.:13.00   Class :character   1st Qu.:2014  
##  Median :18.00   Median :29.00   Mode  :character   Median :2014  
##  Mean   :16.02   Mean   :28.31                      Mean   :2014  
##  3rd Qu.:20.00   3rd Qu.:44.00                      3rd Qu.:2015  
##  Max.   :23.00   Max.   :53.00                      Max.   :2016  
##     t2.month          t2.day        t2.hour         t2.week     
##  Min.   : 1.000   Min.   : 1.0   Min.   : 0.00   Min.   : 1.00  
##  1st Qu.: 4.000   1st Qu.: 9.0   1st Qu.:15.00   1st Qu.:13.00  
##  Median : 7.000   Median :16.0   Median :17.00   Median :29.00  
##  Mean   : 6.924   Mean   :15.9   Mean   :17.07   Mean   :28.36  
##  3rd Qu.:11.000   3rd Qu.:23.0   3rd Qu.:20.00   3rd Qu.:44.00  
##  Max.   :12.000   Max.   :31.0   Max.   :23.00   Max.   :53.00  
##     t2.wd          
##  Length:5361657    
##  Class :character  
##  Mode  :character  
##                    
##                    
## 

0.3 자료 살펴보기

0.3.1 t0 시간의 분포

  • 고객사로 부터 배송 요청(EDI)를 수신한 시점
  • 이 시점에 물건은 고객사 창고(들)에 존재한다.
  • 주로 새벽에 집중적으로 요청하는 경향이 있다.

 

0.3.2 t1 시간의 분포

  • 정확히는 운송장을 부착한 시간이지만, 편이상 이 시점을 집하시점으로 본다.
  • 이 시점에 물건은 우리 창고(들)에 존재한다.
  • 집하 및 운송장 부착은 수시로 발생한다.

 

0.3.3 t2 시간의 분포

  • 고객에게 물건이 전달된 시간.
  • 이 시점에 물건은 고객에게 존재한다.
  • 오후 시간대에 주로 입력하기때문에 저녁시간이 많이 분포함(?)

 

0.3.4 d1의 분포 (x: 시간, y: 빈도)

 

0.3.5 d2의 분포 (x: 일, y: 빈도)

 

0.3.6 d3의분포 (x: 일, y: 빈도)

 

0.4 TODO

  1. t0,t1,t2 year, month, day, hour, wd 요소 추가
  2. t0.hour 기준으로 pivot
  3. t0.wd x t0.hour 기준 heatmap
  4. t2.wd x t2.hour 기준 heatmap
  5. t1.hour의 ACF 결과