Different beta functions in a model

Hello people! Coud I use different beta functions (different distribution functions) for different X predictors in a same multivariate model?

Not knowing the details of the model, I would say yes.

You could create a Beta distribution like this: pm.Beta("bravo", alpha=[1,2,3], beta=[3,2,4]), which would be shape=(3,).

If you want to use entirely different priors for the predictors, you could concatenate them:

import theano.tensor as tt

X = tt.concatenate([
    pm.Normal(...),
    pm.Beta(...),
    pm.Gamma(...),
])
# optional:
X = pm.Deterministic("X", X)
# (Deterministic variables will show up in the trace)

Does this answer your question?

2 Likes

Thanks Michael for your answer!
Yes, answer my question!
But I have another problem!
My biggest concern is to multiply the different betas by matrices (different dimensions) of X predictors and then add them in the model. Will the ‘concatenate’ function complain about these different dimensions?

y = alpha + Beta1.X1 + Beta2.X2 + Beta3.X3 + Gamma1.X4 + Gamma2.X5

With different X predictors how can I build the equation ?:

y = a + pm.math.dot(X, betas) + pm.math.dot(X, gammas)

A dot product should be fine. You might just need to transpose something, but there is no reason why you can’t write down the y equation

Thank you very much!!