Pick which precise covariance estimator to use for a given dataset. Use when you have data X and are unsure which estimator fits its dimension, conditioning, or tail behavior. Wraps precise.suggest() and covariance_features().
中文简介正在准备中。当前显示原文说明。
Rigorously and honestly assess a NEW or proposed covariance / correlation / precision estimator, or a new covariance scoring rule, using precise. Use when someone proposes, asks to evaluate, or wants to compare a covariance methodology. Covers implementing it to the contract, conformance, benchmarking against the registry, out-of-sample validation, and statistically defensible inference.
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
A protocol for turning "here's a covariance idea" into a defensible verdict. Work the steps in order;
stop early only if a step fails. Install: pip install precise[research] (the research/ scripts use
scikit-learn and randomcov).
covariance_.Subclass BaseOnlineCovariance. The cheapest correct route: copy the simplest existing estimator and
modify it — read precise/empirical.py (and precise/base.py for the exact hook signatures, typically
_init_state / _update_state / _state_to_cov / _state_to_mean). The base class owns partial_fit,
fit, and the derived attributes; the subclass only supplies the state update and the map to a covariance.
Register it in precise/registry.py so all_estimators() includes it.
A scoring rule instead? Implement an Assessor (see precise/assessment/), set needs_data /
needs_truth, and follow the higher = better convention.
Run the conformance suite (tests/test_estimators.py parametrizes over all_estimators()), or check the
invariants directly:
covariance_ is symmetric and PSD (eigenvalues ≥ 0);correlation_ has unit diagonal; precision_ @ covariance_ ≈ I when well-conditioned;partial_fit equals fit(X) for non-windowed estimators;set_state(get_state()) round-trips;If it fails any of these, fix the implementation before any benchmarking — numbers from a non-conformant estimator are meaningless.
This is where most covariance evaluations go wrong. In high dimensions (p comparable to n), do not
rank estimators by the held-out Gaussian likelihood — it is dominated by unidentifiable small eigenvalues
and ranks estimators below chance. Use the assessor panel and choose by regime (see the
score-covariance-estimate skill): BlockPseudoLikelihood / SchurLikelihood / VariogramScore /
GMVVariance in high-d; LogLikelihood only when low-d and well-conditioned; a QLIKE/Bregman-consistent
loss (not RMSE) when the target is a noisy variance proxy. To choose defensibly, measure the statistical
power of candidate judges — the probability they reproduce a known quality ordering — with
research/metric_power.py.
research/bakeoff.py runs every estimator over discriminating scenarios and scores them with
all_assessors(). Add the new estimator and compare. Report relative error vs a naive / shrinkage
baseline within each scenario, then averaged (RMSE is scale-sensitive and can be won by doing well only
in high-volatility regimes). Always include a 0/historical-mean baseline for returns-like targets.
A win on one generator need not transfer. Generate ground truth across several ensembles (LKJ, Wishart,
factor/spiked, Toeplitz/AR, equicorrelation) with randomcov plus plain numpy, sample from each, and
report per-ensemble, not just pooled. A single ensemble can manufacture or hide any effect.
research/oos.py. On real equity data: research/oos_equity.py
(bundled Ken French returns, no key needed).leave_one_family_out_trained in research/oos.py), not
leave-one-sample-out — selectors generalize across samples far more easily than across novel structure,
and the difference is exactly where they fail.Pairwise significance is the easiest thing to get wrong. The loss differentials are almost always dependent: overlapping forecast horizons, rolling/trailing targets, repeated expanding-window splits, cross-asset correlation, and many pairwise comparisons. Consequently:
research/ scripts are the model:
each headline number has a runnable script and a guarding test).precise/base.py, precise/empirical.py; registry: precise/registry.py.precise/assessment/; panel via all_assessors().research/bakeoff.py, research/metric_power.py, research/oos.py,
research/oos_equity.py; Schur-likelihood theory: research/schur_*.py.还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Pick which precise covariance estimator to use for a given dataset. Use when you have data X and are unsure which estimator fits its dimension, conditioning, or tail behavior. Wraps precise.suggest() and covariance_features().
中文简介正在准备中。当前显示原文说明。
Estimate a covariance / correlation / precision matrix incrementally with precise. Use when data arrives as a stream and you want the matrix updated per observation, or when you want an online (partial_fit) drop-in for sklearn.covariance, which is batch-only.
中文简介正在准备中。当前显示原文说明。
Maintain an online covariance over named series whose set changes over time (e.g. assets entering and leaving). Use when observations arrive as dicts keyed by name rather than fixed-length vectors. Wraps precise's keyed / FixedUniverse / DynamicUniverse adapters.
中文简介正在准备中。当前显示原文说明。
Online (incremental) covariance, correlation, and precision estimation in Python — the streaming complement to sklearn.covariance. Use when code needs a covariance/correlation matrix updated per observation, recomputes np.cov/np.corrcoef in a rolling loop, must judge or compare covariance estimates, or proposes a new covariance methodology. Points to task-specific skills.
中文简介正在准备中。当前显示原文说明。
Score and compare covariance estimates with precise's assessor panel. Use when you need to judge an estimate out-of-sample or rank competing estimators — and especially in high dimensions, where the plain held-out likelihood is misleading.
中文简介正在准备中。当前显示原文说明。