return parameters ## Prior hyperparameters hyperparameters = { \ "sigma_w_shape": 1, \ "sigma_w_scale": 1, \ "sigma_v_shape": 1, \ "sigma_v_scale": 1} modeltheta = ParameterModel(name = "Periodic Gaussian model theta", dimension = 2) modeltheta.setHyperparameters(hyperparameters) modeltheta.setPriorlogdensity(logdprior) modeltheta.setPriorgenerator(rprior) modeltheta.setParameterNames(["expression(sigma[w]^2)", "expression(sigma[v]^2)"]) modeltheta.setTransformation(["log", "log"]) modeltheta.setRtruevalues([10, 1]) InverseGammaTemplate = """ priorfunction <- function(x){ shape <- %.5f scale <- %.5f return(scale**shape / gamma(shape) * x**(- shape - 1) * exp(-scale / x)) } """ modeltheta.setRprior([InverseGammaTemplate % (hyperparameters["sigma_w_shape"], hyperparameters["sigma_w_scale"]), \ InverseGammaTemplate % (hyperparameters["sigma_v_shape"], hyperparameters["sigma_v_scale"])])
## Prior hyperparameters hyperparameters = { \ "eps_shape": 2, "eps_scale": 1, \ "w_shape": 2, "w_scale": 1, \ "r_scale": 1, \ "K_mean": 1, "K_sd": 1, "K_a": 0, "K_b": 10**10, \ "theta_scale": 1, \ "n0_mean": 1, "n0_sd": 1, "n0_a": 0, "n0_b": 10**10} def updateHyperparametersWithData(hyperparameters, observations): hyperparameters["K_mean"] = mean(observations) hyperparameters["K_sd"] = 2 * sqrt(var(observations)) hyperparameters["n0_mean"] = mean(observations) hyperparameters["n0_sd"] = 2 * sqrt(var(observations)) return hyperparameters modeltheta = ParameterModel(name = "Population Dynamic model theta (M2), reparameterized", dimension = 6) modeltheta.setHyperparameters(hyperparameters) modeltheta.setUpdateHyperparametersWithData(updateHyperparametersWithData) modeltheta.setPriorlogdensity(logdprior) modeltheta.setPriorgenerator(rprior) modeltheta.setParameterNames(["expression(sigma[epsilon]^2)", "expression(sigma[W]^2)", \ "expression(log(N[0]))", "expression(r)", "expression(K)", "expression(theta)"]) modeltheta.setTransformation(["log", "log", "none", "log", "log", "log"]) modeltheta.setRtruevalues([0.05**2, 0.05**2, log(1), 0.18, 1, 0.2])
size=size) parameters = zeros((2, size)) parameters[0, :] = sigma parameters[1, :] = tau return parameters ## Prior hyperparameters hyperparameters = { \ "sigma_shape": 1, \ "sigma_scale": 1, \ "tau_shape": 1, \ "tau_scale": 1} modeltheta = ParameterModel(name="Linear Gaussian model theta", dimension=2) modeltheta.setHyperparameters(hyperparameters) modeltheta.setPriorlogdensity(logdprior) modeltheta.setPriorgenerator(rprior) modeltheta.setParameterNames(["expression(sigma^2)", "expression(tau^2)"]) modeltheta.setTransformation(["log", "log"]) modeltheta.setRtruevalues([0.8, 0.4]) InverseGammaTemplate = """ priorfunction <- function(x){ shape <- %.5f scale <- %.5f return(scale**shape / gamma(shape) * x**(- shape - 1) * exp(-scale / x)) } """ modeltheta.setRprior([InverseGammaTemplate % (hyperparameters["sigma_shape"], hyperparameters["sigma_scale"]), \ InverseGammaTemplate % (hyperparameters["tau_shape"], hyperparameters["tau_scale"])])
parameters[1, :] = tau return parameters ## Prior hyperparameters hyperparameters = { \ "sigma_shape": 1, \ "sigma_scale": 1, \ "tau_shape": 1, \ "tau_scale": 1} modeltheta = ParameterModel(name = "Linear Gaussian model theta", dimension = 2) modeltheta.setHyperparameters(hyperparameters) modeltheta.setPriorlogdensity(logdprior) modeltheta.setPriorgenerator(rprior) modeltheta.setParameterNames(["expression(sigma^2)", "expression(tau^2)"]) modeltheta.setTransformation(["log", "log"]) modeltheta.setRtruevalues([0.8, 0.4]) InverseGammaTemplate = """ priorfunction <- function(x){ shape <- %.5f scale <- %.5f return(scale**shape / gamma(shape) * x**(- shape - 1) * exp(-scale / x)) } """ modeltheta.setRprior([InverseGammaTemplate % (hyperparameters["sigma_shape"], hyperparameters["sigma_scale"]), \ InverseGammaTemplate % (hyperparameters["tau_shape"], hyperparameters["tau_scale"])])
## Prior hyperparameters hyperparameters = { \ "eps_shape": 2, "eps_scale": 1, \ "w_shape": 2, "w_scale": 1, \ "r_scale": 1, \ "K_mean": 1, "K_sd": 1, "K_a": 0, "K_b": 10**10, \ "theta_scale": 1, \ "n0_mean": 1, "n0_sd": 1, "n0_a": 0, "n0_b": 10**10} def updateHyperparametersWithData(hyperparameters, observations): hyperparameters["K_mean"] = mean(observations) hyperparameters["K_sd"] = 2 * sqrt(var(observations)) hyperparameters["n0_mean"] = mean(observations) hyperparameters["n0_sd"] = 2 * sqrt(var(observations)) return hyperparameters modeltheta = ParameterModel( name="Population Dynamic model theta (M2), reparameterized", dimension=6) modeltheta.setHyperparameters(hyperparameters) modeltheta.setUpdateHyperparametersWithData(updateHyperparametersWithData) modeltheta.setPriorlogdensity(logdprior) modeltheta.setPriorgenerator(rprior) modeltheta.setParameterNames(["expression(sigma[epsilon]^2)", "expression(sigma[W]^2)", \ "expression(log(N[0]))", "expression(r)", "expression(K)", "expression(theta)"]) modeltheta.setTransformation(["log", "log", "none", "log", "log", "log"]) modeltheta.setRtruevalues([0.05**2, 0.05**2, log(1), 0.18, 1, 0.2])