MMM.optimizar_presupuesto#

MMM.optimize_budget(budget, num_periods, budget_bounds=None, response_variable='total_contribution', utility_function=<function average_response>, constraints=(), default_constraints=True, callback=False, **minimize_kwargs)[fuente]#

Optimice el presupuesto dado en función de la función de utilidad especificada durante un período de tiempo determinado.

Obsoleto desde la versión 0.0.3: Esta función optimiza la asignación de un presupuesto dado entre diferentes canales para maximizar la respuesta, considerando los efectos de adstock y saturación. Escala el presupuesto y los límites del presupuesto, realiza la optimización y genera un conjunto de datos sintético para el muestreo predictivo posterior.

La función primero escala el presupuesto y los límites del presupuesto utilizando la escala máxima del transformador de canal. Luego utiliza el BudgetOptimizer para asignar el presupuesto y crea un conjunto de datos sintético basado en la asignación óptima. Finalmente, realiza un muestreo predictivo posterior sobre el conjunto de datos sintético.

Importante: Al generar la distribución predictiva posterior para el objetivo con el presupuesto optimizado, ¡estamos estableciendo las variables de control en cero! Esto se hace porque en muchas situaciones no tenemos todas las variables de control en el futuro (por ejemplo, control de valores atípicos, eventos especiales).

Parámetros:
presupuesto : float o intpython:float o python:int

El presupuesto total a ser asignado.

num_periodsint

El número de unidades de tiempo sobre las cuales se debe asignar el presupuesto.

budget_bounds : DataArrayr o dict[str, tuple[float, float]], opcionalDataArrayr o python:dict[python:str, python:tuple[python:float, python:float]], opcional

Un xarray DataArray o diccionario que especifica los límites inferiores y superiores para la asignación del presupuesto para cada canal. Si es None, no se aplican límites.

response_variable : str, opcionalpython:str, opcional

La variable de respuesta a optimizar. El valor predeterminado es «total_contribution».

utility_function : UtilityFunctionType, opcionalTipoDeFunciónUtilidad, opcional

La función de utilidad a maximizar. El valor predeterminado es la media de la distribución de respuestas.

constraintsSequence[Constraint], optional

Custom constraints for the optimization. Each element must be an instance of Constraint.

default_constraints : bool, opcionalbool, opcional

Si se debe agregar la restricción de suma predeterminada al optimizador. El valor predeterminado es True.

callback : bool, opcionalbool, opcional

Si se debe devolver información de seguimiento de la optimización del progreso de la devolución de llamada. Cuando es Verdadero, devuelve un tercer elemento que contiene una lista de diccionarios con información de optimización en cada iteración. El valor predeterminado es Falso para mantener la compatibilidad hacia atrás.

**minimize_kwargs

Argumentos adicionales para pasar al BudgetOptimizer.

Devoluciones:
az.InferenceData

Las muestras predictivas posteriores generadas a partir del conjunto de datos sintético.

Aumentos:
ValueError

Si la granularidad del tiempo no es compatible.

ValueError

Si el nivel de ruido no es un número decimal.