meridian.model.model.Meridian

Contiene la funcionalidad principal para ajustar el modelo de MMM de Meridian.

input_data Objeto InputData que contiene los datos de entrada del modelo.
model_spec Objeto ModelSpec que contiene la especificación del modelo.
inference_data Objeto arviz.InferenceData mutable que contiene los datos resultantes del ajuste del modelo.
n_geos Cantidad de ubicaciones geográficas incluidas en los datos.
n_media_channels Cantidad de canales de medios incluidos en los datos.
n_rf_channels Es la cantidad de canales de alcance y frecuencia (RF) incluidos en los datos.
n_organic_media_channels Es la cantidad de canales de medios orgánicos incluidos en los datos.
n_organic_rf_channels Es la cantidad de canales de alcance y frecuencia (RF) orgánicos incluidos en los datos.
n_controls Es la cantidad de variables de control incluidas en los datos.
n_non_media_channels Es la cantidad de canales de tratamiento que no son de medios en los datos.
n_times Es la cantidad de períodos incluidos en los datos del KPI o de la inversión.
n_media_times Cantidad de períodos incluidos en los datos de medios.
is_national Argumento booleano que indica si los datos se establecen a nivel nacional (ubicación geográfica única) o no (varias ubicaciones geográficas).
knot_info Un KnotInfo derivado de los datos de entrada y la especificación del modelo.
kpi Tensor construido a partir de input_data.kpi.
revenue_per_kpi Tensor construido a partir de input_data.revenue_per_kpi. Si input_data.revenue_per_kpi es None, este argumento también se establece de la misma manera.
controls Es un tensor creado a partir de input_data.controls.
non_media_treatments Es un tensor creado a partir de input_data.non_media_treatments.
population Es un tensor creado a partir de input_data.population.
media_tensors Colección de tensores de medios derivados de input_data.
rf_tensors Es una colección de tensores de medios de alcance y frecuencia (RF).
organic_media_tensors Es una colección de tensores de medios orgánicos.
organic_rf_tensors Es una colección de tensores de medios de alcance y frecuencia (RF) orgánicos.
total_spend Es un tensor que contiene la inversión total, lo que incluye media_tensors.media_spend y rf_tensors.rf_spend.
controls_transformer Es un ControlsTransformer para ajustar los tensores de controles con los datos de controles del modelo.
non_media_transformer Es un CenteringAndScalingTransformer para ajustar los tensores de tratamiento que no son de medios con los datos de tratamiento que no son de medios del modelo.
kpi_transformer Es un KpiTransformer para ajustar los tensores de KPI con los datos de KPI del modelo.
controls_scaled Es un tensor de controles normalizado según la población y el valor de la mediana.
non_media_treatments_scaled Es un tensor de tratamiento que no es de medios normalizado según la población y el valor de la mediana.
kpi_scaled Es un tensor de KPI normalizado según la población y el valor de la mediana.
media_effects_dist Cadena para especificar la distribución de los efectos aleatorios de los medios en las diferentes ubicaciones geográficas.
unique_sigma_for_each_geo Argumento booleano que indica si se debe usar una varianza residual única para cada ubicación geográfica.
prior_broadcast Objeto PriorDistribution que contiene distribuciones emitidas.
baseline_geo_idx Índice de la ubicación geográfica del modelo de referencia.
holdout_id Tensor que contiene el ID de los datos de exclusión, si está disponible.
posterior_sampler_callable Un elemento PosteriorMCMCSampler que admite llamadas y está vinculado a este modelo.
prior_sampler_callable Un elemento PriorDistributionSampler que admite llamadas y está vinculado a este modelo.

Métodos

adstock_hill_media

Ver el código fuente

Transforma los medios con las funciones Adstock y Hill en el orden deseado.

Args
media Tensor de dimensiones (n_geos, n_media_times, n_media_channels) que contiene valores no negativos de ejecución de medios. Por lo general, se refiere a las impresiones, pero puede ser cualquier métrica, como media_spend. Los clics se suelen usar en relación con los anuncios de búsqueda pagada.
alpha Distribución uniforme para los cálculos de Adstock y Hill.
ec Distribución seminormal desplazada para los cálculos de Adstock y Hill.
slope Distribución determinística para los cálculos de Adstock y Hill.
n_times_output Cantidad de períodos para mostrar. Este argumento es opcional cuando la cantidad de períodos incluidos en media es igual a la de self.n_media_times, en cuyo caso n_times_output se establece en self.n_times de forma predeterminada.

Devolución
Tensor con dimensiones [..., n_geos, n_times, n_media_channels] que representa los medios transformados con Adstock y Hill.

adstock_hill_rf

Ver el código fuente

Transforma el alcance y la frecuencia (RF) con las funciones Adstock y Hill.

Args
reach Tensor de dimensiones (n_geos, n_media_times, n_rf_channels) que contiene medios no negativos para el alcance.
frequency Tensor de dimensiones (n_geos, n_media_times, n_rf_channels) que contiene medios no negativos para la frecuencia.
alpha Distribución uniforme para los cálculos de Adstock y Hill.
ec Distribución seminormal desplazada para los cálculos de Adstock y Hill.
slope Distribución determinística para los cálculos de Adstock y Hill.
n_times_output Cantidad de períodos para mostrar. Este argumento es opcional cuando la cantidad de períodos incluidos en reach es igual a la de self.n_media_times, en cuyo caso n_times_output se establece en self.n_times de forma predeterminada.

Devolución
Tensor con dimensiones [..., n_geos, n_times, n_rf_channels] que representa los datos de RF transformados con Adstock y Hill.

create_inference_data_coords

Ver el código fuente

Crea coordenadas de datos para los datos de inferencia.

