rstan.Rd
Stan Development Team
RStan is the R interface to the Stan C++ package. The RStan interface (rstan R package) provides:
Full Bayesian inference using the No-U-Turn sampler (NUTS), a variant of Hamiltonian Monte Carlo (HMC)
Approximate Bayesian inference using automatic differentiation variational inference (ADVI)
Penalized maximum likelihood estimation using L-BFGS optimization
For documentation on Stan itself, including the manual and user guide for the modeling language, case studies and worked examples, and other tutorial information visit the Users section of the Stan website:
Various related R packages are also available from the Stan Development Team including these and more:
Package | Description | Doc | Website |
bayesplot | ggplot-based plotting of parameter estimates, diagnostics, and posterior predictive checks. | bayesplot-package | mc-stan.org/bayesplot |
shinystan | Interactive GUI for exploring MCMC output. | shinystan-package | mc-stan.org/shinystan |
loo | Out-of-sample predictive performance estimates and model comparison. | loo-package | mc-stan.org/loo |
rstanarm | R formula interface for applied regression modeling. | rstanarm-package | mc-stan.org/rstanarm |
rstantools | Tools for developers of R packages interfacing with Stan. | rstantools-package | mc-stan.org/rstantools |
The RStan vignettes: https://mc-stan.org/rstan/articles/.
stan
for details on fitting models and
stanfit
for information on the fitted model objects.
The lookup
for finding a function in the Stan language
that corresponds to a R function or name.
https://github.com/stan-dev/rstan/issues/ to submit a bug report or feature request.
https://discourse.mc-stan.org to ask a question on the Stan Forums.
if (FALSE) {
stanmodelcode <- "
data {
int<lower=0> N;
real y[N];
}
parameters {
real mu;
}
model {
target += normal_lpdf(mu | 0, 10);
target += normal_lpdf(y | mu, 1);
}
"
y <- rnorm(20)
dat <- list(N = 20, y = y);
fit <- stan(model_code = stanmodelcode, model_name = "example",
data = dat, iter = 2012, chains = 3, verbose = TRUE,
sample_file = file.path(tempdir(), 'norm.csv'))
print(fit)
# extract samples
e <- extract(fit, permuted = FALSE) # return a list of arrays
str(e)
arr <- as.array(fit) # return an array
str(arr)
mat <- as.matrix(fit) # return a matrix
str(mat)
}