CentralTendencyEngine
in package
FinalYes
CentralTendencyEngine - robust central tendency estimators.
Quantile references: Hyndman & Fan (1996). Huber M-estimator reference: Peter Huber (1964).
Table of Contents
Constants
- DEFAULT_HUBER_K = 1.345
- DEFAULT_HUBER_MAX_ITERATIONS = 50
- DEFAULT_HUBER_TOLERANCE = 0.001
- DEFAULT_QUANTILE_TYPE = 7
- DEFAULT_TRIM_PERCENTAGE = 0.1
Methods
- huberMean() : float
- Compute the Huber M-estimator for location.
- trimmedMean() : float
- Compute the trimmed mean by removing a percentage from each tail.
- winsorizedMean() : float
- Compute the winsorized mean using quantile cut points.
- mad() : float
- mean() : float
- normalizeData() : array<string|int, mixed>
- validateTrimPercentage() : void
Constants
DEFAULT_HUBER_K
public
mixed
DEFAULT_HUBER_K
= 1.345
DEFAULT_HUBER_MAX_ITERATIONS
public
mixed
DEFAULT_HUBER_MAX_ITERATIONS
= 50
DEFAULT_HUBER_TOLERANCE
public
mixed
DEFAULT_HUBER_TOLERANCE
= 0.001
DEFAULT_QUANTILE_TYPE
public
mixed
DEFAULT_QUANTILE_TYPE
= 7
DEFAULT_TRIM_PERCENTAGE
public
mixed
DEFAULT_TRIM_PERCENTAGE
= 0.1
Methods
huberMean()
Compute the Huber M-estimator for location.
public
static huberMean(array<string|int, mixed> $data[, float $k = self::DEFAULT_HUBER_K ][, int $maxIterations = self::DEFAULT_HUBER_MAX_ITERATIONS ][, float $tolerance = self::DEFAULT_HUBER_TOLERANCE ][, bool $alreadySorted = false ]) : float
Reference: Peter Huber (1964) M-estimator of location.
Parameters
- $data : array<string|int, mixed>
- $k : float = self::DEFAULT_HUBER_K
- $maxIterations : int = self::DEFAULT_HUBER_MAX_ITERATIONS
- $tolerance : float = self::DEFAULT_HUBER_TOLERANCE
- $alreadySorted : bool = false
Return values
floattrimmedMean()
Compute the trimmed mean by removing a percentage from each tail.
public
static trimmedMean(array<string|int, mixed> $data[, float $trimPercentage = self::DEFAULT_TRIM_PERCENTAGE ][, bool $alreadySorted = false ]) : float
Reference: Hyndman & Fan (1996) quantile definitions (used for tail logic).
Parameters
- $data : array<string|int, mixed>
- $trimPercentage : float = self::DEFAULT_TRIM_PERCENTAGE
- $alreadySorted : bool = false
Return values
floatwinsorizedMean()
Compute the winsorized mean using quantile cut points.
public
static winsorizedMean(array<string|int, mixed> $data[, float $trimPercentage = self::DEFAULT_TRIM_PERCENTAGE ][, int $type = self::DEFAULT_QUANTILE_TYPE ][, bool $alreadySorted = false ]) : float
Reference: Hyndman & Fan (1996) quantile definitions.
Parameters
- $data : array<string|int, mixed>
- $trimPercentage : float = self::DEFAULT_TRIM_PERCENTAGE
- $type : int = self::DEFAULT_QUANTILE_TYPE
- $alreadySorted : bool = false
Return values
floatmad()
private
static mad(array<string|int, mixed> $sorted, float $median) : float
Parameters
- $sorted : array<string|int, mixed>
- $median : float
Return values
floatmean()
private
static mean(array<string|int, mixed> $data) : float
Parameters
- $data : array<string|int, mixed>
Return values
floatnormalizeData()
private
static normalizeData(array<string|int, mixed> $data, bool $alreadySorted) : array<string|int, mixed>
Parameters
- $data : array<string|int, mixed>
- $alreadySorted : bool
Return values
array<string|int, mixed>validateTrimPercentage()
private
static validateTrimPercentage(float $trimPercentage) : void
Parameters
- $trimPercentage : float