NextStatNextStat

NextStat для квантов и риск-аналитиков

Риск портфеля, каузальный вывод и валидация моделей

Вы строите модели для ценообразования, риска и регуляторного комплаенса. NextStat даетинференс-движок со скоростью Rust с эконометрическими примитивами (Panel FE, DiD, IV/2SLS, AIPW), временными рядами (фильтр/сглаживание Калмана, EM, прогнозирование) и отчетом валидации, рассчитанным на управление модельными рисками по SR 11-7. Все это вызывается из Python.

Почему NextStat для финансов?

Большинство квантовых стеков склеивают R, Python (statsmodels) и ad-hoc C++ ради скорости. NextStat заменяет вычислительный слой: один движок, который запускает GLM, панельные регрессии, фильтры Калмана и байесовский NUTS со скоростью Rust, и при этом производит детерминированные артефакты валидации, пригодные для аудита модельным риском.

Что вы уже знаете → как это называется в NextStat

Финансы / эконометрикаAPI NextStatПрименение
Панельная регрессия (entity FE)nextstat.panel_fe()Декомпозиция доходности фондов, кросс-секционная оценка активов
Разность разностей (DiD)nextstat.did()Эффект политики на торговые издержки, изменения комиссий
Инструментальные переменные (IV) / 2SLSnextstat.iv_2sls()Коррекция эндогенности в оценке спроса
Двойственно-робастный оцениватель (AIPW)nextstat.aipw()Оценка ATE с защитой от ошибки спецификации модели
Фильтр Калмана / сглаживательnextstat.kalman_filter()Оценка состояния, отслеживание волатильности, извлечение сигнала
Оценка параметров через EMnextstat.kalman_em()Оценка параметров модели в пространстве состояний по наблюдаемым данным
Прогноз с интерваламиnextstat.kalman_forecast()Многопериодный прогноз с гауссовыми доверительными полосами
Робастные / кластерные SEnextstat.ols(robust=True)HC0-HC3, кластеризация по объектам/времени для панельных данных

Быстрый старт: панельная регрессия + прогноз Калмана

import nextstat
import numpy as np

# --- Панельная регрессия с фиксированными эффектами по объектам ---
y = np.array([...])        # доходности: (N*T,)
X = np.array([...])        # признаки: (N*T, k)
entity = np.array([...])   # ID объектов: (N*T,)

result = nextstat.panel_fe(y, X, entity_ids=entity, robust=True)
print(f"Coefficients: {result.params}")
print(f"Cluster-robust SE: {result.std_errors}")
print(f"R² (within): {result.r_squared_within:.4f}")

# --- Фильтр Калмана для оценки состояния ---
ys = np.array([...])  # наблюдаемые цены: (T, obs_dim)

# Матрицы модели в пространстве состояний (local level model)
F = np.eye(1)           # переход состояния
H = np.ones((1, 1))     # модель наблюдения
Q = np.eye(1) * 0.01    # шум состояния
R = np.eye(1) * 0.1     # шум наблюдения

states = nextstat.kalman_filter(ys, F, H, Q, R)
smoothed = nextstat.kalman_smooth(ys, F, H, Q, R)
forecast = nextstat.kalman_forecast(ys, F, H, Q, R, steps=20)

Каузальный вывод: DiD + исследование событий (event study)

# Разность разностей (DiD) с TWFE
did_result = nextstat.did(
    y=outcomes,
    treat=treatment_indicator,
    post=post_period,
    X=controls,
    entity_ids=firms,
    time_ids=quarters,
)
print(f"ATT: {did_result.att:.4f} ± {did_result.att_se:.4f}")

# IV/2SLS для борьбы с эндогенностью
iv_result = nextstat.iv_2sls(
    y=demand,
    X_endog=price,
    X_exog=controls,
    Z=instruments,
)
print(f"IV estimate: {iv_result.params}")
print(f"First-stage F: {iv_result.first_stage_f:.1f}")

Валидация модели для SR 11-7

NextStat генерирует validation_report.json - машиночитаемый артефакт с SHA-256 хешами данных, спецификацией модели, отпечатком окружения и результатами (pass/fail) по наборам валидации. Формат рассчитан на проверки model risk management по SR 11-7 и аналогичным фреймворкам.

# Сгенерировать отчет валидации (CLI)
nextstat validation-report \
  --apex2 tmp/apex2_master_report.json \
  --workspace workspace.json \
  --out validation_report.json \
  --pdf validation_report.pdf \
  --deterministic

Производительность: почему Rust важен для квантовых нагрузок

Нагрузкапротив PythonПримечание
MLE-фит (модель на 100 параметров)37-880× быстреепо сравнению с ROOT/RooFit и pyhf на профильных сканах
Пакетная генерация тоев (GPU)10 000 тоев за 7 мсMetal + CUDA (zero-copy с PyTorch)
Фильтр Калмана (T=10k)~5× быстреечистый Rust без BLAS, нет Python-оверхеда на шаг
Panel FE (N=10k, T=100)~3× быстрееобезсреднение + OLS в компилируемом коде

Следующие шаги