## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( echo = TRUE, eval = FALSE ) get_article_url <- function(article) { pkg_version <- as.character(utils::packageVersion("dgpsi")) is_dev <- grepl("\\.9000$", pkg_version) base_url <- if (is_dev) { "https://mingdeyu.github.io/dgpsi-R/dev" } else { "https://mingdeyu.github.io/dgpsi-R" } paste0(base_url, article) } ## ----eval = FALSE------------------------------------------------------------- # library(dgpsi) ## ----eval = FALSE------------------------------------------------------------- # set_seed(9999) ## ----eval = FALSE------------------------------------------------------------- # f <- function(x) { # if (x < 0.5) return(-1) # if (x >= 0.5) return(1) # } ## ----eval = FALSE------------------------------------------------------------- # X <- seq(0, 1, length = 10) # Y <- sapply(X, f) ## ----eval = FALSE------------------------------------------------------------- # m <- dgp(X, Y, depth = 3) ## ----eval = FALSE------------------------------------------------------------- # summary(m) ## ----eval = FALSE------------------------------------------------------------- # plot(m) ## ----eval = FALSE------------------------------------------------------------- # oos_x <- sample(seq(0, 1, length = 200), 10) # oos_y <- sapply(oos_x, f) ## ----eval = FALSE------------------------------------------------------------- # plot(m,oos_x,oos_y) ## ----eval = FALSE------------------------------------------------------------- # test_x <- seq(0, 1, length = 200) # test_y <- sapply(test_x, f) ## ----eval = FALSE------------------------------------------------------------- # m <- predict(m, x = test_x) ## ----eval = FALSE------------------------------------------------------------- # mu <- m$results$mean # extract the predictive means # sd <- sqrt(m$results$var) # extract the predictive variance and compute the predictive standard deviations # # compute predictive bounds which are two predictive standard deviations above and below the predictive means # up <- mu + 2*sd # lo <- mu - 2*sd # # plot(test_x, mu, type = 'l', lty = 2, lwd = 1.5, col = 'black', xlab = 'x', cex.axis = 1.3, cex.lab = 1.3, ylab = 'y', ylim = c(-1.5,1.5)) # predictive means # polygon(c(test_x, rev(test_x)), c(up,rev(lo)), col = 'grey80', border = F) # credible interval # lines(test_x, test_y, type = 'l', col = "#D55E00", lwd = 2) # Underlying truth # lines(test_x, mu, type = 'l', lty = 2, lwd = 1.5, col = 'black') # lines(X, Y, type = 'p', pch = 16, cex = 1, col = "#0072B2") # Training data points