Comments (3)
Any suggestion on how we get values with which to test? Are there tests in the R or Python packages that compute these quantities?
from stan.
I used Arviz to generate test values for split-rank, no-split-rank, split-no-rank, no-split-no-rank.
Here is the code I used:
iimport arviz
import numpy as np
from arviz.stats.diagnostics import _rhat, _backtransform_ranks, _z_scale, _split_chains, _rhat_rank
from arviz.stats.stats_utils import wrap_xarray_ufunc
posterior_glob = "blocker.*.csv"
cmdstan_data = arviz.from_cmdstan(posterior=posterior_glob)
def _rhat_rank_no_split(ary):
ary = np.asarray(ary)
rhat_bulk = _rhat(_z_scale(ary))
split_ary_folded = abs(ary - np.median(ary))
rhat_tail = _rhat(_z_scale(split_ary_folded))
rhat_rank = max(rhat_bulk, rhat_tail)
return rhat_rank
rhat_no_split_rank = wrap_xarray_ufunc(
_rhat_rank_no_split,
cmdstan_data.posterior,
ufunc_kwargs={"ravel": False},
func_kwargs={},
dask_kwargs=None
)
rhat_split_rank = arviz.rhat(cmdstan_data.posterior)
rhat_split_no_rank = arviz.rhat(cmdstan_data.posterior, method="split")
rhat_no_split_no_rank = arviz.rhat(cmdstan_data.posterior, method="identity")
def print_rhat(rhat_results):
rhat_values = {var_name: rhat_results[var_name].values for var_name in rhat_results.data_vars}
all_rhat_values = np.concatenate([values.ravel() for values in rhat_values.values()])
print(",".join([str(el) for el in np.round(all_rhat_values, decimals=5)]))
print_rhat(rhat_split_rank)
print_rhat(rhat_split_no_rank)
print_rhat(rhat_no_split_no_rank)
print_rhat(rhat_no_split_rank)
from stan.
Great. I'm curious to see whether tests pass. Getting the details on this kind of thing exactly matching can be painful.
from stan.
Related Issues (20)
- Pathfinder warning message is misleading HOT 4
- Infinite loop in `WolfLSZoom` when using stan for optimization HOT 8
- Print statements inside a model are buffered into a stringstream and only printed when log_prob returns
- Typo on wiki: prior choice recommendation for correlation HOT 2
- Pathfinder run not reproducible from seed
- Underflow in psis_weights leads to uniform sampling from multi-pathfinder draws
- Add resampling options for multi-Pathfinder HOT 5
- min:max indexing does not support SoA but does not prevent this at compile time? HOT 5
- `install-tbb.bat` fails on windows
- Write metric as JSON - add field "metric_type" HOT 1
- How to use stan::math::hypergeometric_2F1 in stan? HOT 1
- Move away from the `boost::ecuyer1988` pRNG HOT 3
- Remove places where exceptions are unconditionally swallowed.
- Add an argument to write Hessian from Laplace algorithm to a file
- CompileError: command '/usr/bin/gcc' failed with exit code 1 HOT 6
- Pathfinder: unexpected behavior when num_draws < num_elbo_draws
- Implementation of improved Rhat for assessing convergence of MCMC
- Exception: In serializer: Storage capacity [763] exceeded while writing value of size [16] from position [759] HOT 6
- Allow some chains in multi chain samplers to fail during initialization HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stan.