Ejemplo n.º 1
0
    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"])])
Ejemplo n.º 4
0
    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"])])




Ejemplo n.º 5
0

## 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])