Here is my code, model in a native way, Is there a way to rewrite this code with less variable? Thanks…
with pm.Model() as model_4:
grp_alpha_mu = pm.Normal('grp_alpha_mu', mu=0, sd=10)
grp_alpha_sd = pm.HalfCauchy('grp_alpha_sd', 5)
grp_beta_mu_0 = pm.Normal('grp_beta_mu_0', mu=0, sd=10)
grp_beta_sd_0 = pm.HalfCauchy('grp_beta_sd_0', 5)
grp_beta_mu_1 = pm.Normal('grp_beta_mu_1', mu=0, sd=10)
grp_beta_sd_1 = pm.HalfCauchy('grp_beta_sd_1', 5)
grp_beta_mu_2 = pm.Normal('grp_beta_mu_2', mu=0, sd=10)
grp_beta_sd_2 = pm.HalfCauchy('grp_beta_sd_2', 5)
grp_beta_mu_3 = pm.Normal('grp_beta_mu_3', mu=0, sd=10)
grp_beta_sd_3 = pm.HalfCauchy('grp_beta_sd_3', 5)
grp_beta_mu_4 = pm.Normal('grp_beta_mu_4', mu=0, sd=10)
grp_beta_sd_4 = pm.HalfCauchy('grp_beta_sd_4', 5)
grp_beta_mu_5 = pm.Normal('grp_beta_mu_5', mu=0, sd=10)
grp_beta_sd_5 = pm.HalfCauchy('grp_beta_sd_5', 5)
alpha = pm.Normal('alpha', mu=grp_alpha_mu, sd=grp_alpha_sd, shape=n_site)
beta_0 = pm.Normal('beta', mu=grp_beta_mu_0, sd=grp_beta_sd_0, shape=n_site)
beta_1 = pm.Normal('beta_1', mu=grp_beta_mu_1, sd=grp_beta_sd_1, shape=n_site)
beta_2 = pm.Normal('beta_2', mu=grp_beta_mu_2, sd=grp_beta_sd_2, shape=n_site)
beta_3 = pm.Normal('beta_3', mu=grp_beta_mu_3, sd=grp_beta_sd_3, shape=n_site)
beta_4 = pm.Normal('beta_4', mu=grp_beta_mu_4, sd=grp_beta_sd_4, shape=n_site)
beta_5 = pm.Normal('beta_5', mu=grp_beta_mu_5, sd=grp_beta_sd_5, shape=n_site)
sigma = pm.HalfCauchy('sigma', 5)
mu = pm.Deterministic('mu', alpha[site_idx] + beta_0[site_idx]*X_train_siteResort['辐照度'] + beta_1[site_idx]*X_train_siteResort['风速'] +
beta_2[site_idx]*X_train_siteResort['风向'] + beta_3[site_idx]*X_train_siteResort['温度'] +
beta_4[site_idx]*X_train_siteResort['湿度'] + beta_5[site_idx]*X_train_siteResort['压强'])
y_pred = pm.Normal('y_pred', mu=mu, sd=sigma, observed=y_train_siteResort.values)