-
-
Save tommylees112/5ac7a4973d57147c2b8f5fda477b929c to your computer and use it in GitHub Desktop.
conda create -n stan --yes | |
conda activate stan | |
conda install pip --yes | |
# Install httpstan from source (this will take a while). | |
pip install -v git+https://github.com/tillahoffmann/httpstan@pip | |
# Install pystan. | |
pip install 'pystan>=3' | |
# Try a dummy program (this should report build and sampling progress). | |
python -c 'import stan; stan.build("parameters { real x; } model { x ~ normal(0, 1); }").sample()' | |
conda install -c conda-forge ipython arviz scikit-learn seaborn jupyterlab nest-asyncio --yes | |
# test https://pystan.readthedocs.io/en/latest/ |
- MCMC Demo Interactive tool
- Really Simple Hydro Level Page from Anu Dudha
- MicroPredictions Winning Package - "inferring relative ability from multi-entrant contest winning probabilities"
# issue when running code inside a jupyter notebook
https://stackoverflow.com/questions/55409641/asyncio-run-cannot-be-called-from-a-running-event-loop
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
/var/folders/q3/0lmt64ld10s14_0n0vxpt_m00000gp/T/ipykernel_28231/803591416.py in <module>
----> 1 posterior = stan.build(model_code, data=data)
~/miniconda3/envs/stan/lib/python3.9/site-packages/stan/model.py in build(program_code, data, random_seed)
515
516 try:
--> 517 return asyncio.run(go())
518 except KeyboardInterrupt:
519 return # type: ignore
~/miniconda3/envs/stan/lib/python3.9/asyncio/runners.py in run(main, debug)
31 """
32 if events._get_running_loop() is not None:
---> 33 raise RuntimeError(
34 "asyncio.run() cannot be called from a running event loop")
35
RuntimeError: asyncio.run() cannot be called from a running event loop
From the Pystan FAQs
# How can I use PyStan with Jupyter Notebook or JupyterLab?
Use nest-asyncio. This package is needed because Jupter Notebook blocks the use of certain asyncio functions. (To verify this, try running asyncio.run(asyncio.sleep(1)) in a notebook.) If you would like to learn more about the problem, see the following issue: ipython/ipykernel#548. This problem only affects Jupyter Notebook and derivatives. It does not affect IPython.
Add the following lines to the opening of jupyter notebook github page for nest_asyncio:
import nest_asyncio
nest_asyncio.apply()
Initialisation Errors are caused by data not meeting the constraints: here
---------------------------------------------------------------------------
RemoteTraceback Traceback (most recent call last)
RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/thomas_lees112/miniconda3/envs/stan/lib/python3.7/multiprocessing/pool.py", line 121, in worker
result = (True, func(*args, **kwds))
File "/home/thomas_lees112/miniconda3/envs/stan/lib/python3.7/multiprocessing/pool.py", line 44, in mapstar
return list(map(*args))
File "stanfit4anon_model_4f4910bcf40488584c481cb91fedfe57_36726699539089669.pyx", line 371, in stanfit4anon_model_4f4910bcf40488584c481cb91fedfe57_36726699539089669._call_sampler_star
File "stanfit4anon_model_4f4910bcf40488584c481cb91fedfe57_36726699539089669.pyx", line 404, in stanfit4anon_model_4f4910bcf40488584c481cb91fedfe57_36726699539089669._call_sampler
RuntimeError: Initialization failed.
"""
But there is a problem with empty int lists: Github Issue here
This was discussed Discourse here
Pystan Test:
To check plotting: