Description Usage Arguments Value Note Author(s) References Examples
View source: R/parameterEstimation.R
Estimates the parameter posterior for θ=\{μ,φ,σ_v\} in a stochastic volatility model of the form x_t = μ + φ ( x_{t-1} - μ ) + σ_v v_t and y_t = \exp(x_t/2) e_t, where v_t and e_t denote independent standard Gaussian random variables, i.e. N(0,1).
1 2 | particleMetropolisHastingsSVmodel(y, initialTheta, noParticles,
noIterations, stepSize)
|
y |
Observations from the model for t=1,...,T. |
initialTheta |
An inital value for the parameters θ=\{μ,φ,σ_v\}. The mean of the log-volatility process is denoted μ. The persistence of the log-volatility process is denoted φ. The standard deviation of the log-volatility process is denoted σ_v. |
noParticles |
The number of particles to use in the filter. |
noIterations |
The number of iterations in the PMH algorithm. |
stepSize |
The standard deviation of the Gaussian random walk proposal for θ. |
The trace of the Markov chain exploring the posterior of θ.
See Section 5 in the reference for more details.
Johan Dahlin uni@johandahlin.com
Dahlin, J. & Schon, T. B. "Getting Started with Particle Metropolis-Hastings for Inference in Nonlinear Dynamical Models." Journal of Statistical Software, Code Snippets, 88(2): 1–41, 2019.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | ## Not run:
# Get the data from Quandl
library("Quandl")
d <- Quandl("NASDAQOMX/OMXS30", start_date="2012-01-02",
end_date="2014-01-02", type="zoo")
y <- as.numeric(100 * diff(log(d$"Index Value")))
# Estimate the marginal posterior for phi
pmhOutput <- particleMetropolisHastingsSVmodel(y,
initialTheta = c(0, 0.9, 0.2),
noParticles=500,
noIterations=1000,
stepSize=diag(c(0.05, 0.0002, 0.002)))
# Plot the estimate
nbins <- floor(sqrt(1000))
par(mfrow=c(3, 1))
hist(pmhOutput$theta[,1], breaks=nbins, main="", xlab=expression(mu),
ylab="marginal posterior", freq=FALSE, col="#7570B3")
hist(pmhOutput$theta[,2], breaks=nbins, main="", xlab=expression(phi),
ylab="marginal posterior", freq=FALSE, col="#E7298A")
hist(pmhOutput$theta[,3], breaks=nbins, main="",
xlab=expression(sigma[v]), ylab="marginal posterior",
freq=FALSE, col="#66A61E")
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.