블로그 방문자수 예측치 평가 비교

블로그 방문자 예측 모형 생성 후 약 2주가 지났으며 슬슬 실제 값과 예측값을 비교 분석해볼 필요가 있을것 같아서 아래와 같이 추가 분석을 해봤다.

suppressPackageStartupMessages({
library(rga)
library(xts)
library(forecast)
})
rga.open(instance="ga", where="./ga.rga")


daily_visits_src <- ga$getData(
  key,
  start.date = "2011-01-01",
  end.date = "2014-12-29",
  metrics = "ga:users",
  dimensions = "ga:date",
  sort = "ga:date",
  batch = TRUE
)

daily_visits <- daily_visits_src 

library(forecast)

daily_xts <- xts(daily_visits$users, order.by = daily_visits$date,frequency = 7)

weekly_sum <- apply.weekly(daily_xts, sum)

weekly_ts <- ts(as.numeric(weekly_sum["/2014-12-14"]), start = c(2011, 1),frequency = 52)


weekly_ar <- auto.arima(weekly_ts)


plot(forecast(weekly_ar,h=2))
lines(ts(as.numeric(weekly_sum["/2014-12-28"]), start = c(2011, 1),frequency = 52), col='red')
lines(fitted(weekly_ar), col='blue',lty=2)
legend("topleft", legend=c('observation', 'fitted'),lty = c(1,2), col = c('red','blue'))

plot of chunk unnamed-chunk-1

위 그래프에서 푸른색 점은 예측치를 의미한다.

#예측치
forecast(weekly_ar,h=2)
##          Point Forecast    Lo 80    Hi 80     Lo 95    Hi 95
## 2014.981       1700.911 1468.060 1933.761 1344.7966 2057.024
## 2015.000       1286.451 1026.222 1546.680  888.4654 1684.437
#실측치
weekly_sum["2014-12-21/"][1:2]
##            [,1]
## 2014-12-21 1423
## 2014-12-28 1513
accuracy(forecast(weekly_ar,h=2), as.numeric(weekly_sum["2014-12-21/"][1:2]))
##                     ME     RMSE      MAE         MPE     MAPE      MASE
## Training set  16.72562 181.2540 129.5494 -0.02872443 12.00540 0.9226019
## Test set     -25.68086 253.5336 252.2297 -2.27820967 17.25169 1.7962840
##                    ACF1
## Training set 0.02624812
## Test set             NA

MAPE가 학습시 12%정도였는데, 실제 시간이 지나 2주치 방문자의 실제값과 예측치를 비교한 test의 경우 17%가 나옴.

피크를 친 다음주의 낙폭이 예상보다 컸다는 것을 알 수 있는데, 이는 하루동안 블로그가 히트를 쳤다고 해서 그 인기가 계속 진행되지는 않는다는 것을 알려주고 있으며, 어느정도 평상시 방문자수에 회귀하는 경향이 있다는 것을 알 수 있다. 그리고 블로그 호스팅을 급히 업그레이드 하지 않도록 시계열 예측 모델을 기반으로 의사결정을 했던게 꽤 유의미했다는 것을 알 수 있다.


누구든지 나와 같이 10년 넘게 블로깅을 해온 블로거의 경우도 트래픽 리셋을 하루동안 3번 이상 하게되면 이러한 트래픽이 어느정도 미래에도 계속 될 거라는 장미빛 환상에 빠지기 쉽다. 그래서 쉽게 추가 비용을 들여 호스팅 업그레이드를 하게 된다(실제 당시 콜센터 상담까지 받았으며 결재 직전까지 진행이 되었었다). 사람의 결정이라는게 이렇게 비 과학적이고 즉흥적일 가능성이 농후하다는 사실을 다시금 느끼게 해줬던 매우 좋은 사례였고, 따라서 개인적으로도 매우 흥미롭고 의미있었던 분석이었다.

CC BY-NC 4.0 블로그 방문자수 예측치 평가 비교 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.