# runmcmc_cp0: Estimate a posterior distribution of data conditional on zero... In bulletcp: Automatic Groove Identification via Bayesian Changepoint Detection

## Description

This function runs a random walk Metropolis algorithm to estimate the posterior distribution of a zero mean multivariate normal distribution with an covariance matrix generated by the exponential covariance function. This functions assumes equally spaced locations ("x" values in the "data" argument).

## Usage

 1 2 runmcmc_cp0(data, iter, start.vals, prop_var, warmup = 500, verbose = FALSE)

## Arguments

 data Data frame with columns "x" and "y." "x" is a column of the locations of the observed residual values, y. iter Number of interations after warmup. start.vals List with elements "sigma" and "l" for the standard deviation and length scale which parameterize the covariance matrix. prop_var The proposal variance-covariance matrix for the random walk metropolis algorithm. warmup The number of initial iterations which serves two purposes: the first is to allow the algorithm to wander to the area of most mass, and the second is to tune the proposal variance. verbose Logical value indicating whether to print the iteration number and the parameter proposals.

## Value

A named list. "parameters" is a list of named parameter values each of which is a vector of length "iter". "accept" gives the proportion of accepted proposals after warmup. "lp" is a vector of values of the log data pdf at each sampled parameter value.

## Examples

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # Fake data sim_groove <- function(beta = c(-0.28,0.28), a = 125) { x <- seq(from = 0, to = 2158, by = 20) med <- median(x) y <- 1*(x <= a)*(beta[1]*(x - med) - beta[1]*(a - med)) + 1*(x >= 2158 - a)*(beta[2]*(x - med) - beta[2]*(2158 - a - med)) return(data.frame("x" = x, "y" = y)) } fake_groove <- sim_groove() # define starting values start.vals <- list("sigma" = c(1), "l" = c(10)) # proposal variance for the MH step prop_var <- diag(c(1/2,1/2)) set.seed(1111) m0cp <- runmcmc_cp0(data = fake_groove, iter = 500, start.vals = start.vals, prop_var = prop_var, warmup = 100, verbose = FALSE)

bulletcp documentation built on May 2, 2019, 1:08 p.m.