Переглянути джерело

Simplifying setuping Bayesian model

Martin Horvat 1 рік тому
батько
коміт
209aa5fe28

Різницю між файлами не показано, бо вона завелика
+ 6 - 6
python/bayesian/bayesian.ipynb


+ 19 - 0
python/bayesian/bayesian.py

@@ -1,6 +1,25 @@
 import numpy as np
 import scipy
 
+
+def setup_scipy_distr(distr_str, n_pars, parse_pars):
+    
+
+    # log of pdf for all choice
+    def log_pdfs(x, pars, choice = 2):
+        logpdf = eval(distr_str).logpdf
+        if choice in [0,1]: return logpdf(x, **parse_pars(pars))
+        return (logpdf(x, **parse_pars(pars)), logpdf(x, **parse_pars(pars[n_pars:])))
+
+    # sample w.r.t. distribution
+    def distr_sample(rng, pars, n, choice = 2):    
+        rvs = eval(distr_str).rvs
+        if choice in [0,1]: return rvs( **parse_pars(pars), size = n, random_state = rng)
+        return np.concatenate((rvs(**parse_pars(pars), size = n[0], random_state = rng), 
+                            rvs(**parse_pars(pars[n_pars:]), size = n[1], random_state = rng)))
+    
+    return log_pdfs, distr_sample
+
 """
     Bayesian model describing conditional probability 
 

BIN
python/bayesian/results/bayesian_fit.pdf


Деякі файли не було показано, через те що забагато файлів було змінено