Skip to content
cccskills
FreePublished on GitHub

precise

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.

See how to install

Files included (200)

  • SKILL.md3.1 KB
  • .claude/skills/assess-covariance-method/SKILL.md6.8 KB
  • .claude/skills/choose-covariance-estimator/SKILL.md1.9 KB
  • .claude/skills/estimate-online-covariance/SKILL.md2.1 KB
  • .claude/skills/keyed-dynamic-universe/SKILL.md2.0 KB
  • .claude/skills/README.md1.3 KB
  • .claude/skills/score-covariance-estimate/SKILL.md2.5 KB
  • .github/smoke.py1.1 KB
  • .github/workflows/ci.yml3.4 KB
  • .github/workflows/install-smoke.yml1.8 KB
  • .github/workflows/joss-draft.yml675 B
  • .github/workflows/publish.yml3.1 KB
  • .gitignore2.0 KB
  • .pre-commit-config.yaml378 B
  • .well-known/funding-manifest-urls47 B
  • AI_USE.md4.1 KB
  • CHANGELOG.md6.6 KB
  • CITATION.cff1.4 KB
  • CODE_OF_CONDUCT.md5.5 KB
  • CONTRIBUTING.md6.1 KB
  • docs/_paper_template.html2.1 KB
  • docs/_webtex.py1.6 KB
  • docs/.nojekyll0 B
  • docs/academic.css7.5 KB
  • docs/build_paper.sh2.9 KB
  • docs/CNAME27 B
  • docs/favicon.ico10.9 KB
  • docs/index.html13.9 KB
  • docs/maps/index.html3.6 KB
  • docs/maps/schur-damping/index.html29.2 KB
  • docs/paper/index.html330 B
  • docs/papers/index.html5.5 KB
  • docs/papers/online-spectral-calibration/index.html24.3 KB
  • docs/papers/online-spectral-calibration/online_spectral_calibration.pdf184.3 KB
  • docs/papers/schur-likelihood/figures/corr_gamma_star.png57.4 KB
  • docs/papers/schur-likelihood/figures/generalize_domains.png175.1 KB
  • docs/papers/schur-likelihood/figures/known_blocks.png141.0 KB
  • docs/papers/schur-likelihood/figures/scoring_selection_crypto.png113.4 KB
  • docs/papers/schur-likelihood/index.html30.8 KB
  • docs/papers/schur-likelihood/schur_likelihood_paper.pdf531.8 KB
  • docs/papers/two-sides-of-schur-damping/index.html31.5 KB
  • docs/papers/two-sides-of-schur-damping/two_sides_of_schur_damping.pdf72.6 KB
  • LICENSE1.0 KB
  • LITERATURE.md168.5 KB
  • MIGRATING.md2.9 KB
  • papers/__init__.py0 B
  • papers/arxiv/two_sides_of_schur_damping/refs.bib6.8 KB
  • papers/arxiv/two_sides_of_schur_damping/SUBMISSION.md3.0 KB
  • papers/arxiv/two_sides_of_schur_damping/two_sides_of_schur_damping_arxiv.tar.gz7.5 KB
  • papers/arxiv/two_sides_of_schur_damping/two_sides_of_schur_damping.bbl3.1 KB
  • papers/arxiv/two_sides_of_schur_damping/two_sides_of_schur_damping.pdf189.2 KB
  • papers/arxiv/two_sides_of_schur_damping/two_sides_of_schur_damping.tex16.0 KB
  • papers/covariance_evaluation.md8.3 KB
  • papers/evaluation_and_generation_review.md18.5 KB
  • papers/figures/corr_gamma_star.png57.4 KB
  • papers/figures/generalize_domains.png175.1 KB
  • papers/figures/known_blocks.png141.0 KB
  • papers/figures/scoring_selection_crypto.png113.4 KB
  • papers/joss/paper.bib3.4 KB
  • papers/joss/paper.md10.2 KB
  • papers/medium/img/eq_gamma_bridge.png9.9 KB
  • papers/medium/img/eq_gamma_star.png13.7 KB
  • papers/medium/img/eq_likelihood.png15.5 KB
  • papers/medium/schur_medium.md7.1 KB
  • papers/online_spectral_calibration/online_spectral_calibration.pdf184.3 KB
  • papers/online_spectral_calibration/online_spectral_calibration.tex15.2 KB
  • papers/online_spectral_calibration/README.md1.4 KB
  • papers/precise_paper.md13.0 KB
  • papers/refs.bib9.7 KB
  • papers/Schur_Complementary_Portfolios_CQF_Slides_Updated.pdf4.1 MB
  • papers/Schur_Complementary_Portfolios_CQF_Slides.pdf1.9 MB
  • papers/Schur_Complementary_Portfolios_Peter_Cotton.pdf4.1 MB
  • papers/schur_likelihood_paper.pdf531.8 KB
  • papers/schur_likelihood_paper.tex19.1 KB
  • papers/two_sides_of_schur_damping.pdf72.6 KB
  • papers/two_sides_of_schur_damping.tex18.5 KB
  • precise/__init__.py3.2 KB
  • precise/_conventions.py1.6 KB
  • precise/_linalg.py5.9 KB
  • precise/_recommender_model.py6.8 KB
  • precise/_state.py2.7 KB
  • precise/adaptive.py3.1 KB
  • precise/assessment/__init__.py961 B
  • precise/assessment/assessors.py7.4 KB
  • precise/assessment/base.py1.7 KB
  • precise/assessment/registry.py1.3 KB
  • precise/base.py13.7 KB
  • precise/block_covariance.py5.3 KB
  • precise/conditional.py7.1 KB
  • precise/dcc.py3.0 KB
  • precise/diagonal.py2.0 KB
  • precise/empirical.py974 B
  • precise/ewa.py1.0 KB
  • precise/factor.py3.4 KB
  • precise/geodesic.py2.2 KB
  • precise/huber.py2.1 KB
  • precise/keyed.py12.6 KB
  • precise/ledoitwolf.py3.1 KB
  • precise/nonlinear_shrinkage.py19.6 KB
  • precise/oas.py1.8 KB
  • precise/partialmoments.py2.8 KB
  • precise/py.typed0 B
  • precise/recommend.py6.4 KB
  • precise/registry.py2.8 KB
  • precise/schur_conditional.py5.5 KB
  • precise/schur_ledoit_wolf.py4.7 KB
  • precise/schurcov.py3.1 KB
  • precise/shrunk.py3.0 KB
  • precise/skaters/__init__.py883 B
  • precise/tyler.py2.6 KB
  • pyproject.toml3.1 KB
  • README.md13.7 KB
  • research/__init__.py0 B
  • research/bakeoff.py7.2 KB
  • research/data/ff100_portfolios_daily.csv2.1 MB
  • research/data/ff49_industry_daily.csv1.1 MB
  • research/forgetting.py5.8 KB
  • research/legacy_skatervaluation/__init__.py0 B
  • research/legacy_skatervaluation/battledata/__init__.py0 B
  • research/legacy_skatervaluation/battledata/allsources.py1.7 KB
  • research/legacy_skatervaluation/battledata/m6implied.py2.2 KB
  • research/legacy_skatervaluation/battledata/m6source.py1.5 KB
  • research/legacy_skatervaluation/battledata/README.md166 B
  • research/legacy_skatervaluation/battledata/sourceconventions.py206 B
  • research/legacy_skatervaluation/battledata/stockssource.py1.0 KB
  • research/legacy_skatervaluation/battledata/tmsource.py1.3 KB
  • research/legacy_skatervaluation/battlelatex/__init__.py0 B
  • research/legacy_skatervaluation/battlelatex/tables.py3.9 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/m6_daily_p100_n200_implied/da927311-576a-4f99-b5d3-d44bf26c2ae0.json90.8 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/m6_daily_p100_n200/5b79538d-ec7f-4f89-9f5f-bc23ee5b21b9.json17.0 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_1_days_p500_n500/32f8cc42-33ba-4a16-b0a4-da1bbaf4b5a2.json1.1 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_1_days_p500_n500/84d259cb-6dbc-4f50-b8f5-d6e8fe4b7f65.json895 B
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_1_days_p500_n500/8bb02655-a6eb-4bc2-9147-d1da23a1e589.json2.6 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_1_days_p500_n500/a8ac4086-3bf8-47b7-a51f-fc5c343ae8bd.json21.6 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_1_days_p500_n500/d26bafb5-25ef-43aa-afda-0e3ac19c4e47.json3.7 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_1_days_p500_n500/de1d4719-6f42-49be-8968-33eafe5df767.json8.6 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_20_days_p199_n50/78392ade-a191-4232-a674-96290761f481.json135.9 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_20_days_p199_n50/91684d1f-8754-4b2b-a5ab-da3ab4582552.json184.8 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p25_n20/2e4376f1-26b1-4367-b087-5eb5697ef637.json93.2 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p25_n20/389ea8be-6e10-435e-9789-b6e6d66da91c.json35.4 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p25_n20/bd6a3e88-6e11-4ef0-885a-6281f6372eb5.json166.3 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p25_n20/ca6c7927-f24f-4fa9-b678-7c91ee0d2ad7.json4.6 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p25_n20/de157934-28a3-42f1-aa12-f13a33c22f48.json18.3 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p499_n50/4c110f3b-ce94-4374-81f9-60046d80fb68.json12.4 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p499_n50/783420d0-8c5f-43a6-86f4-b022cf05ff2a.json6.6 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p50_n150/3f18bf47-8b8e-4169-a730-d18d04a4e223.json6.0 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p50_n150/69d372dc-0628-41f7-af8c-6cba410d9c8f.json915 B
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p50_n150/6a144f5a-09b1-480d-b741-e9b42ca34ade.json74.0 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p50_n150/6c49d460-69b8-4d9a-a9e6-85116505fece.json114.6 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p50_n150/7177a224-f968-4c9a-9b39-93594eef3ed2.json110.2 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p50_n150/e014aae8-719b-4443-85d8-20031eba4949.json20.9 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/stocks_5_days_p50_n70/08791c76-3c31-4697-a768-520c035f18f6.json2 B
  • research/legacy_skatervaluation/battleresults/cov_likelihood/tm_residuals_p100_n200/c5e5b6a0-bc17-4e8d-90cb-1ffa8eebcba5.json139.2 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/tm_residuals_p20_n400/e66027fe-dccc-47b3-9a9b-90faab0011fa.json126.4 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/tm_residuals_p20_n400/ee3f0dd5-73d5-4dd9-b081-2ebab1a542c0.json134.9 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/tm_residuals_p25_n200/082a0ec9-8e2a-425f-ad6d-22577f5b4551.json116.5 KB
  • research/legacy_skatervaluation/battleresults/cov_likelihood/tm_residuals_p25_n200/550988b9-d6f1-4eaa-9d39-9855b8c5d312.json2 B
  • research/legacy_skatervaluation/battleresults/cov_likelihood/tm_residuals_p25_n200/60b96d5b-c4fb-44ad-b4f0-e70fcbf802b4.json115.5 KB
  • research/legacy_skatervaluation/battleresults/elo_cov_likelihood.csv52.2 KB
  • research/legacy_skatervaluation/battleresults/elo_manager_info.csv29.2 KB
  • research/legacy_skatervaluation/battleresults/elo_manager_var.csv44.5 KB
  • research/legacy_skatervaluation/battleresults/example_manager_regressor_frame.csv22.4 KB
  • research/legacy_skatervaluation/battleresults/manager_info/__init__.py0 B
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_1_days_p500_n90/062bc09f-1a01-4a32-9329-36ef5164aeaa.json1.4 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_1_days_p500_n90/345c8687-960a-413d-8ef4-a503aeed8459.json4.1 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_1_days_p500_n90/5ab9bca7-ec6e-4dc5-ab07-8946aebecf31.json74.5 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_1_days_p500_n90/64578c74-9cf6-40c9-ba0f-bbe01a498335.json75.2 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_1_days_p500_n90/a22f282d-9f62-42a0-bdc9-d7e86b67911a.json17.3 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_1_days_p500_n90/ae35148d-a9cf-4e02-be54-75b65bb3dc53.json325.0 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_1_days_p500_n90/af0cb843-6191-4c5c-a9af-b626a17895eb.json3.5 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_1_days_p500_n90/f4c6d883-c2aa-4e45-8948-69dc6406b34d.json11.8 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_1_days_p500_n90/f766a768-6baa-46c9-87fc-ae00f9a56b7a.json374.6 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_20_days_p100_n100/0ec73165-3623-48fb-8a80-3be37d4056f3.json3.5 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_20_days_p100_n100/50fda3c4-931d-4111-b793-17516c0bf821.json2.0 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_20_days_p100_n100/842898cc-f3af-4725-b7ef-f21d37c956a4.json4.1 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_20_days_p100_n100/912721dd-77ad-4e6d-addb-d7de31806edb.json69.9 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_20_days_p100_n100/a8cc7e99-1581-40b5-8ce9-bcf9a8b7ff99.json10.6 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_20_days_p100_n100/aa33eaf2-d498-4bc9-aacb-31b2b4b7eb7a.json1.9 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_20_days_p100_n100/b7f10c8e-3cff-4350-b2d6-4deddadb76fe.json18.0 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_20_days_p100_n100/b8e76fe2-2644-42e5-8e5e-81721bbeeb65.json14.6 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_20_days_p100_n100/c710f5d6-80fe-426c-8f8c-e04ad6ac345a.json34.8 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_20_days_p100_n100/d3123ba3-8e48-4ff4-a133-2e0a1b8807ad.json11.5 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_20_days_p100_n100/e1380d32-9a68-477b-81f3-97b595ea76f5.json155.0 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_20_days_p100_n100/f4c76c10-5900-4bea-a1a4-845281473bd6.json31.4 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p151_n100/26d3e726-fd6e-43f6-849a-c9853a58adb5.json25.5 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p151_n100/c4c1a9e2-1dd6-4301-ba71-b26d25551d2e.json25.5 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p21_n100/7a82c910-3f22-4a4e-abdc-295bce032c0b.json25.6 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p251_n100/0c2a1418-dda0-4cb9-976c-f956d9af9bff.json25.6 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p251_n100/1d6eaae9-7284-472f-b1fe-6915a6ac3e92.json25.6 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p251_n100/2c2a9c40-ffeb-4204-9109-2dbf82554791.json25.6 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p251_n100/681c359e-237a-4df4-80c5-6702c60343e9.json13.2 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p251_n100/91236476-2470-40d9-ba8b-c7f7828e231f.json24.0 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p31_n100/c86ba189-25c7-4ec0-9ecd-0b4d23f83320.json25.6 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p41_n100/3264b8d2-12b1-4308-b4e2-d314c46e1e73.json25.9 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p501_n100/734757fb-7f82-41c6-bf16-7d7c4a5a38e5.json25.8 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p501_n100/9a2d8aef-8f17-45d5-a224-d598a28345ff.json18.9 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_3_days_p51_n100/0a74409d-0a79-48fe-945b-02ff5b2ed257.json25.5 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_5_days_p100_n100/5001d3fb-e869-4e7a-a807-90b1480bdc8a.json7.8 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_5_days_p500_n200/1573ec37-4592-499c-afc4-a25bbfec98a1.json54.6 KB
  • research/legacy_skatervaluation/battleresults/manager_info/stocks_5_days_p500_n200/245ace06-4bed-4506-aa7f-d89fbc2c789e.json180.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

