analysis

package
v0.0.0-...-59b0c1d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package analysis provides statistical analysis for benchmark results.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BootstrapResult

type BootstrapResult struct {
	MeanDiff   float64
	LowerBound float64
	UpperBound float64
	Confidence float64 // e.g., 0.95 for 95% CI.
}

BootstrapCI computes a bootstrap confidence interval for the mean difference.

func BootstrapConfidenceInterval

func BootstrapConfidenceInterval(sample1, sample2 []float64, iterations int, confidence float64) *BootstrapResult

BootstrapConfidenceInterval computes a confidence interval using bootstrap.

type DescriptiveStats

type DescriptiveStats struct {
	N      int
	Mean   float64
	Median float64
	StdDev float64
	Min    float64
	Max    float64
	P25    float64
	P75    float64
}

DescriptiveStats contains basic descriptive statistics.

func Describe

func Describe(sample []float64) *DescriptiveStats

Describe computes descriptive statistics for a sample.

type EffectSize

type EffectSize struct {
	CohensD        float64 // Cohen's d: (mean1 - mean2) / pooled_std.
	Interpretation string  // "negligible", "small", "medium", "large".
}

EffectSize contains effect size metrics.

func ComputeEffectSize

func ComputeEffectSize(sample1, sample2 []float64) *EffectSize

ComputeEffectSize computes Cohen's d effect size.

type MannWhitneyResult

type MannWhitneyResult struct {
	U           float64 // U statistic.
	Z           float64 // Z score (normal approximation).
	PValue      float64 // Two-tailed p-value.
	Significant bool    // True if p < 0.05.
}

MannWhitneyResult contains the result of a Mann-Whitney U test.

func MannWhitneyU

func MannWhitneyU(sample1, sample2 []float64) *MannWhitneyResult

MannWhitneyU performs the Mann-Whitney U test on two samples. This is a non-parametric test to determine if two samples come from different distributions.

type MultiStrategyComparison

type MultiStrategyComparison struct {
	Baseline    string
	Comparisons []*StrategyComparison
}

MultiStrategyComparison compares multiple strategies against a baseline.

func CompareAll

func CompareAll(
	results map[string]*simulation.AggregateResult,
	baseline string,
	bootstrapIterations int,
	confidence float64,
) *MultiStrategyComparison

CompareAll compares all strategies against the first one (baseline).

type StrategyComparison

type StrategyComparison struct {
	Strategy1       string
	Strategy2       string
	Stats1          *DescriptiveStats
	Stats2          *DescriptiveStats
	MannWhitney     *MannWhitneyResult
	EffectSize      *EffectSize
	BootstrapCI     *BootstrapResult
	Winner          string // Name of strategy with fewer switches, or "tie".
	WinnerConfident bool   // True if statistically significant.
}

StrategyComparison contains a full statistical comparison between two strategies.

func CompareStrategies

func CompareStrategies(
	result1, result2 *simulation.AggregateResult,
	bootstrapIterations int,
	confidence float64,
) *StrategyComparison

CompareStrategies performs a full statistical comparison between two strategies.

func (*StrategyComparison) Summary

func (c *StrategyComparison) Summary() string

Summary returns a human-readable summary of the comparison.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL