Exemplo n.º 1
0
    def setUp(self):
        np.random.seed(0)

        self.mean = np.array([[0., -2.], [0., 0.], [0., 2.]])
        self.cov = np.array([[2., 0.], [0., .2]])

        n_obs = 2000

        data = np.vstack([np.array(rmvnorm(self.mean[k, :], self.cov, n_obs))
                          for k in range(self.mean.shape[0])])

        self.model = FlowVB(data, 6, thresh=1e-6, init_method='random')
Exemplo n.º 2
0
    def setUp(self):
        np.random.seed(0)

        self.mean = np.array([[0., -2.], [0., 0.], [0., 2.]])
        self.cov = np.array([[2., 0.], [0., .2]])

        n_obs = 2000

        data = np.vstack([np.array(rmvnorm(self.mean[k, :], self.cov, n_obs))
                          for k in range(self.mean.shape[0])])                        

        initialiser = RandomInitialiser()
        init_params = initialiser.initialise_parameters(data, 6)
        
        options = Options(init_params)
        
        self.model = FlowVBAnalysis(data, options)
Exemplo n.º 3
0
def varsim(coefs, intercept, sig_u, steps=100, initvalues=None):
    """
    Simulate simple VAR(p) process with known coefficients, intercept, white
    noise covariance, etc.
    """
    from numpy.random import multivariate_normal as rmvnorm
    p, k, k = coefs.shape
    ugen = rmvnorm(np.zeros(len(sig_u)), sig_u, steps)
    result = np.zeros((steps, k))
    result[p:] = intercept + ugen[p:]

    # add in AR terms
    for t in xrange(p, steps):
        ygen = result[t]
        for j in xrange(p):
            ygen += np.dot(coefs[j], result[t - j - 1])

    return result
Exemplo n.º 4
0
def varsim(coefs, intercept, sig_u, steps=100, initvalues=None, seed=None):
    """
    Simulate simple VAR(p) process with known coefficients, intercept, white
    noise covariance, etc.
    """
    if seed is not None:
        np.random.seed(seed=seed)
    from numpy.random import multivariate_normal as rmvnorm
    p, k, k = coefs.shape
    ugen = rmvnorm(np.zeros(len(sig_u)), sig_u, steps)
    result = np.zeros((steps, k))
    result[p:] = intercept + ugen[p:]

    # add in AR terms
    for t in xrange(p, steps):
        ygen = result[t]
        for j in xrange(p):
            ygen += np.dot(coefs[j], result[t-j-1])

    return result
Exemplo n.º 5
0
import numpy as np
from numpy.random import multivariate_normal as rmvnorm

from flowvb import FlowVBAnalysis
from flowvb.core.flow_vb import Options
from flowvb.initialize import D2Initialiser

'''
Demo using synthetic data with three wide but short clusters
'''

# np.random.seed(0)

mean = np.array([[0., -2.], [0., 0.], [0., 2.]])
cov = np.array([[2., 0.], [0., .2]])

n_obs = 2000

data = np.vstack([np.array(rmvnorm(mean[k, :], cov, n_obs))
                  for k in range(mean.shape[0])])

num_comp_init = 6
init_params = D2Initialiser().initialise_parameters(data, num_comp_init)
options = Options(init_params)

options.plot_monitor = True

model = FlowVBAnalysis(data, options)
Exemplo n.º 6
0
import numpy as np
from numpy.random import multivariate_normal as rmvnorm

from flowvb import FlowVBAnalysis
from flowvb.core.flow_vb import Options
from flowvb.initialize import D2Initialiser

'''
Demo using synthetic data with a large and a small cluster
'''

np.random.seed(0)

mean = np.array([[0., -2.], [3., 3.]])
cov = np.array([[[2., 0.], [0., .2]], [[.2, 0], [0, .2]]])

n_obs = [2000, 100]

data = np.vstack([np.array(rmvnorm(mean[k, :], cov[k, :, :], n_obs[k]))
                  for k in range(mean.shape[0])])

num_comp_init = 6
init_params = D2Initialiser().initialise_parameters(data, num_comp_init)
options = Options(init_params)

options.plot_monitor = True

model = FlowVBAnalysis(data, options)