Hi! I’m new here and new with Stan.

I would like to ask the following question.

How do we define define a likelihood that is binomial(m1,N,theta)*binomial(m2,N,theta) in the model section.

I’m stuck and maybe I missing something basic.

Thanks for your help.

Hi!

In general, you can always achieve this by doing something like

```
model{
m1 ~ binomial(N, theta)
m2 ~ binomial(N, theta)
}
```

This is general in the sense that it doesn’t matter that both distributions be binomial or that they share the same parameters.

In this particular case, though, you can be a bit more concise and efficient by exploiting the properties of the binomial distribution and recognizing that binomial(m_1|N,\theta)*binomial(m_2|N,\theta) \propto binomial(m_1 + m_2|2N,\theta), where binomial refers to the binomial probability mass function. Since Stan only needs the likelihood up to a constant of proportionality, you can replace your two statements with a single statement:

```
transformed data{
int m3 = m1 + m2;
int N2 = 2*N;
}
model{
m3 ~ binomial(N2, theta);
}
```

2 Likes

Thanks for your fast reply.

Just to confirm.

I suppose its equivalent with

data {

int N;

int x[2]; //where x[1] is m1 and x[2] is m2

}

parameters{

real<lower=0,upper=1> theta;

}

model {

x~binomial(N,theta);

}

Yes, that’s also the same model. There might still be a (very small, in this case) efficiency gain from using the single binomial for the sum. In general, it’s good practice to exploit such “sufficient statistics” when they are available.

1 Like