Skip to content
cccskills
FreePublished on GitHub

estimate-online-covariance

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.

See how to install

Files included (1)

  • SKILL.md2.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Estimate online covariance with precise

precise provides sklearn-style estimators with a single partial_fit contract. Pure numpy.

pip install precise

The pattern

import numpy as np
from precise import EwaCovariance        # exponentially weighted; recency-biased

est = EwaCovariance(r=0.05)              # r in (0,1]; larger = faster forgetting
for y in stream:                         # y is a 1-D array (one observation)
    est.partial_fit(y)

est.covariance_     # (d, d) ndarray, symmetric and PSD by construction
est.correlation_    # unit-diagonal correlation
est.precision_      # inverse covariance (when well-conditioned)
est.location_       # running mean
est.n_samples_      # observations seen

fit(X) is the batch drop-in (X is 2-D, rows = observations); it resets then replays rows, so it matches sklearn.covariance's call shape.

Choosing the class

all_estimators() lists every estimator; estimator_from_name("LedoitWolfCovariance") looks one up. Sensible defaults by situation:

  • general / recency-weighted: EwaCovariance(r=...)
  • many variables relative to samples (p/n large) or ill-conditioned: LedoitWolfCovariance, OASCovariance, ShrunkCovariance, FactorCovariance
  • heavy tails / outliers: HuberCovariance, TylerCovariance
  • regime changes: AdaptiveEwaCovariance, DCCCovariance
  • you don't know: use the choose-covariance-estimator skill (suggest(X)).

Notes

  • All estimators are truly online — constant work per observation, no growing buffers.
  • State is a JSON-able dict: est.get_state() / est.set_state(s) for mid-stream checkpointing.
  • covariance_ is always symmetric PSD; don't hand-symmetrize or clip it yourself.
  • Named series with a changing universe? Use the keyed-dynamic-universe skill instead.

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

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

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