Exemplo n.º 1
0
    def __init__(self, dim=3):
        self.a = np.random.random((dim, dim))
        self.a = np.matmul(self.a, np.transpose(self.a)) + np.eye(dim)

        self.par = vb.ModelParamsDict()
        self.par.push_param(vb.VectorParam('x', size=dim, lb=0))
        self.par.push_param(vb.VectorParam('y', size=dim, lb=1))
def get_group_parameters(K, num_groups=1):
    group_par = vb.ModelParamsDict('Single group GLMM parameters')
    group_par.push_param(vb.UVNParam('mu'))
    group_par.push_param(vb.GammaParam('tau'))
    group_par.push_param(vb.UVNParamVector('beta', K))
    group_par.push_param(vb.UVNParamVector('u', num_groups))
    return group_par
def get_mixture_parameters(dim, num_components):
    mix_par = vb.ModelParamsDict()
    mix_par.push_param(
        vb.ArrayParam('loc', shape=(num_components, dim)))
    mix_par.push_param(vb.PosDefMatrixParamArray(
        'info', array_shape=(num_components, ), matrix_size=dim))
    mix_par.push_param(vb.SimplexParam('w', shape=(1, num_components)))
    return mix_par
def get_mle_parameters(K, NG):
    mle_par = vb.ModelParamsDict('GLMER Parameters')
    mle_par.push_param(vb.VectorParam('mu'))
    mle_par.push_param(vb.VectorParam('tau'))
    mle_par.push_param(vb.VectorParam('beta', K))
    mle_par.push_param(vb.VectorParam('u', NG))

    return mle_par
 def __init__(self, name='', size=2, diag_lb=0.0, min_df=None):
     super().__init__(name=name)
     self.__size = int(size)
     if not min_df:
         min_df = size - 1
     assert min_df >= size - 1
     self.push_param(vb.ScalarParam('df', lb=min_df))
     self.push_param(vb.PosDefMatrixParam('v', diag_lb=diag_lb))
def get_glmm_parameters(
    K, NG,
    mu_info_min=0.0, tau_alpha_min=0.0, tau_beta_min=0.0,
    beta_diag_min=0.0, u_info_min=0.0):

    glmm_par = vb.ModelParamsDict('GLMM Parameters')
    glmm_par.push_param(vb.UVNParam('mu', min_info=mu_info_min))
    glmm_par.push_param(
        vb.GammaParam('tau', min_shape=tau_alpha_min, min_rate=tau_beta_min))
    #glmm_par.push_param(vb.MVNParam('beta', K, min_info=beta_diag_min))
    glmm_par.push_param(vb.UVNParamVector('beta', K, min_info=beta_diag_min))
    glmm_par.push_param(vb.UVNParamVector('u', NG, min_info=u_info_min))

    return glmm_par
Exemplo n.º 7
0
    def test_index_params(self):
        dim = 3
        param = vb.ModelParamsDict('test')
        param.push_param(vb.VectorParam('x', size=dim, lb=-2.0, ub=5.0))
        param.push_param(vb.VectorParam('y', size=dim, lb=-2.0, ub=5.0))

        index_par = obj_lib.make_index_param(param)
        param.set_free(np.random.random(param.free_size()))
        param_vec = param.get_vector()

        for d in range(dim):
            for pname in ['x', 'y']:
                self.assertAlmostEqual(param[pname].get()[d],
                                       param_vec[index_par[pname].get()[d]])
Exemplo n.º 8
0
    def __init__(self, dim):
        self.dim = dim
        self.x = vb.VectorParam('x', size=dim, lb=-2.0, ub=5.0)
        self.y = vb.VectorParam('y', size=dim, lb=-2.0, ub=5.0)
        self.a_mat = np.full((dim, dim), 0.1) + np.eye(dim)

        # For testing the Jacobian
        self.b_mat = self.a_mat[0:(dim - 1), 0:dim]

        self.set_inits()

        self.opt_x = np.linspace(1., 2., self.dim)

        self.preconditioner = np.eye(dim)
def get_default_prior_params(K):
    prior_par = vb.ModelParamsDict('Prior Parameters')
    prior_par.push_param(
        vb.VectorParam('beta_prior_mean', K, val=np.zeros(K)))
    prior_par.push_param(
        vb.PosDefMatrixParam('beta_prior_info', K, val=0.01 * np.eye(K)))

    prior_par.push_param(vb.ScalarParam('mu_prior_mean', val=0))
    prior_par.push_param(vb.ScalarParam('mu_prior_info', val=0.5))

    prior_par.push_param(vb.ScalarParam('tau_prior_alpha', val=3.0))
    prior_par.push_param(vb.ScalarParam('tau_prior_beta', val=10.0))

    return prior_par
    def __init__(self, glmm_par, global_only=False):
        self.glmm_par = glmm_par
        self.__global_only = global_only
        K = glmm_par['beta']['mean'].size()
        NG =  glmm_par['u']['mean'].size()
        self.moment_par = vb.ModelParamsDict('Moment Parameters')
        self.moment_par.push_param(vb.VectorParam('e_beta', K))
        self.moment_par.push_param(vb.ScalarParam('e_mu'))
        self.moment_par.push_param(vb.ScalarParam('e_tau'))
        self.moment_par.push_param(vb.ScalarParam('e_log_tau'))

        if not self.__global_only:
            self.moment_par.push_param(vb.VectorParam('e_u', NG))

        self.get_moment_jacobian = \
            autograd.jacobian(self.get_moment_vector_from_free)
def get_global_parameters(K):
    global_par = vb.ModelParamsDict('Global GLMM parameters')
    global_par.push_param(vb.UVNParam('mu'))
    global_par.push_param(vb.GammaParam('tau'))
    global_par.push_param(vb.UVNParamVector('beta', K))
    return global_par
Exemplo n.º 12
0
 def __init__(self, name='', min_shape=0.0, min_rate=0.0):
     super().__init__(name=name)
     self.push_param(vb.ScalarParam('shape', lb=min_shape))
     self.push_param(vb.ScalarParam('rate', lb=min_rate))
 def __init__(self, name='', shape=(1, 2), min_alpha=0.0, val=None):
     super().__init__(name=name)
     self.__shape = shape
     assert min_alpha >= 0, 'alpha parameter must be non-negative'
     self.push_param(
         vb.ArrayParam('alpha', shape=shape, lb=min_alpha, val=val))