Skip to content

🇬🇧 English · 🇪🇸 Español

Contrato de señal

Estado: Slice 1 incluido en 0.65.0 (calidad basada únicamente en escasez). El Slice 2 (draws + propagación) y el Slice 3 (calibración) están planificados.

El contrato de señal es la estructura de datos por RiskIndex que permite a un estimador LP / SVAR aguas abajo conocer la fiabilidad de una lectura del índice y, en versiones posteriores, propagar esa fiabilidad a las bandas de confianza de las FIR.

Esquema (Slice 1)

puremacro.narrative.types.RiskIndex incorpora dos campos opcionales:

@dataclass
class RiskIndex:
    name: str
    country: str
    series: pd.Series
    method: str
    corpus: str
    language: str
    normalization: str
    metadata: dict
    quality: SignalQualityReport | None = None   # 0.65.0+
    draws:   pd.DataFrame | None          = None  # 0.66.0+

Ambos campos toman el valor None por defecto — todo código anterior a 0.65.0 funciona de manera idéntica.

Activación (Slice 1)

from puremacro.narrative.indices import lui

ri = lui(records, country="USA", language="en", with_quality=True)
ri.quality.summary()      # one-row DataFrame: mean_n_docs, mean_doc_length, n_coverage_gaps, ...

El mismo argumento de palabra clave with_quality=False está disponible en todos los índices canónicos de puremacro.narrative.indices.__all__: epu, mpu, gpr, tone, wui, lui, ltui, ltui_up, ltui_down, lwui, lwui_wage, bbui, cboui, ep_ui, erpui, eurlex_ui, sotuui, bluesky_ui.

SignalQualityReport (campos del Slice 1 ya poblados)

Campo Incorporado en Descripción
n_docs_per_period 0.65.0 documentos por trimestre que alimentaron el kernel
avg_doc_length 0.65.0 promedio de tokens por documento por trimestre
coverage_gaps 0.65.0 trimestres sin documentos dentro del rango de fechas
kernel_agreement 0.66.0 correlación media por pares entre draws del kernel (Slice 2)
multilingual_parity 0.66.0 correlación entre subconjuntos por idioma (Slice 2)
doc_bootstrap_sd 0.66.0 desviación estándar por período entre draws de bootstrap (Slice 2)
corpus_loo_max_swing 0.66.0 máximo |Δ| entre draws de validación cruzada por corpus (Slice 2)
benchmark_scores 0.67.0 Pearson/Spearman/RMSE por clave frente al índice canónico (S3)
event_panel 0.67.0 correlación de rangos + aciertos en el decil superior + AUC frente al panel de eventos
survey_scores 0.67.0 Pearson/RMSE por clave frente a series de encuestas

Validación

RiskIndex.__post_init__ valida draws (cuando se especifica): - draws.index debe coincidir con series.index. - draws.columns debe ser un pd.MultiIndex de dos niveles denominado ['source', 'draw_id']. - Cada valor del nivel source debe pertenecer al conjunto {'kernel', 'lexicon', 'doc', 'corpus'}.