Nothing
## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(echo = TRUE,
eval = greta:::check_tf_version("message"),
cache = TRUE,
comment = NA,
progress = FALSE)
set.seed(2018-07-02)
library(greta)
if (!file.exists("figures"))
dir.create("figures")
file.copy("../man/figures/plotlegend.png",
"figures/plotlegend.png")
## ----install_greta, eval = FALSE----------------------------------------------
# install.packages("greta")
## ----install_greta_github, eval = FALSE---------------------------------------
# devtools::install_github("greta-dev/greta")
## ----load---------------------------------------------------------------------
library(greta)
## ----install_tensorflow, eval = FALSE-----------------------------------------
# reticulate::install_miniconda()
# reticulate::conda_create(
# envname = "greta-env",
# python_version = "3.7"
# )
# reticulate::conda_install(
# envname = "greta-env",
# packages = c(
# "numpy==1.16.4",
# "tensorflow-probability==0.7.0",
# "tensorflow==1.14.0"
# )
# )
## ----install-deps-plain, eval = FALSE-----------------------------------------
# reticulate::install_miniconda()
# reticulate::conda_install(
# packages = c(
# "numpy==1.16.4",
# "tensorflow-probability==0.7.0",
# "tensorflow==1.14.0"
# )
# )
## ----install_diagrammer, eval = FALSE-----------------------------------------
# install.packages("igraph")
# install.packages("DiagrammeR")
## ----ones---------------------------------------------------------------------
(z <- ones(3, 3))
## ----ones_op------------------------------------------------------------------
(z2 <- z + z ^ 2)
## ----variable-----------------------------------------------------------------
(a <- variable(dim = c(3, 3)))
(a2 <- a + a ^ 2)
## ----first_model, eval = FALSE------------------------------------------------
# library(greta)
#
# # data
# x <- as_data(iris$Petal.Length)
# y <- as_data(iris$Sepal.Length)
#
# # variables and priors
# int <- normal(0, 1)
# coef <- normal(0, 3)
# sd <- student(3, 0, 1, truncation = c(0, Inf))
#
# # operations
# mean <- int + coef * x
#
# # likelihood
# distribution(y) <- normal(mean, sd)
#
# # defining the model
# m <- model(int, coef, sd)
#
# # plotting
# plot(m)
#
# # sampling
# draws <- mcmc(m, n_samples = 1000)
## ----data---------------------------------------------------------------------
x <- as_data(iris$Petal.Length)
y <- as_data(iris$Sepal.Length)
## ----print_greta_array--------------------------------------------------------
as_data(iris[1:5, 1:4])
## ----logical_data-------------------------------------------------------------
(is_setosa <- iris$Species[c(1, 41, 81, 121)] == "setosa")
as_data(is_setosa)
## ----dim----------------------------------------------------------------------
dim(as_data(is_setosa))
## ----structures---------------------------------------------------------------
ones(1, 3)
zeros(2, 2)
## ----greta_array--------------------------------------------------------------
greta_array(pi, dim = c(2, 2))
greta_array(0:1, dim = c(3, 3))
## ----variables----------------------------------------------------------------
int <- normal(0, 1)
coef <- normal(0, 3)
sd <- student(3, 0, 1, truncation = c(0, Inf))
## ----int_variable-------------------------------------------------------------
(int <- variable())
## ----positive_variable--------------------------------------------------------
(sd <- variable(lower = 0))
## ----matrix_variable----------------------------------------------------------
variable(lower = 0, dim = c(2, 3))
## ----truncated1---------------------------------------------------------------
(z <- normal(0, 1, truncation = c(-1, 1)))
## ----linear_predictor---------------------------------------------------------
mean <- int + coef * x
## ----mean---------------------------------------------------------------------
dim(mean)
head(mean)
## ----extract------------------------------------------------------------------
mean[1:3]
## ----replace------------------------------------------------------------------
z <- zeros(4, 3)
z[, 1] <- normal(0, 1, dim = 4)
z
## ----drop---------------------------------------------------------------------
z <- matrix(1, nrow = 2, ncol = 2)
dim(z[, 1])
dim(z[, 1, drop = FALSE])
## ----drop_greta---------------------------------------------------------------
z_greta <- as_data(z)
dim(z_greta[, 1])
## ----function1----------------------------------------------------------------
atanh <- function (z)
(log(1 + z) - log(1 - z)) / 2
atanh(z_greta)
## ----likelihood---------------------------------------------------------------
distribution(y) <- normal(mean, sd)
## ----hidden_model, echo = FALSE-----------------------------------------------
x <- as_data(iris$Petal.Length)
y <- as_data(iris$Sepal.Length)
int <- normal(0, 1)
coef <- normal(0, 3)
sd <- student(3, 0, 1, truncation = c(0, Inf))
mean <- int + coef * x
distribution(y) <- normal(mean, sd)
## ----define_model-------------------------------------------------------------
m <- model(int, coef, sd)
## ----plot, eval = FALSE-------------------------------------------------------
# plot(m)
## ----plot_hidden, echo = FALSE------------------------------------------------
gr <- plot(m)
DiagrammeR::export_graph(attr(gr, "dgr_graph"),
file_name = "figures/full_graph.png",
file_type = "png",
width = 958 * 2,
height = 450 * 2)
## ----plot_coef, echo = FALSE--------------------------------------------------
coef <- normal(0, 3)
m_coef <- model(coef)
gr <- plot(m_coef)
DiagrammeR::export_graph(attr(gr, "dgr_graph"),
file_name = "figures/coef_graph.png",
file_type = "png",
width = 325 * 2,
height = 123 * 2)
## ----plot_likelihood, echo = FALSE--------------------------------------------
sd <- variable()
y <- as_data(iris$Sepal.Length)
mean <- ones(150)
distribution(y) <- normal(mean, sd)
m_likelihood <- model(sd)
gr <- plot(m_likelihood)
dgr <- attr(gr, "dgr_graph")
# make the mean look like an operation node
idx <- which(dgr$nodes_df$label == 'mean\n')
dgr$nodes_df$shape[idx] <- 'circle'
dgr$nodes_df$fillcolor[idx] <- 'lightgray'
dgr$nodes_df$color[idx] <- 'lightgray'
dgr$nodes_df$width[idx] <- 0.2
dgr$nodes_df$height[idx] <- 0.2
dgr$nodes_df <- dgr$nodes_df[c(3, 1, 2, 4), ]
DiagrammeR::export_graph(dgr,
file_name = "figures/likelihood_graph.png",
file_type = "png",
width = 325 * 2,
height = 105 * 2)
## ----mcmc, message = FALSE, results = "hide", progress = FALSE----------------
draws <- mcmc(m, n_samples = 1000)
## ----coda_summary-------------------------------------------------------------
summary(draws)
## ----mcmcvis, echo = TRUE, message = FALSE, out.width = c('400px', '400px'), fig.height=4, fig.width=5, fig.show='hold'----
library (bayesplot)
# set theme to avoid issues with fonts
ggplot2::theme_set(ggplot2::theme_bw())
mcmc_trace(draws, facet_args = list(nrow = 3, ncol = 1))
mcmc_intervals(draws)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.