|
@@ -0,0 +1,59 @@
|
|
|
+// P(recs|child)
|
|
|
+real mu_adu = p_sib*(mu_pop_level[3]+mu_pop_level[4])+(1-p_sib)*(mu_pop_level[3]+mu_pop_level[4])*exp(beta_sib_adu/10.0);
|
|
|
+
|
|
|
+target += reduce_sum(
|
|
|
+ recs_priors_lpmf, children, 1,
|
|
|
+ n_recs, n_classes, recs_duration, age,
|
|
|
+ truth_vocs,
|
|
|
+ mu_pop_level, mu_adu, mu_child_level, alpha_child_level,
|
|
|
+ child_dev_age, alpha_dev, sigma_dev, beta_dev, beta_direct
|
|
|
+);
|
|
|
+
|
|
|
+// P(child|corpus)
|
|
|
+vector [2] ll;
|
|
|
+for (c in 1:n_children) {
|
|
|
+ // if there is sibling data
|
|
|
+ if (child_siblings[c]>=0) {
|
|
|
+ int distrib = child_siblings[c]==0?2:1;
|
|
|
+
|
|
|
+ mu_child_level[c,1] ~ gamma(
|
|
|
+ alpha_pop_level[distrib,1],
|
|
|
+ (alpha_pop_level[distrib,1]/(mu_pop_level[2,corpus[c]]*exp(
|
|
|
+ child_siblings[c]==0?beta_sib_och:0
|
|
|
+ )))
|
|
|
+ );
|
|
|
+ mu_child_level[c,2:] ~ gamma(
|
|
|
+ alpha_pop_level[distrib,2:],
|
|
|
+ (alpha_pop_level[distrib,2:]./(mu_pop_level[3:,corpus[c]]*exp(
|
|
|
+ child_siblings[c]==0?beta_sib_adu/10.0:0
|
|
|
+ )))
|
|
|
+ );
|
|
|
+ }
|
|
|
+ // otherwise
|
|
|
+ else {
|
|
|
+ // assuming no sibling
|
|
|
+ ll[1] = log(1-p_sib)+gamma_lpdf(
|
|
|
+ mu_child_level[c,1] | alpha_pop_level[2,1], alpha_pop_level[2,2]/(mu_pop_level[2,corpus[c]]*exp(beta_sib_och))
|
|
|
+ );
|
|
|
+ ll[1] += gamma_lpdf(
|
|
|
+ mu_child_level[c,2] | alpha_pop_level[2,2], alpha_pop_level[2,3]/(mu_pop_level[3,corpus[c]]*exp(beta_sib_adu/10.0))
|
|
|
+ );
|
|
|
+ ll[1] += gamma_lpdf(
|
|
|
+ mu_child_level[c,3] | alpha_pop_level[2,3], alpha_pop_level[2,4]/(mu_pop_level[4,corpus[c]]*exp(beta_sib_adu/10.0))
|
|
|
+ );
|
|
|
+
|
|
|
+ // assuming sibling
|
|
|
+ ll[2] = log(p_sib)+gamma_lpdf(
|
|
|
+ mu_child_level[c,1] | alpha_pop_level[1,1], alpha_pop_level[1,2]/(mu_pop_level[2,corpus[c]])
|
|
|
+ );
|
|
|
+ ll[2] += gamma_lpdf(
|
|
|
+ mu_child_level[c,2] | alpha_pop_level[1,2], alpha_pop_level[1,3]/(mu_pop_level[3,corpus[c]])
|
|
|
+ );
|
|
|
+ ll[2] += gamma_lpdf(
|
|
|
+ mu_child_level[c,3] | alpha_pop_level[1,3], alpha_pop_level[1,4]/(mu_pop_level[4,corpus[c]])
|
|
|
+ );
|
|
|
+ target += log_sum_exp(ll);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+child_dev_age ~ normal(0, 1);
|