-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathlogregmodel4.stan
48 lines (41 loc) · 1.03 KB
/
logregmodel4.stan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// The input data is a vector 'y' of length 'TT'.
data {
int<lower=1> TT;
int y[TT];
int sexmissing[TT];
int ncov;
matrix[TT, ncov] x;
vector[TT] bsize;
vector[TT] sex;
}
parameters {
//real<lower=0, upper=1> p;
vector[ncov] beta;
vector[3] alpha;
real<lower=0, upper=1> pi;
}
model {
// Priors
beta ~ normal(0, 0.5);
alpha[1] ~ normal(0, 0.5);
alpha[2] ~ normal(0, 0.5);
//values range from -40 to 40
alpha[3] ~ normal(0, 0.1);
for(t in 1:TT){
if(sexmissing[t] == 1){
target += log_mix(pi,
bernoulli_logit_lpmf(y[t] | alpha[1] +
alpha[3]*bsize +
x[t]*beta),
bernoulli_logit_lpmf(y[t] | alpha[1] +
alpha[2] +
alpha[3]*bsize[t] +
x[t]*beta));
} else {
y[t] ~ bernoulli_logit(alpha[1] +
alpha[2]*sex[t] +
alpha[3]*bsize[t] +
x[t]*beta);
}
}
}