2017-08-16 70 views
1

我對pymc3相當陌生,我試圖理解如何以不同方式將隨機變量加入模型中。我想適應以下(人爲的)模型,但我無法在文檔中找到任何支持。Pymc3中的隨機索引

equation

我嘗試以下,但numpy的不允許這樣的索引:

seq = numpy.arange(10,y_train.size) 
basic_model = pymc3.Model() 
with basic_model: 
    alpha = pymc3.Normal('alpha',mu=0,sd=1) 
    beta = pymc3.Normal('beta',mu=0,sd=1) 
    gamma = pymc3.DiscreteUniform('gamma',lower=1,upper=10) 
    mu = pymc3.Deterministic('mu',alpha+beta*y_train[seq-gamma]) 
    y = pymc3.Normal('y',mu=mu,sd=sigma,observed=y_train[11:]) 
    map_estimate = pymc3.find_MAP(model=basic_model) 
    step = pymc3.Metropolis() 
    trace = pymc3.sample(10000,step,start=map_estimate,progressbar=True) 

回答

1

您需要將numpy的數組轉換成theano常量第一:

tt.as_tensor_variable(y_train)[seq-gamma]