in pplbench/ppls/pymc3/robust_regression.py [0:0]
def get_model(self, data: xr.Dataset) -> pm.Model:
# transpose the dataset to ensure that it is the way we expect
data = data.transpose("item", "feature")
with pm.Model() as model:
X = pm.Data("x_obs", data.X.values)
Y = pm.Data("y_obs", data.Y.values)
alpha = pm.Normal("alpha", mu=0, sd=self.alpha_scale)
beta = pm.Normal("beta", mu=self.beta_loc, sd=self.beta_scale, shape=self.k)
nu = pm.Gamma("nu", alpha=2, beta=0.1)
sigma = pm.Exponential("sigma", lam=1 / self.sigma_mean)
mu = alpha + X.dot(beta)
pm.StudentT("Y", nu=nu, mu=mu, sigma=sigma, observed=Y, shape=self.n)
return model