bssm

Bayesian Inference of State Space Models

https://github.com/helske/bssm

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: wiley.com
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.2%) to scientific vocabulary

Keywords

bayesian-inference cpp markov-chain-monte-carlo particle-filter r state-space time-series
Last synced: 4 months ago · JSON representation

Repository

Bayesian Inference of State Space Models

Basic Info
  • Host: GitHub
  • Owner: helske
  • Language: HTML
  • Default Branch: main
  • Homepage:
  • Size: 63.4 MB
Statistics
  • Stars: 46
  • Watchers: 5
  • Forks: 14
  • Open Issues: 1
  • Releases: 7
Topics
bayesian-inference cpp markov-chain-monte-carlo particle-filter r state-space time-series
Created almost 10 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog Contributing Codemeta

README.Rmd

---
output: github_document
---



```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%",
  cache = TRUE
)
```

```{r srr-tags, eval = FALSE, echo = FALSE}
#' @srrstats {G1.2} Contains project status badge.
#' @srrstats {G1.4,G1.4a} Package uses roxygen2 for documentation.
#' @srrstats {G2.0, G2.0a, G2.1, G2.1a, G2.2, G2.4, G2.4a, G2.4b, G2.4c, G2.6} 
#' Input types and shapes are tested and checked with autotest and converted 
#' explicitly when necessary.
#' 
#' @srrstats {G2.3, G2.3a, G2.3b} match.arg and tolower are used where 
#' applicable.
#' @srrstats {G1.0, G1.3, G1.4, G1.4a, G1.5, G1.6} General 
#' documentation, addressed by the vignettes and the corresponding R 
#' Journal paper.
#' @srrstats {G1.1} This is the first software to implement the IS-MCMC by 
#' Vihola, Helske, and Franks (2020) and first R package to implement delayed 
#' acceptance pseudo-marginal MCMC for state space models. The IS-MCMC method 
#' is also available in [walker](github.com/helske/walker) package for a 
#' limited class of time-varying GLMss (a small subset of the models 
#' supported by this package). Some of the functionality for exponential family 
#' state space models is also available in [KFAS](github.com/helske/KFAS), and 
#' those models can be converted easily to bssm format for Bayesian analysis.
#' @srrstats {G2.4, G2.4a, G2.4b, G2.4c, G2.6} Explicit conversions are used 
#' where necessary.
#' 
#' @srrstats {G2.14, G2.14a, G2.14b, G2.14c, G2.15, G2.16} Missing observations 
#' (y) are handled automatically as per SSM theory, whereas missing values are 
#' not allowed elsewhere. Inputing or ignoring them does not make sense in time 
#' series context.
#'
#' @srrstats {G3.0} No floating point equality comparisons are made.
#'
#' @srrstats {G5.4, G5.4a, G5.4b, G5.4c, G5.5, G5.6, G5.6a, G5.6b, G5.7} and
#' @srrstats {BS4.0, BS4.1} The algorithms work as defined per Vihola, Helske, 
#' Franks (2020) (all simulations were implemented with the bssm package) and 
#' Helske and Vihola (2021). Full replication of the results would take 
#' days/weeks (but see also bsm_ng, negbin_series and several testthat tests).
#'
#' @srrstats {G5.8, G5.8a, G5.8b, G5.8c, G5.8d} Tested with autotest and the 
#' testthat tests.
#' @srrstats {G5.9, G5.9a, G5.9b} Tested with autotest and the testthat tests.
#'
#' @srrstats {BS1.0, BS1.1, BS1.2, BS1.2a, BS1.2b, BS1.3b} Addressed in the 
#' models.R, run_mcmc.R, in vignettes and in the R Journal paper.
#'
#' @srrstats {BS2.1, BS2.1a, BS2.6} Tested and demonstrated by autotest and 
#' package examples/tests.
#' @srrstats {BS7.4, BS7.4a} The scales do not matter (in terms of runtime) 
#' in random walk Metropolis nor in particle filters, as long as numerical 
#' issues are not encountered
```

# bssm