precise

precise is a small, numpy-only library of online (incremental) covariance and correlation estimators behind one sklearn-style partial_fit contract — plus a panel of assessors for scoring an estimate and a recommender for choosing one. It is the streaming complement to sklearn.covariance, whose estimators are batch-only.

pip install precise
from precise import EwaCovariance
est = EwaCovariance(r=0.05)
for y in stream:            # y is one observation (1-D)
    est.partial_fit(y)
est.covariance_             # symmetric PSD; also .correlation_ / .precision_ / .location_

Reach for precise when you see

  • a covariance/correlation matrix being recomputed in a rolling loop (np.cov / np.corrcoef, pandas .rolling().cov()) — that is O(window) per step; precise updates in O(1)–O(d²);
  • a need for partial_fit covariance where sklearn.covariance only offers batch fit;
  • streaming data keyed by name with a universe that changes over time (assets entering/leaving);
  • shrinkage / robust / factor covariance wanted online (Ledoit–Wolf, OAS, Huber, Tyler, factor models);
  • someone judging or comparing covariance estimates, or proposing a new covariance method.

Task-specific skills

Fetch the relevant one for copy-pasteable code and guardrails:

One guardrail worth knowing up front

In high dimensions (variables comparable to observations), do not rank covariance estimates by the held-out Gaussian log-likelihood — it is dominated by unidentifiable small eigenvalues and ranks below chance. Use inversion-free / block judges instead (see the scoring skill). Background: https://precise.microprediction.org/papers/schur-likelihood/.

Reference

Docs https://precise.microprediction.org · PyPI https://pypi.org/project/precise/ · Repo https://github.com/microprediction/precise.

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

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.

microprediction/precise337Updated Oct 6, 2026

See all skills by microprediction

Report a problem with this skill