| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- library(prophet)
- context("Prophet metrics tests")
- ## Makes R CMD CHECK happy due to dplyr syntax below
- globalVariables(c("y", "yhat"))
- DATA <- head(read.csv('data.csv'), 100)
- DATA$ds <- as.Date(DATA$ds)
- test_that("metrics_tests_using_model", {
- # Create dummy model
- m <- prophet(DATA)
- # Create metric data
- forecast <- predict(m, NULL)
- df <- na.omit(dplyr::inner_join(m$history, forecast, by="ds"))
- # Check all metrics wether it is equal to its definition
- y <- df$y
- yhat <- df$yhat
- expect_equal(me(m), mean(y-yhat))
- expect_equal(mse(m), mean((y-yhat)^2))
- expect_equal(rmse(m), sqrt(mean((y-yhat)^2)))
- expect_equal(mae(m), mean(abs(y-yhat)))
- expect_equal(mpe(m), 100*mean((y-yhat)/y))
- expect_equal(mape(m), 100*mean(abs((y-yhat)/y)))
- answer <- data.frame(
- me=me(m),
- mse=mse(m),
- rmse=rmse(m),
- mae=mae(m),
- mpe=mpe(m),
- mape=mape(m)
- )
- expect_equal(all_metrics(m), answer)
- })
- test_that("metrics_tests_using_simulated_historical_forecast", {
- #skip_if_not(Sys.getenv('R_ARCH') != '/i386')
- # Create dummy model
- m <- prophet(DATA)
- # Run simulated historical forecast
- df <- simulated_historical_forecasts(m, horizon = 3, units = 'days', k = 2, period = 3)
- # Check all metrics wether it is equal to its definition
- y <- df$y
- yhat <- df$yhat
- expect_equal(me(df=df), mean(y-yhat))
- expect_equal(mse(df=df), mean((y-yhat)^2))
- expect_equal(rmse(df=df), sqrt(mean((y-yhat)^2)))
- expect_equal(mae(df=df), mean(abs(y-yhat)))
- expect_equal(mpe(df=df), 100*mean((y-yhat)/y))
- expect_equal(mape(df=df), 100*mean(abs((y-yhat)/y)))
- answer <- data.frame(
- me=me(df=df),
- mse=mse(df=df),
- rmse=rmse(df=df),
- mae=mae(df=df),
- mpe=mpe(df=df),
- mape=mape(df=df)
- )
- expect_equal(all_metrics(df=df), answer)
- })
|