Skip to content

Commit 876f973

Browse files
committed
updated ch24 ARM models
1 parent d9157c2 commit 876f973

File tree

3 files changed

+26
-22
lines changed

3 files changed

+26
-22
lines changed

ARM/Ch.24/dogs.stan

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,8 @@ transformed parameters {
2424
}
2525
model {
2626
beta ~ normal(0, 100);
27-
y ~ bernoulli_logit(p);
27+
for (i in 1:n_dogs) {
28+
for (j in 1:n_trials)
29+
y[i,j] ~ bernoulli_logit(p[i,j]);
30+
}
2831
}

ARM/Ch.24/dogs_check.stan

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
data {
22
int<lower=0> n_dogs;
33
int<lower=0> n_trials;
4-
matrix[n_dogs,n_trials] y;
4+
int<lower=0, upper=1> y[n_dogs,n_trials];
55
}
66
parameters {
77
real<lower=0,upper=100> sigma_b1;
@@ -10,41 +10,39 @@ parameters {
1010
real<lower=-1,upper=1> rho_b;
1111
vector[2] mu_beta;
1212
}
13-
transformed parameters {
13+
model {
1414
vector[n_dogs] beta1;
1515
vector[n_dogs] beta2;
1616
matrix[n_dogs,n_trials] n_avoid;
1717
matrix[n_dogs,n_trials] n_shock;
1818
matrix[n_dogs,n_trials] p;
19-
cov_matrix[2] Sigma_b;
19+
matrix[2,2] Sigma_b;
20+
21+
sigma_b1 ~ uniform (0, 100);
22+
sigma_b2 ~ uniform (0, 100);
23+
rho_b ~ uniform(-1, 1);
24+
mu_beta ~ normal(0, 100);
2025

2126
Sigma_b[1,1] <- pow(sigma_b1,2);
2227
Sigma_b[2,2] <- pow(sigma_b2,2);
2328
Sigma_b[1,2] <- rho_b*sigma_b1*sigma_b2;
2429
Sigma_b[2,1] <- Sigma_b[1,2];
2530

31+
for (i in 1:n_dogs)
32+
transpose(beta_neg[i]) ~ multi_normal_prec(mu_beta,Sigma_b);
2633

2734
for (j in 1:n_dogs) {
2835
n_avoid[j,1] <- 0;
2936
n_shock[j,1] <- 0;
30-
beta1[j] <- -exp(b_neg[j,1]);
31-
beta2[j] <- -exp(b_neg[j,2]);
37+
beta1[j] <- -exp(beta_neg[j,1]);
38+
beta2[j] <- -exp(beta_neg[j,2]);
3239
for (t in 2:n_trials) {
3340
n_avoid[j,t] <- n_avoid[j,t-1] + 1 - y[j,t-1];
3441
n_shock[j,t] <- n_shock[j,t-1] + y[j,t-1];
3542
}
36-
for (t in 1:n_trials)
37-
p[j,t] <- exp(beta1[j] * n_avoid[j,t] + beta2[j] * n_shock[j,t]);
43+
for (t in 1:n_trials) {
44+
p[j,t] <- inv_logit(beta1[j] * n_avoid[j,t] + beta2[j] * n_shock[j,t]);
45+
y[j,t] ~ bernoulli(p[j,t]);
46+
}
3847
}
3948
}
40-
model {
41-
sigma_b1 ~ uniform (0, 100);
42-
sigma_b2 ~ uniform (0, 100);
43-
rho_b ~ uniform(-1, 1);
44-
mu_beta ~ normal(0, 100);
45-
46-
for (i in 1:n_dogs)
47-
transpose(b_neg[i]) ~ multi_normal_prec(mu_beta,Sigma_b);
48-
49-
y ~ binomial(p, 1);
50-
}

ARM/Ch.24/dogs_log.stan

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
data {
22
int<lower=0> n_trials;
33
int<lower=0> n_dogs;
4-
matrix[n_dogs,n_trials] y;
4+
int<lower=0,upper=1> y[n_dogs,n_trials];
55
}
66
parameters {
77
vector[2] beta;
@@ -19,11 +19,14 @@ transformed parameters {
1919
n_shock[j,t] <- n_shock[j,t-1] + y[j,t-1];
2020
}
2121
for (t in 1:n_trials)
22-
p[j,t] <- exp(beta[1] * n_avoid[j,t] + beta[2] * n_shock[j,t]);
22+
p[j,t] <- inv_logit(beta[1] * n_avoid[j,t] + beta[2] * n_shock[j,t]);
2323
}
2424
}
2525
model {
2626
beta[1] ~ uniform(-100, 0);
2727
beta[2] ~ uniform(0, 100);
28-
y ~ binomial(p, 1);
28+
for (i in 1:n_dogs) {
29+
for (j in 1:n_trials)
30+
y[i,j] ~ bernoulli(p[i,j]);
31+
}
2932
}

0 commit comments

Comments
 (0)