Skip to content

Commit 1f11436

Browse files
authored
Merge pull request #193 from andrjohns/feature/arm_ch3
ARM Ch.3 Models Update
2 parents a72045b + 84ddf01 commit 1f11436

File tree

6 files changed

+39
-19
lines changed

6 files changed

+39
-19
lines changed

ARM/Ch.3/kidiq_interaction.stan

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,18 @@ data {
22
int<lower=0> N;
33
vector<lower=0, upper=200>[N] kid_score;
44
vector<lower=0, upper=200>[N] mom_iq;
5-
vector<lower=0, upper=1>[N] mom_hs;}
5+
vector<lower=0, upper=1>[N] mom_hs;
6+
}
67
transformed data { // interaction
7-
vector[N] inter;
8-
inter = mom_hs .* mom_iq;
8+
vector[N] inter = mom_hs .* mom_iq;
9+
matrix[N, 3] x = [mom_hs', mom_iq', inter']';
910
}
1011
parameters {
11-
vector[4] beta;
12+
real alpha;
13+
vector[3] beta;
1214
real<lower=0> sigma;
1315
}
1416
model {
1517
sigma ~ cauchy(0, 2.5);
16-
kid_score ~ normal(beta[1] + beta[2] * mom_hs + beta[3] * mom_iq
17-
+ beta[4] * inter, sigma);
18+
kid_score ~ normal_id_glm(x, alpha, beta, sigma);
1819
}

ARM/Ch.3/kidiq_multi_preds.stan

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@ data {
44
vector<lower=0, upper=200>[N] mom_iq;
55
vector<lower=0, upper=1>[N] mom_hs;
66
}
7+
transformed data {
8+
matrix[N, 2] x = [mom_hs', mom_iq']';
9+
}
710
parameters {
8-
vector[3] beta;
11+
real alpha;
12+
vector[2] beta;
913
real<lower=0> sigma;
1014
}
1115
model {
1216
sigma ~ cauchy(0, 2.5);
13-
kid_score ~ normal(beta[1] + beta[2] * mom_hs + beta[3] * mom_iq, sigma);
17+
kid_score ~ normal_id_glm(x, alpha, beta, sigma);
1418
}

ARM/Ch.3/kidiq_prediction.stan

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,19 @@ data {
66
real<lower=0, upper=1> mom_hs_new; // for prediction
77
real<lower=0, upper=200> mom_iq_new;
88
}
9+
transformed data {
10+
matrix[N, 2] x = [mom_hs', mom_iq']';
11+
row_vector[2] x_new = [mom_hs_new, mom_iq_new];
12+
}
913
parameters {
10-
vector[3] beta;
14+
real alpha;
15+
vector[2] beta;
1116
real<lower=0> sigma;
1217
}
1318
model {
1419
sigma ~ cauchy(0, 2.5);
15-
kid_score ~ normal(beta[1] + beta[2] * mom_hs + beta[3] * mom_iq, sigma);
20+
kid_score ~ normal_id_glm(x, alpha, beta, sigma);
1621
}
1722
generated quantities { // prediction
18-
real kid_score_pred;
19-
kid_score_pred = normal_rng(beta[1] + beta[2] * mom_hs_new
20-
+ beta[3] * mom_iq_new, sigma);
23+
real kid_score_pred = normal_rng(alpha + x_new * beta, sigma);
2124
}

ARM/Ch.3/kidiq_validation.stan

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@ data {
44
vector<lower=0, upper=1>[N] hs;
55
vector<lower=0, upper=200>[N] afqt;
66
}
7+
transformed data {
8+
matrix[N,2] x = [hs', afqt']';
9+
}
710
parameters {
8-
vector[3] beta;
11+
real alpha;
12+
vector[2] beta;
913
real<lower=0> sigma;
1014
}
1115
model {
1216
sigma ~ cauchy(0, 2.5);
13-
ppvt ~ normal(beta[1] + beta[2] * hs + beta[3] * afqt, sigma);
17+
ppvt ~ normal_id_glm(x, alpha, beta, sigma);
1418
}

ARM/Ch.3/kidscore_momhs.stan

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,15 @@ data {
33
vector<lower=0, upper=200>[N] kid_score;
44
vector<lower=0, upper=1>[N] mom_hs;
55
}
6+
transformed data {
7+
matrix[N,1] x = [mom_hs']';
8+
}
69
parameters {
7-
vector[2] beta;
10+
real alpha;
11+
vector[1] beta;
812
real<lower=0> sigma;
913
}
1014
model {
1115
sigma ~ cauchy(0, 2.5);
12-
kid_score ~ normal(beta[1] + beta[2] * mom_hs, sigma);
16+
kid_score ~ normal_id_glm(x, alpha, beta, sigma);
1317
}

ARM/Ch.3/kidscore_momiq.stan

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,15 @@ data {
33
vector<lower=0, upper=200>[N] kid_score;
44
vector<lower=0, upper=200>[N] mom_iq;
55
}
6+
transformed data {
7+
matrix[N,1] x = [mom_iq']';
8+
}
69
parameters {
7-
vector[2] beta;
10+
real alpha;
11+
vector[1] beta;
812
real<lower=0> sigma;
913
}
1014
model {
1115
sigma ~ cauchy(0, 2.5);
12-
kid_score ~ normal(beta[1] + beta[2] * mom_iq, sigma);
16+
kid_score ~ normal_id_glm(x, alpha, beta, sigma);
1317
}

0 commit comments

Comments
 (0)