MMM.agregar_costo_por_calibración_de_objetivo#

MMM.add_cost_per_target_calibration(data, calibration_data, name_prefix='cpt_calibration')[fuente]#

Calibrate cost-per-target using an observed Normal likelihood.

This computes cost-per-target as mean(spend) / mean(contribution) over the date dimension and adds an observed Normal likelihood for each calibration row:

Normal(mu=cpt_mean, sigma=sigma, observed=target)

Parámetros:
datos : pd.DataFramepd.DataFrame

DataFrame similar a una característica con columnas que coinciden con el entrenamiento X, pero con valores de canal que representan el gasto (unidades originales). Debe incluir la misma fecha y cualquier columna de dims del modelo.

calibration_datapd.DataFrame
DataFrame con filas que especifican los objetivos de calibración. Debe incluir:
  • channel: nombre del canal en self.channel_columns

  • cost_per_target: valor CPT deseado

  • sigma: desviación aceptada; mayor => penalización más débil

y una columna por dimensión en self.dims.

cpt_variable_namestr

Nombre para el costo por objetivo Determinista en el modelo.

name_prefixstr

Prefijo a utilizar para los nombres potenciales generados.

Ejemplos

Construya un modelo y calibra CPT para los seleccionados (dims, canal):

# spend data in original scale with the same structure as X
spend_df = X.copy()
# e.g., if X contains impressions, replace with monetary spend
# spend_df[channels] = ...

calibration_df = pd.DataFrame(
    {
        "channel": ["C1", "C2"],
        "geo": ["US", "US"],  # dims columns as needed
        "cost_per_target": [30.0, 45.0],
        "sigma": [2.0, 3.0],
    }
)

mmm.add_cost_per_target_calibration(
    data=spend_df,
    calibration_data=calibration_df,
    name_prefix="cpt_calibration",
)