• このページは公開されるので個人情報などは記載しないこと。
  • 課題が完成したらknitPublishする。

課題名

options(digits = 2) set.seed(1)

n <- 10 x <- 1:n y <- round(1:n + rnorm(n, mean = 1, sd = 2.5), 2) e <- rnorm(n, mean = 0, sd = 1) yhat <- yhat.out <- round(y + e, 2) yhat.out[8] <- yhat.out[8] - 10 # 大外し

d <- data.frame(y, yhat, yhat.out)

library(DT) datatable(d, colnames = c(‘観測値’, ‘予測値’, ‘予測値(大外し含む)’))

matplot(x = x, y = y, type = ‘n’, ylim = range(c(y, yhat, yhat.out))) matlines(x = x, y = y, type = ‘o’, pch = 1, col = 1) matlines(x = x, y = yhat, type = ‘o’, pch = 2, col = 2) matlines(x = x, y = yhat.out, type = ‘o’, pch = 3, col = 3)

legend(‘topleft’, pch = 1:3, col = 1:3, legend = c(‘観測値’, ‘予測値’, ‘予測値(大外し含む)’))

get.accuracy <- function(yhat, y) { data.frame(MBE = mean(yhat - y), MAE = mean(abs(yhat - y)), MAPE = mean(abs((yhat - y) / y)) * 100, RMSE = sqrt(mean((yhat - y)^2))) }

(a <- get.accuracy(yhat, y))
(a.out <- get.accuracy(yhat.out, y)) # 大外し含む予測精度 a.out / a a$MBE

#大外し予測はそうでない場合と比べてMAEは 2倍の増加, RMSEは2.9倍の増加となる。 MAEよりRMSEの方が大外しに対して厳し目の(より大きな値になる)評価をすることが分かる。 #MBEは正の値なのでやや 高め予測 の傾向がある。