create_inference_data_dims

Ver el código fuente

expand_selected_time_dims

Ver el código fuente

Valida y devuelve los valores de la dimensión de tiempo según los horarios seleccionados.

Si se especifica None para start_date y end_date, se devuelve None. Si se especifica, start_date y end_date son inclusivos, y deben estar presentes en las coordenadas temporales de los datos de entrada.

Args
start_date Es la fecha de inicio del período seleccionado. "None" implica el valor más antiguo de la dimensión de tiempo en los datos de entrada.
end_date Es la fecha de finalización del período seleccionado. "None" implica el valor más reciente de la dimensión de tiempo en los datos de entrada.

Devolución
Se devuelve una lista de los valores de la dimensión de tiempo (como cadenas con formato de Meridian) indicados en los datos de entrada para el período seleccionado, o no se hace nada y se pasa None si ambos argumentos se establecen en None o si start_date y end_date corresponden a todo el período de los datos de entrada.

Excepción
ValueError si no se incluye start_date o end_date en las dimensiones temporales de los datos de entrada.

populate_cached_properties

Ver el código fuente

Activa de inmediato todas las propiedades almacenadas en caché.

Este método es útil para crear un grafo de procesamiento tf.function con este objeto Meridian como parte de un cierre con captura. Dentro del grafo de procesamiento, las mutaciones de estado interno son problemáticas, por lo que este método inmoviliza los estados del objeto antes de que se cree el grafo de procesamiento.

sample_posterior

Ver el código fuente

Ejecuta el muestreo del método de Monte Carlo basado en cadenas de Markov (MCMC) de las distribuciones a posteriori.

Para obtener más información sobre los argumentos, consulta windowed_adaptive_nuts.

Las muestras extraídas se combinan en la propiedad inference_data de Arviz de este modelo.

Args
n_chains Cantidad de cadenas de MCMC. Dada una secuencia de números enteros, se llamará a windowed_adaptive_nuts una vez por cada elemento. El argumento n_chains de cada llamada a windowed_adaptive_nuts será igual al elemento de número entero respectivo. Con una lista de números enteros, se pueden dividir las cadenas de una llamada a windowed_adaptive_nuts en varias llamadas con menos cadenas por llamada. Esto puede reducir el uso de memoria, además de que podría requerir una mayor cantidad de pasos de adaptación para la convergencia, ya que la optimización se produce en menos cadenas por llamada de muestreo.
n_adapt Cantidad de extracciones de adaptación por cadena.
n_burnin Cantidad de extracciones iniciales por cadena. Las extracciones iniciales se ejecutan después de las de adaptación y antes de las conservadas.
n_keep Número entero de extracciones por cadena que se deben conservar para la inferencia.
current_state Estructura opcional de tensores en la que se inicializa el muestreo. Usa la misma forma y estructura que model.experimental_pin(**pins).sample(n_chains).
init_step_size Número entero opcional que determina dónde inicializar el tamaño del paso para el integrador de salto de rana. La estructura se debe emitir con current_state. Por ejemplo, si el estado inicial es { 'a': tf.zeros(n_chains), 'b': tf.zeros([n_chains, n_features]), }, funcionará cualquiera de 1., {'a': 1., 'b': 1.} o {'a': tf.ones(n_chains), 'b': tf.ones([n_chains, n_features])}. La configuración predeterminada utiliza la dimensión de la densidad de registro a la potencia de ¼.
dual_averaging_kwargs Argumentos de palabra clave opcionales de la función dict para pasar a tfp.mcmc.DualAveragingStepSizeAdaptation. De forma predeterminada, se establece un target_accept_prob de 0.85, se reducen las probabilidades de aceptación en las cadenas usando una media armónica y, en los demás casos, se utilizan los valores predeterminados de la clase.
max_tree_depth Profundidad máxima del árbol compilado por NUTS de forma implícita. La cantidad máxima de pasos de salto de rana está limitada por 2**max_tree_depth; por ejemplo, la cantidad de nodos en una profundidad de max_tree_depth de un árbol binario. El parámetro de configuración predeterminado de 10 toma hasta 1,024 pasos de salto de rana.
max_energy_diff Umbral escalar de las diferencias de energía en cada salto de rana (las muestras de la divergencia se definen como pasos de salto de rana que superan este umbral). La configuración predeterminada es 1000.
unrolled_leapfrog_steps Cantidad de saltos de rana para desenroscar por paso de expansión del árbol. Aplica un multiplicador lineal directo a la longitud de trayectoria máxima sugerida por max_tree_depth. La configuración predeterminada es 1.
parallel_iterations Cantidad de iteraciones permitidas para ejecutar en paralelo. Debe ser un número entero positivo. Para obtener más información, consulta tf.while_loop.
seed Argumento usado para establecer los valores semilla para los resultados reproducibles. Para obtener más información, consulta PRNGS y valores semilla.
**pins Argumentos usados para condicionar la distribución conjunta proporcionada que se pasan directamente a joint_dist.experimental_pin(**pins).

Arroja
MCMCOOMError Si el modelo se queda sin memoria. Intenta reducir el valor de n_keep o pasar una lista de números enteros como n_chains para muestrear cadenas de forma serial. Para obtener más información, consulta ResourceExhaustedError cuando se ejecuta Meridian.sample_posterior.

sample_prior

Ver el código fuente

Extrae muestras de las distribuciones a priori.

Las muestras extraídas se combinan en la propiedad inference_data de Arviz de este modelo.

Args
n_draws Cantidad de muestras extraídas de la distribución a priori.
seed Argumento usado para establecer los valores semilla para los resultados reproducibles. Para obtener más información, consulta PRNGS y valores semilla.