@@ -197,13 +197,17 @@ particleMetropolisHastingsSVmodel <- function(y, initialTheta, noParticles, noIt
197197 }
198198
199199 # Compute difference in the log-priors
200- priorMu <- dnorm(thetaProposed [k , 1 ], 0 , 1 , log = TRUE ) - dnorm(theta [k - 1 , 1 ], 0 , 1 , log = TRUE )
201- priorPhi <- dnorm(thetaProposed [k , 2 ], 0.95 , 0.05 , log = TRUE ) - dnorm(theta [k - 1 , 2 ], 0.95 , 0.05 , log = TRUE )
202- priorSigmaV <- dgamma(thetaProposed [k , 3 ], 2 , 10 , log = TRUE ) - dgamma(theta [k - 1 , 3 ], 2 , 10 , log = TRUE )
200+ priorMu <- dnorm(thetaProposed [k , 1 ], 0 , 1 , log = TRUE )
201+ priorMu <- priorMu - dnorm(theta [k - 1 , 1 ], 0 , 1 , log = TRUE )
202+ priorPhi <- dnorm(thetaProposed [k , 2 ], 0.95 , 0.05 , log = TRUE )
203+ priorPhi <- priorPhi - dnorm(theta [k - 1 , 2 ], 0.95 , 0.05 , log = TRUE )
204+ priorSigmaV <- dgamma(thetaProposed [k , 3 ], 2 , 10 , log = TRUE )
205+ priorSigmaV <- priorSigmaV - dgamma(theta [k - 1 , 3 ], 2 , 10 , log = TRUE )
206+ prior <- priorMu + priorPhi + priorSigmaV
203207
204208 # Compute the acceptance probability
205209 likelihoodDifference <- logLikelihoodProposed [k ] - logLikelihood [k - 1 ]
206- acceptProbability <- exp(priorMu + priorPhi + priorSigmaV + likelihoodDifference )
210+ acceptProbability <- exp(prior + likelihoodDifference )
207211
208212 # Always reject if parameter results in an unstable system
209213 acceptProbability <- acceptProbability * (abs(thetaProposed [k , 2 ]) < 1.0 )
0 commit comments