metacausal.aggregation.TrimmedMean

class metacausal.aggregation.TrimmedMean(trim_count=1)[source]

Bases: PointwiseStrategy

Pointwise trimmed-mean aggregation.

Drops the trim_count highest and lowest component estimates at each point, then averages the remainder. A tunable middle ground between Mean (no trimming) and Median (maximal trimming).

Parameters:

trim_count (int) – Number of models to drop from each tail. Default 1. Must satisfy 2 * trim_count < K where K is the number of component models.

Examples

Same four component predictions as Median’s example; trim_count=1 drops the 90.0 outlier (and the lowest value, 10.0) before averaging, recovering the same robust result as the median:

>>> import numpy as np
>>> from metacausal.aggregation import TrimmedMean
>>> values = np.array([[10.0, 5.0], [11.0, 5.0], [12.0, 5.0], [90.0, 5.0]])
>>> TrimmedMean(trim_count=1).aggregate(values)
array([11.5,  5. ])

Methods

__init__

aggregate

Reduce a (K, n) component-CATE matrix to a (n,) ensemble CATE.

Attributes

ensemble_weights

Ensemble weights, if applicable.

strategy_family

trim_count

Details

aggregate(values)[source]

Reduce a (K, n) component-CATE matrix to a (n,) ensemble CATE.

K is the number of component models; n is the number of evaluation points. Subclasses define the per-family rule (pointwise statistical reduction, weighted combination, learned linear combination, etc.).

PointwiseStrategy extends this contract to also accept (K,) 1-D input (returning a 0-d scalar) for the component-ATE aggregation path; see its class docstring. Other families do not meaningfully support 1-D input.

Parameters:

values (ndarray)

Return type:

ndarray

trim_count: int = 1