Skip to content
cccskills
FreePublished on GitHub

score-covariance-estimate

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.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md2.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Score / rank covariance estimates

from precise import all_assessors, assessor_from_name

for A in all_assessors():
    s = A().score(cov, X_test=X_test, true_cov=Sigma_true)   # higher = better
  • cov is the estimate to judge; X_test is held-out data (rows = observations); true_cov is the population covariance (only available in simulation).
  • Each assessor exposes needs_data and needs_truth; pass what it needs. Truth-free assessors work on real data, truth-requiring ones (e.g. FrobeniusToTruth) only in simulation.
  • All assessors follow higher = better, so you can rank or argmax directly.

The one rule that matters in high dimensions

Do not rank estimators by the held-out Gaussian log-likelihood when p is comparable to n. The likelihood is dominated by the smallest, unidentifiable eigenvalues of the estimate; empirically it ranks estimators below chance in that regime. Instead use inversion-free or block judges:

Regime / goalUse
low dimension, well-conditionedLogLikelihood (it is optimal here)
high dimension (p/n near 1 or larger)BlockPseudoLikelihood, SchurLikelihood, VariogramScore, FrobeniusToTruth (sim only)
economic / portfolio relevanceGMVVariance (out-of-sample minimum-variance variance)
forecasting a variance from a noisy proxya QLIKE / Bregman-consistent loss, not RMSE on the proxy — RMSE on a noisy variance proxy can rank inconsistently

SchurLikelihood(gamma=...) is a tunable bridge: gamma=1 is the full likelihood (fragile in high-d), gamma=0 the robust block-diagonal one, interior values better-conditioned than either.

Don't over-read the numbers

  • Rankings are ensemble-sensitive: a result on one data-generating process need not transfer. If the conclusion matters, sweep several generators and report per-regime (see the assess-covariance-method skill).
  • A lower point error (RMSE) is not a tradable or actionable signal by itself.
  • If you attach significance to a ranking, the loss differentials are usually dependent (overlapping windows, correlated assets); naive standard errors overstate significance — see the inference section of the assess-covariance-method skill.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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.

The English summary is being prepared. Showing the original description.

microprediction/precise337Updated Oct 6, 2026

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().

The English summary is being prepared. Showing the original description.

microprediction/precise337Updated Oct 6, 2026

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.

The English summary is being prepared. Showing the original description.

microprediction/precise337Updated Oct 6, 2026

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.

The English summary is being prepared. Showing the original description.

microprediction/precise337Updated Oct 6, 2026

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.

The English summary is being prepared. Showing the original description.

microprediction/precise337Updated Oct 6, 2026

See all skills by microprediction

Report a problem with this skill