Evaluation API

The evaluation module provides metrics, diagnostics, and benchmarks.

BetaEvaluator

DiagnosticTests

Benchmark Functions

Example Usage

Basic Evaluation

from grubeta import BetaEvaluator

evaluator = BetaEvaluator(output_dir='./results')

metrics = evaluator.evaluate(
    betas=results['beta'].values,
    stock_returns=results['stock_return'].values,
    market_returns=results['market_return'].values,
    name='AAPL'
)

print(f"Systematic R²: {metrics['systematic_r2']:.4f}")
print(f"Beta mean: {metrics['beta_mean']:.4f}")

Model Comparison

from grubeta import BetaEvaluator
from grubeta.evaluation import compute_rolling_ols_beta

evaluator = BetaEvaluator()

comparison = evaluator.compare_models(
    {
        'GRU': gru_betas,
        'Rolling OLS': compute_rolling_ols_beta(stock, market, 252)
    },
    stock_returns,
    market_returns
)

print(comparison)

Diagnostic Tests

from grubeta.evaluation import DiagnosticTests

# Check for lookahead bias
result = DiagnosticTests.test_lookahead_bias(betas, returns)
print(f"Passed: {result['passed']}")

# Check stationarity
result = DiagnosticTests.test_beta_stationarity(betas)
print(f"Is stationary: {result['is_stationary']}")