Browse Source

[DATALAD] Recorded changes

Lucas Gautheron 2 months ago
parent
commit
e9b2686297

+ 1 - 1
code/models/blocks/behavior_model_parameters.stan

@@ -1,5 +1,5 @@
 vector<lower=0>[n_classes] alpha_child_level; // variance across recordings for a given child
-array[2] matrix<lower=0>[n_classes-1,n_corpora] alpha_corpus_level; // variance among children
+array[2] vector<lower=0>[n_classes-1] alpha_corpus_level; // variance among children
 matrix<lower=0>[n_classes-1,n_corpora] mu_corpus_level; // child-level average
 vector<lower=1>[n_classes-1] alpha_pop_level; // variance among corpora
 vector<lower=0>[n_classes] mu_pop_level; // population level averages

+ 4 - 4
code/models/blocks/behavior_model_priors_uncentered.stan

@@ -1,11 +1,11 @@
 alpha_child_level ~ gamma(4,1);
 mu_pop_level ~ exponential(4); // 250 vocs/hour
 alpha_pop_level ~ gamma(8, 4); // sd = 0.35 x \mu
-alpha_pop ~ gamma(10, 10);
+//alpha_pop ~ gamma(10, 10);
 for (i in 1:n_classes-1) {
-    alpha_corpus_level[1,i,:] ~ gamma(8, 8/alpha_pop[i]); // controls dispersion among children
-    alpha_corpus_level[2,i,:] ~ gamma(8, 8/alpha_pop[i]); // controls dispersion among children
-    mu_corpus_level[i,:] ~ gamma(alpha_pop_level[i], alpha_pop_level[i]);
+    alpha_corpus_level[1,i] ~ gamma(4, 4); // controls dispersion among children
+    alpha_corpus_level[2,i] ~ gamma(4, 4); // controls dispersion among children
+    mu_corpus_level[i,:] ~ gamma(alpha_pop_level[i], alpha_pop_level[i]); // how much a corpus deviates from the population mean
 }
 
 has_siblings ~ binomial(has_siblings+no_siblings, p_sib);

+ 3 - 3
code/models/blocks/behavior_observations_model_uncentered.stan

@@ -15,17 +15,17 @@ 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,:] ~ gamma(alpha_corpus_level[distrib,:,corpus[c]], alpha_corpus_level[distrib,:,corpus[c]]);
+        mu_child_level[c,:] ~ gamma(alpha_corpus_level[distrib,:], alpha_corpus_level[distrib,:]);
     }
     // otherwise
     else {
         // assuming no sibling
         ll[1] = log(p_sib)+gamma_lpdf(
-            mu_child_level[c,:] | alpha_corpus_level[2,:,corpus[c]], alpha_corpus_level[2,:,corpus[c]]
+            mu_child_level[c,:] | alpha_corpus_level[2,:], alpha_corpus_level[2,:]
         );
         // assuming sibling
         ll[2] = log(1-p_sib)+gamma_lpdf(
-            mu_child_level[c,:] | alpha_corpus_level[1,:,corpus[c]], alpha_corpus_level[1,:,corpus[c]]
+            mu_child_level[c,:] | alpha_corpus_level[1,:], alpha_corpus_level[1,:]
         );
         target += log_sum_exp(ll);
     }

+ 2 - 2
code/models/blocks/human_annotations_uncentered.stan

@@ -22,8 +22,8 @@ for (c in 1:n_speech_rate_children) {
     int distrib = child_siblings[c]==0?2:1;
 
     speech_rate_child_level[c,:] ~ gamma(
-        alpha_corpus_level[distrib,:,speech_rate_child_corpus[c]],
-        alpha_corpus_level[distrib,:,speech_rate_child_corpus[c]]
+        alpha_corpus_level[distrib,:],
+        alpha_corpus_level[distrib,:]
     );
 }
 

+ 1 - 1
code/models/dev_siblings.stan

@@ -87,7 +87,7 @@ transformed data {
 parameters {
     matrix<lower=0>[n_children,n_classes-1] mu_child_level;
     vector [n_children] child_dev_age;
-    matrix<lower=0.1> [n_recs, n_classes] truth_vocs;
+    matrix<lower=0> [n_recs, n_classes] truth_vocs;
     array [n_recs] matrix<lower=0>[n_classes,n_classes] actual_confusion_baseline;
 
     // confusion parameters