[![Project Status: Active - The project has reached a stable, usable state and is being actively developed](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
[![Status at rOpenSci Software Peer Review](https://badges.ropensci.org/489_status.svg)](https://github.com/ropensci/software-review/issues/489)
[![R-CMD-check](https://github.com/helske/bssm/workflows/R-CMD-check/badge.svg)](https://github.com/helske/bssm/actions)
[![Codecov test coverage](https://codecov.io/gh/helske/bssm/graph/badge.svg)](https://app.codecov.io/gh/helske/bssm)
[![CRAN version](http://www.r-pkg.org/badges/version/bssm)]( https://CRAN.R-project.org/package=bssm)
[![downloads](https://cranlogs.r-pkg.org/badges/bssm)](https://cranlogs.r-pkg.org/badges/bssm)



The `bssm` R package provides efficient methods for Bayesian inference of state 
space models via particle Markov chain Monte Carlo and importance sampling type 
weighted MCMC. 
Currently Gaussian, Poisson, binomial, negative binomial, and Gamma observation 
densities with linear-Gaussian state dynamics, as well as general non-linear 
Gaussian models and discretely observed latent diffusion processes are 
supported.

For details, see 

* [The bssm paper on The R Journal](https://journal.r-project.org/archive/2021/RJ-2021-103/index.html), 
* [Package vignettes at CRAN](https://CRAN.R-project.org/package=bssm) 
* Paper on [Importance sampling type estimators based on approximate marginal Markov chain Monte Carlo](https://onlinelibrary.wiley.com/doi/abs/10.1111/sjos.12492)

There are also couple posters and a talk related to IS-correction methodology and bssm package: 

* [UseR!2021 talk slides](https://jounihelske.netlify.app/talk/user2021/)    
* [SMC 2017 workshop: Accelerating MCMC with an approximation ](http://users.jyu.fi/~jovetale/posters/SMC2017)
* [UseR!2017: Bayesian non-Gaussian state space models in R](http://users.jyu.fi/~jovetale/posters/user2017.pdf)

The `bssm` package was originally developed with the support of Academy of Finland grants 284513, 312605, 311877, and 331817. Current development is focused on increased usability. For recent changes, see NEWS file.

### Citing the package 

If you use the `bssm` package in publications, please cite the corresponding R Journal paper:

Jouni Helske and Matti Vihola (2021). "bssm: Bayesian Inference of Non-linear and Non-Gaussian State Space Models in R." The R Journal (2021) 13:2, pages 578-589. https://journal.r-project.org/archive/2021/RJ-2021-103/index.html

## Installation

You can install the released version of bssm from [CRAN](https://CRAN.R-project.org) with:

```{r, eval=FALSE}
install.packages("bssm")
```

And the development version from [GitHub](https://github.com/) with:

```{r, eval=FALSE}
# install.packages("devtools")
devtools::install_github("helske/bssm")
```
Or from R-universe with 

```{r, eval = FALSE}
install.packages("bssm", repos = "https://helske.r-universe.dev")
```

## Example

Consider the daily air quality measurements in New Your from May to September 1973, available in the `datasets` package. Let's try to predict the missing ozone levels by simple linear-Gaussian local linear trend model with temperature and wind as explanatory variables (missing response variables are handled naturally in the state space modelling framework, however no missing values in covariates are normally allowed);

```{r example}
library("bssm")
library("dplyr")
library("ggplot2")
set.seed(1)

data("airquality", package = "datasets")

# Covariates as matrix. For complex cases, check out as_bssm function
xreg <- airquality |> select(Wind, Temp) |> as.matrix()

model <- bsm_lg(airquality$Ozone,
  xreg = xreg,  
  # Define priors for hyperparameters (i.e. not the states), see ?bssm_prior
  # Initial value followed by parameters of the prior distribution
  beta = normal_prior(rep(0, ncol(xreg)), 0, 1),
  sd_y = gamma_prior(1, 2, 0.01),
  sd_level = gamma_prior(1, 2, 0.01), 
  sd_slope = gamma_prior(1, 2, 0.01))

fit <- run_mcmc(model, iter = 20000, burnin = 5000)
fit

obs <- data.frame(Time = 1:nrow(airquality),
  Ozone = airquality$Ozone) |> filter(!is.na(Ozone))

pred <- fitted(fit, model)
pred |>
  ggplot(aes(x = Time, y = Mean)) + 
  geom_ribbon(aes(ymin = `2.5%`, ymax = `97.5%`), 
    alpha = 0.5, fill = "steelblue") + 
  geom_line() + 
  geom_point(data = obs, 
    aes(x = Time, y = Ozone), colour = "Tomato") +
  theme_bw()

```

Same model but now assuming observations are from Gamma distribution:
```{r gamma-example}

model2 <- bsm_ng(airquality$Ozone,
  xreg = xreg,  
  beta = normal(rep(0, ncol(xreg)), 0, 1),
  distribution = "gamma",
  phi = gamma_prior(1, 2, 0.01),
  sd_level = gamma_prior(1, 2, 0.1), 
  sd_slope = gamma_prior(1, 2, 0.1))

fit2 <- run_mcmc(model2, iter = 20000, burnin = 5000, particles = 10)
fit2
```

Comparison:
```{r compare}
pred2 <- fitted(fit2, model2)

bind_rows(list(Gaussian = pred, Gamma = pred2), .id = "Model") |>
  ggplot(aes(x = Time, y = Mean)) + 
  geom_ribbon(aes(ymin = `2.5%`, ymax = `97.5%`, fill = Model), 
    alpha = 0.25) + 
  geom_line(aes(colour = Model)) + 
  geom_point(data = obs, 
    aes(x = Time, y = Ozone)) +
  theme_bw()
```


Now let's assume that we also want to use the solar radiation variable as predictor for ozone. As it contains few missing values, we cannot use it directly. As the number of missing time points is very small, simple imputation would likely be acceptable, but let's consider more another approach. For simplicity, the slope terms of the previous models are now omitted, and we focus on the Gaussian case. Let $\mu_t$ be the true solar radiation at time $t$. Now for ozone $O_t$ we assume following model:

$O_t = D_t + \alpha_t + \beta_S \mu_t + \sigma_\epsilon \epsilon_t$\
$\alpha_{t+1} = \alpha_t + \sigma_\eta\eta_t$\
$\alpha_1 \sim N(0, 100^2\textrm{I})$,\
wheere $D_t = \beta X_t$ contains regression terms related to wind and temperature, $\alpha_t$ is the time varying intercept term, and $\beta_S$ is the effect of solar radiation $\mu_t$.

Now for the observed solar radiation $S_t$ we assume 

$S_t = \mu_t$\
$\mu_{t+1} = \mu_t + \sigma_\xi\xi_t,$\
$\mu_1 \sim N(0, 100^2)$,\
i.e. we assume as simple random walk for the $\mu$ which we observe without error or not at all (there is no error term in the observation equation $S_t=\mu_t$).

We combine these two models as a bivariate Gaussian model with `ssm_mlg`:

```{r missing-values}
# predictors (not including solar radiation) for ozone
xreg <- airquality |> select(Wind, Temp) |> as.matrix()

# Function which outputs new model components given the parameter vector theta
update_fn <- function(theta) {
  D <- rbind(t(xreg %*% theta[1:2]), 1)
  Z <- matrix(c(1, 0, theta[3], 1), 2, 2)
  R <- diag(exp(theta[4:5]))
  H <- diag(c(exp(theta[6]), 0))
  # add third dimension so we have p x n x 1, p x m x 1, p x p x 1 arrays
  dim(Z)[3] <- dim(R)[3] <- dim(H)[3] <- 1
  list(D = D, Z = Z, R = R, H = H)
}

# Function for log-prior density
prior_fn <- function(theta) {
  sum(dnorm(theta[1:3], 0, 10, log = TRUE)) + 
    sum(dgamma(exp(theta[4:6]), 2, 0.01, log = TRUE)) + 
    sum(theta[4:6]) # log-jacobian
}

init_theta <- c(0, 0, 0, log(50), log(5), log(20))
comps <- update_fn(init_theta)

model <- ssm_mlg(y = cbind(Ozone = airquality$Ozone, Solar = airquality$Solar.R),
  Z = comps$Z, D = comps$D, H = comps$H, T = diag(2), R = comps$R, 
  a1 = rep(0, 2), P1 = diag(100, 2), init_theta = init_theta, 
  state_names = c("alpha", "mu"), update_fn = update_fn,
  prior_fn = prior_fn)

fit <- run_mcmc(model, iter = 60000, burnin = 10000)
fit
```

Draw predictions:
```{r bivariate-fig}
pred <- fitted(fit, model)

obs <- data.frame(Time = 1:nrow(airquality),
  Solar = airquality$Solar.R) |> filter(!is.na(Solar))

pred |> filter(Variable == "Solar") |>
  ggplot(aes(x = Time, y = Mean)) + 
  geom_ribbon(aes(ymin = `2.5%`, ymax = `97.5%`), 
    alpha = 0.5, fill = "steelblue") + 
  geom_line() + 
  geom_point(data = obs, 
    aes(x = Time, y = Solar), colour = "Tomato") +
  theme_bw()


obs <- data.frame(Time = 1:nrow(airquality),
  Ozone = airquality$Ozone) |> filter(!is.na(Ozone))

pred |> filter(Variable == "Ozone") |>
  ggplot(aes(x = Time, y = Mean)) + 
  geom_ribbon(aes(ymin = `2.5%`, ymax = `97.5%`), 
    alpha = 0.5, fill = "steelblue") + 
  geom_line() +  
  geom_point(data = obs, 
    aes(x = Time, y = Ozone), colour = "Tomato") +
  theme_bw()
```

See more examples in the paper, vignettes, and in the docs.

Owner

  • Name: Jouni Helske
  • Login: helske
  • Kind: user
  • Location: Finland
  • Company: University of Jyväskylä

Bayesian statistics, time series, causal inference, state space models, hidden Markov models, visualization.

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "bssm",
  "description": "Efficient methods for Bayesian inference of state space models via Markov chain Monte Carlo (MCMC) based on parallel importance sampling type weighted estimators (Vihola, Helske, and Franks, 2020, <doi:10.1111/sjos.12492>), particle MCMC, and its delayed acceptance version. Gaussian, Poisson, binomial, negative binomial, and Gamma observation densities and basic stochastic volatility models with linear-Gaussian state dynamics, as well as general non-linear Gaussian models and discretised diffusion models are supported. See Helske and Vihola (2021, <doi:10.32614/RJ-2021-103>) for details.",
  "name": "bssm: Bayesian Inference of Non-Linear and Non-Gaussian State Space\n        Models",
  "codeRepository": "https://github.com/helske/bssm",
  "issueTracker": "https://github.com/helske/bssm/issues",
  "license": "https://spdx.org/licenses/GPL-2.0",
  "version": "2.0.2",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R version 4.3.0 (2023-04-21 ucrt)",
  "provider": {
    "@id": "https://cran.r-project.org",
    "@type": "Organization",
    "name": "Comprehensive R Archive Network (CRAN)",
    "url": "https://cran.r-project.org"
  },
  "author": [
    {
      "@type": "Person",
      "givenName": "Jouni",
      "familyName": "Helske",
      "email": "jouni.helske@iki.fi",
      "@id": "https://orcid.org/0000-0001-7130-793X"
    },
    {
      "@type": "Person",
      "givenName": "Matti",
      "familyName": "Vihola",
      "@id": "https://orcid.org/0000-0002-8041-7222"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Jouni",
      "familyName": "Helske",
      "email": "jouni.helske@iki.fi",
      "@id": "https://orcid.org/0000-0001-7130-793X"
    }
  ],
  "softwareSuggestions": [
    {
      "@type": "SoftwareApplication",
      "identifier": "covr",
      "name": "covr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=covr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "ggplot2",
      "name": "ggplot2",
      "version": ">= 2.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=ggplot2"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "KFAS",
      "name": "KFAS",
      "version": ">= 1.2.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=KFAS"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "knitr",
      "name": "knitr",
      "version": ">= 1.11",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=knitr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "MASS",
      "name": "MASS",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=MASS"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rmarkdown",
      "name": "rmarkdown",
      "version": ">= 0.8.1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rmarkdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "ramcmc",
      "name": "ramcmc",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=ramcmc"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "sde",
      "name": "sde",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=sde"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "sitmo",
      "name": "sitmo",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=sitmo"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "name": "testthat",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=testthat"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "R",
      "name": "R",
      "version": ">= 4.1.0"
    },
    "2": {
      "@type": "SoftwareApplication",
      "identifier": "bayesplot",
      "name": "bayesplot",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=bayesplot"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "checkmate",
      "name": "checkmate",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=checkmate"
    },
    "4": {
      "@type": "SoftwareApplication",
      "identifier": "coda",
      "name": "coda",
      "version": ">= 0.18-1",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=coda"
    },
    "5": {
      "@type": "SoftwareApplication",
      "identifier": "diagis",
      "name": "diagis",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=diagis"
    },
    "6": {
      "@type": "SoftwareApplication",
      "identifier": "dplyr",
      "name": "dplyr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=dplyr"
    },
    "7": {
      "@type": "SoftwareApplication",
      "identifier": "posterior",
      "name": "posterior",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=posterior"
    },
    "8": {
      "@type": "SoftwareApplication",
      "identifier": "Rcpp",
      "name": "Rcpp",
      "version": ">= 0.12.3",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=Rcpp"
    },
    "9": {
      "@type": "SoftwareApplication",
      "identifier": "rlang",
      "name": "rlang",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rlang"
    },
    "10": {
      "@type": "SoftwareApplication",
      "identifier": "tidyr",
      "name": "tidyr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=tidyr"
    },
    "SystemRequirements": "pandoc (>= 1.12.3, needed for vignettes)"
  },
  "fileSize": "129081.465KB",
  "citation": [
    {
      "@type": "ScholarlyArticle",
      "datePublished": "2021",
      "author": [
        {
          "@type": "Person",
          "givenName": "Jouni",
          "familyName": "Helske"
        },
        {
          "@type": "Person",
          "givenName": "Matti",
          "familyName": "Vihola"
        }
      ],
      "name": "bssm: Bayesian Inference of Non-linear and Non-Gaussian State Space Models in {R}",
      "identifier": "10.32614/RJ-2021-103",
      "url": "https://doi.org/10.32614/RJ-2021-103",
      "pagination": "578--589",
      "@id": "https://doi.org/10.32614/RJ-2021-103",
      "sameAs": "https://doi.org/10.32614/RJ-2021-103",
      "isPartOf": {
        "@type": "PublicationIssue",
        "issueNumber": "2",
        "datePublished": "2021",
        "isPartOf": {
          "@type": [
            "PublicationVolume",
            "Periodical"
          ],
          "volumeNumber": "13",
          "name": "R Journal"
        }
      }
    },
    {
      "@type": "ScholarlyArticle",
      "datePublished": "2020",
      "author": [
        {
          "@type": "Person",
          "givenName": "Matti",
          "familyName": "Vihola"
        },
        {
          "@type": "Person",
          "givenName": "Jouni",
          "familyName": "Helske"
        },
        {
          "@type": "Person",
          "givenName": "Jordan",
          "familyName": "Franks"
        }
      ],
      "name": "Importance Sampling Type Estimators Based on Approximate Marginal {MCMC}",
      "identifier": "10.1111/sjos.12492",
      "url": "https://onlinelibrary.wiley.com/doi/abs/10.1111/sjos.12492",
      "@id": "https://doi.org/10.1111/sjos.12492",
      "sameAs": "https://doi.org/10.1111/sjos.12492",
      "isPartOf": {
        "@type": "PublicationIssue",
        "datePublished": "2020",
        "isPartOf": {
          "@type": [
            "PublicationVolume",
            "Periodical"
          ],
          "name": "Scandinavian Journal of Statistics"
        }
      }
    }
  ],
  "releaseNotes": "https://github.com/helske/bssm/blob/master/NEWS.md",
  "readme": "https://github.com/helske/bssm/blob/main/README.md",
  "contIntegration": [
    "https://github.com/helske/bssm/actions",
    "https://app.codecov.io/gh/helske/bssm?branch=master"
  ],
  "developmentStatus": "https://www.repostatus.org/#active",
  "review": {
    "@type": "Review",
    "url": "https://github.com/ropensci/software-review/issues/489",
    "provider": "https://ropensci.org"
  },
  "keywords": [
    "bayesian-inference",
    "markov-chain-monte-carlo",
    "particle-filter",
    "time-series",
    "state-space",
    "r",
    "cpp"
  ],
  "relatedLink": "https://CRAN.R-project.org/package=bssm"
}

GitHub Events

Total
  • Issues event: 5
  • Watch event: 6
  • Issue comment event: 6
Last Year
  • Issues event: 5
  • Watch event: 6
  • Issue comment event: 6

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 860
  • Total Committers: 7
  • Avg Commits per committer: 122.857
  • Development Distribution Score (DDS): 0.036
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Jouni Helske j****e@j****i 829
Jouni Helske j****e@l****e 20
sbgraves237 s****s@e****g 5
localadmin l****n@m****i 2
Helske j****e@j****i 2
Kyle Husmann k****n@g****m 1
Jouni Helske j****1@l****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 5 months ago

All Time
  • Total issues: 34
  • Total pull requests: 4
  • Average time to close issues: 8 months
  • Average time to close pull requests: about 2 hours
  • Total issue authors: 12
  • Total pull request authors: 3
  • Average comments per issue: 1.79
  • Average comments per pull request: 1.0
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 0
  • Average time to close issues: 21 days
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 0
  • Average comments per issue: 3.75
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • helske (19)
  • Lxr-China (2)
  • khusmann (2)
  • scottflaska (2)
  • AEdlerfi (1)
  • shubingtang (1)
  • zaczw (1)
  • rmendels (1)
  • sbgraves237 (1)
  • zjph602xtc (1)
  • jgslazzaro (1)
  • mpadge (1)
Pull Request Authors
  • helske (2)
  • khusmann (1)
  • sbgraves237 (1)
Top Labels
Issue Labels
enhancement (4) help wanted (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 863 last-month
  • Total docker downloads: 21,777
  • Total dependent packages: 1
  • Total dependent repositories: 2
  • Total versions: 28
  • Total maintainers: 1
cran.r-project.org: bssm

Bayesian Inference of Non-Linear and Non-Gaussian State Space Models

  • Versions: 28
  • Dependent Packages: 1
  • Dependent Repositories: 2
  • Downloads: 863 Last month
  • Docker Downloads: 21,777
Rankings
Forks count: 4.8%
Stargazers count: 8.2%
Downloads: 9.3%
Average: 12.0%
Docker downloads count: 12.5%
Dependent packages count: 18.1%
Dependent repos count: 19.2%
Maintainers (1)
Last synced: 5 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.5.0 depends
  • Rcpp >= 0.12.3 imports
  • bayesplot * imports
  • checkmate * imports
  • coda >= 0.18 imports
  • diagis * imports
  • dplyr * imports
  • magrittr * imports
  • posterior * imports
  • rlang * imports
  • tidyr * imports
  • KFAS >= 1.2.1 suggests
  • MASS * suggests
  • covr * suggests
  • ggplot2 >= 2.0.0 suggests
  • knitr >= 1.11 suggests
  • ramcmc * suggests
  • rmarkdown >= 0.8.1 suggests
  • sde * suggests
  • sitmo * suggests
  • testthat * suggests
.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v2 composite
  • actions/upload-artifact main composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite
  • r-lib/actions/setup-r-dependencies v1 composite