meridian.analysis.analyzer.Analyzer

Esegue calcoli per analizzare i dati non elaborati dopo l'adattamento del modello.

Corsi per bambini

class PerformanceData

Metodi

adstock_decay

Visualizza codice sorgente

Calcola il decadimento dell'inventario pubblicitario per i media e i canali di copertura e frequenza.

Args
confidence_level Livello di confidenza per gli intervalli di credibilità precedenti e posteriori, rappresentato come un valore compreso tra zero e uno.

Resi
DataFrame Pandas contenente il canale, time_units, la distribuzione, ci_hi, ci_lo e mean per la funzione Adstock.

baseline_summary_metrics

Visualizza codice sorgente

Restituisce le metriche di riepilogo del baseline.

Args
selected_geos Elenco facoltativo contenente un sottoinsieme di località da includere. Per impostazione predefinita, sono inclusi tutti i dati geografici.
selected_times Elenco facoltativo contenente un sottoinsieme di orari da includere. Per impostazione predefinita, sono inclusi tutti i periodi di tempo.
aggregate_geos Booleano. Se True, il risultato previsto viene sommato su tutte le regioni.
aggregate_times Booleano. Se True, il risultato previsto viene sommato su tutti i periodi di tempo.
confidence_level Livello di confidenza per gli intervalli di credibilità delle metriche di riepilogo dei media, rappresentato come un valore compreso tra zero e uno.
batch_size Numero intero che rappresenta il numero massimo di estrazioni per catena in ogni batch. Il calcolo viene eseguito in batch per evitare l'esaurimento della memoria. Se si verifica un errore di memoria, prova a ridurre batch_size. Il calcolo sarà generalmente più rapido con valori di batch_size più grandi.

Resi
Un xr.Dataset con coordinate: metric (mean, median, ci_low,ci_high),distribution (priore, posteriore) e contiene le seguenti variabili di dati: baseline_outcome, pct_of_contribution.

cpik

Visualizza codice sorgente

Calcola il costo per distribuzione del KPI incrementale per ogni canale.

Il numeratore del CPIK è la spesa totale sul canale. Il denominatore del CPIK è la variazione del KPI previsto quando la spesa di un canale è impostata su zero, lasciando invariata la spesa di tutti gli altri canali.

Args
use_posterior Booleano. Se True, viene calcolata la distribuzione a posteriori. In caso contrario, viene calcolata la distribuzione a priori.
new_media Tensore facoltativo con contenuti multimediali. Utilizzato per calcolare il CPIK.
new_media_spend Tensore facoltativo con media_spend da utilizzare per calcolare CPIK.
new_reach Tensore facoltativo con copertura. Utilizzato per calcolare il CPIK.
new_frequency Tensore facoltativo con frequenza. Utilizzato per calcolare il CPIK.
new_rf_spend Tensore facoltativo con rf_spend da utilizzare per calcolare il CPIK.
selected_geos Elenco facoltativo contenente un sottoinsieme di località da includere. Per impostazione predefinita, sono inclusi tutti i dati geografici.
selected_times Elenco facoltativo contenente un sottoinsieme di orari da includere. Per impostazione predefinita, sono inclusi tutti i periodi di tempo.
aggregate_geos Booleano. Se True, il KPI previsto viene sommato per tutte le regioni.
aggregate_times Booleano. Se True, il KPI previsto viene sommato su tutti i periodi di tempo.
batch_size Numero intero che rappresenta il numero massimo di estrazioni per catena in ogni batch. Il calcolo viene eseguito in batch per evitare l'esaurimento della memoria. Se si verifica un errore di memoria, prova a ridurre batch_size. Il calcolo sarà generalmente più rapido con valori di batch_size più elevati.

Resi
Tensore di valori CPIK con dimensioni (n_chains, n_draws, n_geos, n_times, (n_media_channels + n_rf_channels)). Le dimensioni n_geos e n_times vengono eliminate se aggregate_geos=True o aggregate_times=True, rispettivamente.

expected_outcome

Visualizza codice sorgente

Calcola il risultato atteso precedente o successivo.

Viene calcolato E(Outcome|Media, RF, Organic media, Organic RF, Non-media treatments, Controls) per ogni estrazione del parametro posteriore (o precedente), dove Outcome fa riferimento a revenue se use_kpi=False o a kpi se use_kpi=True. Quando revenue_per_kpi non è definito, use_kpi non può essere False.

Se new_data=None, questo metodo calcola il risultato previsto in base ai valori delle variabili indipendenti con cui è stato inizializzato l'oggetto Meridian. L'utente può anche sostituire questi dati storici tramite l'argomento new_data, a condizione che le dimensioni dei nuovi tensori corrispondano. Ad esempio:

new_data=DataTensors(reach=new_reach, frequency=new_frequency)

In linea di principio, il risultato previsto potrebbe essere calcolato con altre dimensioni di tempo (ad esempio per le previsioni future). Tuttavia, questo metodo non è consentito per le seguenti complessità aggiuntive:

  1. Sono necessari anche i dati corrispondenti sul prezzo (entrate per KPI).
  2. Se il modello contiene parametri di effetto settimanale, è necessario un metodo per stimare o prevedere questi effetti per periodi di tempo al di fuori della finestra dei dati di addestramento.

Args
use_posterior Booleano. Se True, viene calcolata la distribuzione pos. dell'esito previsto. In caso contrario, viene calcolata la distribuzione a priori.
new_data Un contenitore DataTensors facoltativo con nuovi tensori facoltativi: media, reach, frequency, organic_media, organic_reach, organic_frequency, non_media_treatments, controls. Se None, il risultato previsto viene calcolato in base ai valori originali dei tensori di dati con cui è stato inizializzato l'oggetto Meridian. Se viene utilizzato l'argomento new_data, il risultato previsto viene calcolato in base ai valori dei tensori passati in new_data e ai valori originali dei tensori rimanenti non impostati. Ad esempio, expected_outcome(new_data=DataTensors(reach=new_reach, frequency=new_frequency)) calcola il risultato previsto in base ai tensori media, organic_media, organic_reach, organic_frequency, non_media_treatments e controls originali e ai nuovi valori dati per i tensori reach e frequency.
selected_geos Elenco facoltativo contenente un sottoinsieme di località da includere. Per impostazione predefinita, sono inclusi tutti i dati geografici.
selected_times Elenco facoltativo contenente un sottoinsieme di date da includere. I valori accettati qui devono corrispondere alle coordinate della dimensione temporale di InputData.time. Per impostazione predefinita, sono inclusi tutti i periodi di tempo.
aggregate_geos Booleano. Se True, il risultato previsto viene sommato su tutte le regioni.
aggregate_times Booleano. Se True, il risultato previsto viene sommato su tutti i periodi di tempo.
inverse_transform_outcome Booleano. Se True, restituisce il risultato previsto nel KPI o nelle entrate originali (a seconda di ciò che viene passato a use_kpi), così come è stato passato a InputData. Se è False, restituisce il risultato dopo la trasformazione da parte di KpiTransformer, riflettendo la sua rappresentazione all'interno del modello.
use_kpi Booleano. Se use_kpi = True, viene calcolato il KPI previsto; in caso contrario, vengono calcolate le entrate previste (kpi * revenue_per_kpi). È obbligatorio che use_kpi = True se revenue_per_kpi non è definito o se inverse_transform_outcome = False.
batch_size Numero intero che rappresenta il numero massimo di estrazioni per catena in ogni batch. Il calcolo viene eseguito in batch per evitare l'esaurimento della memoria. Se si verifica un errore di memoria, prova a ridurre batch_size. Il calcolo sarà generalmente più rapido con valori di batch_size più elevati.

Resi
Tensore del risultato previsto (KPI o entrate, a seconda dell'argomento use_kpi) con dimensioni (n_chains, n_draws, n_geos, n_times). Le dimensioni n_geos e n_times vengono eliminate se aggregate_geos=True o aggregate_time=True, rispettivamente.

Aumenti
NotFittedModelError Se sample_posterior() (per use_posterior=True) o sample_prior() (per use_posterior=False) non è stato chiamato prima di chiamare questo metodo.

expected_vs_actual_data

Visualizza codice sorgente

Calcola i dati relativi al risultato previsto rispetto a quello effettivo nel tempo.

Args
aggregate_geos Booleano. Se True, i valori previsti, di riferimento e effettivi vengono суммированы su tutte le regioni.
aggregate_times Booleano. Se True, i valori previsti, di riferimento e effettivi vengono sommati su tutti i periodi di tempo.
split_by_holdout_id Booleano. Se esistono True e holdout_id, i dati vengono suddivisi in sezioni 'Train', 'Test' e 'All Data'.
confidence_level Livello di confidenza per gli intervalli di risultati credibili previsti, rappresentato come un valore compreso tra 0 e 1. Valore predefinito: 0.9.

Resi
Un set di dati con le metriche relative ai risultati previsti, di riferimento ed effettivi.

filter_and_aggregate_geos_and_times

Visualizza codice sorgente

Filtra e/o aggrega le dimensioni geografiche e temporali di un tensore.

Args
tensor Tensore con dimensioni [..., n_geos, n_times] o [..., n_geos, n_times, n_channels], dove n_channels è il numero di canali media, canali RF, tutti i canali a pagamento (media e RF) o tutti i canali (media, RF, non media, media organici, RF organici).
selected_geos Elenco facoltativo contenente un sottoinsieme di località da includere. Per impostazione predefinita, sono inclusi tutti i dati geografici. I paesi selezionati devono corrispondere a quelli in InputData.geo.
selected_times Elenco facoltativo di orari da includere. Può essere un elenco di stringhe contenente un sottoinsieme di coordinate della dimensione temporale di InputData.time o un elenco booleano con una lunghezza uguale alla dimensione temporale del tensore. Per impostazione predefinita, sono inclusi tutti i periodi di tempo.
aggregate_geos Booleano. Se True, il tensore viene sommato su tutti i dati geografici.
aggregate_times Booleano. Se True, il tensore viene sommato su tutti i periodi di tempo.
flexible_time_dim Booleano. Se True, la dimensione temporale del tensore non è obbligatoria per corrispondere al numero di periodi di tempo in InputData.time. In questo caso, se utilizzi selected_times, deve essere un elenco booleano con lunghezza pari alla dimensione temporale del tensore.
has_media_dim Booleano. Viene utilizzato solo se flexible_time_dim=True. In caso contrario, viene assunto in base alle dimensioni del tensore. Se True, si assume che il tensore abbia una dimensione media dopo la dimensione temporale. Se False, si presume che l'ultima dimensione del tensore sia la dimensione del tempo.

Resi
Un tensore con dimensioni geografiche e temporali filtrate e/o aggregate.

get_aggregated_impressions

Visualizza codice sorgente

Calcola i valori delle impressioni aggregate nei dati di tutti i canali.

Args
selected_geos Elenco facoltativo contenente un sottoinsieme di località da includere. Per impostazione predefinita, sono inclusi tutti i dati geografici.
selected_times Elenco facoltativo contenente un sottoinsieme di orari da includere. Per impostazione predefinita, sono inclusi tutti i periodi di tempo.
aggregate_geos Booleano. Se True, il risultato previsto viene sommato su tutte le regioni.
aggregate_times Booleano. Se True, il risultato previsto viene sommato su tutti i periodi di tempo.
optimal_frequency Un elenco facoltativo con la dimensione n_rf_channels, contenente la frequenza ottimale per canale, che massimizza il ROI medio post-trattamento. Il valore predefinito è None e per il calcolo delle metriche viene utilizzata la frequenza storica.
include_non_paid_channels Booleano. Se True, i canali media organici, RF organici e non media sono inclusi nell'aggregazione.

Resi
Un tensore con la forma (n_selected_geos, n_selected_times, n_channels) (o (n_channels,) se le aree geografiche e i periodi di tempo sono aggregati) con valori di impressioni aggregate per canale.

get_rhat

Visualizza codice sorgente

Calcola i valori R-hat per ogni parametro del modello.

Resi
Un dizionario di valori r-hat in cui ogni parametro è una chiave e i valori sono r-hat corrispondenti al parametro.

Aumenti
NotFittedModelError Se self.sample_posterior() non viene chiamato prima di chiamare questo metodo.

hill_curves

Visualizza codice sorgente

Stime delle tabelle delle curve di Hill utilizzate per tracciare le curve di ciascun canale.

Args
confidence_level Livello di confidenza per gli intervalli di credibilità precedenti e posteriori, rappresentato come un valore compreso tra zero e uno. Il valore predefinito è 0.9.
n_bins Numero di intervalli di larghezza uguale da includere nell'istogramma per il plotting. Il valore predefinito è 25.

Resi
pd.DataFrame delle curve di Hill con colonne:

  • channel: nome del canale media o rf.
  • media_units: unità di media (per i canali media) o frequenza media (per i canalirf).
  • distribution: indicazione del sorteggio posterior o prior.
  • ci_hi: limite superiore dell'intervallo di credibilità del valore della funzione Hill.
  • ci_lo: limite inferiore dell'intervallo di credibilità del valore della funzione Hill.
  • mean: media punto per punto del valore della funzione di Hill per estrazione.
  • channel_type: indicazione di un canale media o rf.
  • scaled_count_histogram: conteggio scalato delle unità di media o delle frequenza media all'interno del contenitore.
  • count_histogram: valore del conteggio effettivo delle unità di media o delle frequenze medie all'interno del contenitore.
  • start_interval_histogram: unità di misura o punto di partenza della frequenza media per un intervallo dell'istogramma.
  • end_interval_histogram: unità di misura dei media o punto di fine della frequenza media per un intervallo dell'istogramma.

incremental_outcome

Visualizza codice sorgente

Calcola il risultato incrementale posteriore o precedente.

Viene calcolato il risultato media di ciascun canale media per ogni estrazione del parametro successivo o precedente. Il risultato incrementale è definito come:

E(Outcome|Media_1, Controls) meno E(Outcome|Media_0, Controls)

In questo caso, Media_1 indica che l'esecuzione dei media per un determinato canale viene moltiplicata per scaling_factor1 (1,0 per impostazione predefinita) per l'insieme di periodi di tempo specificati da media_selected_times. Analogamente, Media_0 indica che l'esecuzione dei media viene moltiplicata per scaling_factor0 (0,0 per impostazione predefinita) per questi periodi di tempo.

Per i canali con dati su copertura e frequenza, la frequenza viene mantenuta invariata mentre la copertura viene scalata. "Risultato" si riferisce a revenue se use_kpi=False o a kpi se use_kpi=True. Quando revenue_per_kpi non è definito, use_kpi non può essere False.

Se new_data=None, questo metodo calcola il risultato incrementale utilizzando i tensori media, reach, frequency, organic_media, organic_reach, organic_frequency, non_media_treatments e revenue_per_kpi con cui è stato inizializzato l'oggetto Meridian. Questo comportamento può essere ignorato con l'argomento new_data. Ad esempio, new_data=DataTensors(media=new_media) calcola il risultato incrementale utilizzando il tensore new_media e i valori originali dei tensori reach, frequency, organic_media, organic_reach, organic_frequency, non_media_treatments e revenue_per_kpi.

Il calcolo in questo metodo dipende da due ipotesi chiave fatte nell'implementazione di Meridian:

  1. Additività degli effetti multimediali (nessuna interazione).
  2. Le variazioni additive sulla scala del KPI del modello corrispondono alle variazioni additive sulla scala del KPI originale. In altre parole, gli effetti di intercettazione e controllo non influiscono sugli effetti dei media. Questa ipotesi è attualmente valida perché la trasformazione del risultato prevede solo il centratura e la scalatura, ad esempio nessuna trasformazione del log.

Args
use_posterior Booleano. Se True, viene calcolata la distribuzione pos-probabilistica incrementale dei risultati. In caso contrario, viene calcolata la distribuzione a priori.
new_data Contenitore DataTensors facoltativo con tensori facoltativi: media, reach, frequency, organic_media, organic_reach, organic_frequency, non_media_treatments e revenue_per_kpi. Se None, il risultato incrementale viene calcolato utilizzando il valore InputData fornito all'oggetto Meridian. Se viene fornito new_data, il risultato incrementale viene calcolato utilizzando i nuovi tensori in new_data e i valori originali dei tensori rimanenti. Ad esempio, incremental_outcome(new_data=DataTensors(media=new_media) calcola il risultato incrementale utilizzando new_media e i valori originali di reach, frequency, organic_media, organic_reach, organic_frequency, non_media_treatments e revenue_per_kpi. Se per uno dei tensori in new_data viene fornito un numero diverso di periodi di tempo rispetto a InputData, a tutti i tensori deve essere fornito lo stesso numero di periodi di tempo.
non_media_baseline_values Elenco facoltativo di forma (n_non_media_channels,). Ogni elemento è un valore float (il che significa che il valore fisso verrà utilizzato come base di riferimento per il canale specificato) o una delle stringhe "min" o "max" (il che significa che il valore minimo o massimo globale verrà utilizzato come base di riferimento per i valori scalati del canale dei trattamenti non_media specificato). Se non viene fornito, il valore minimo viene utilizzato come linea di base per ogni canale di trattamento non_media.
scaling_factor0 Galleggia. Il fattore per cui scalare lo scenario controfattuale "Media_0" durante i periodi di tempo specificati in media_selected_times. Deve essere non negativo e inferiore a scaling_factor1.
scaling_factor1 Galleggia. Il fattore per cui scalare "Media_1" durante i periodi di tempo selezionati specificati in media_selected_times. Deve essere non negativo e maggiore di scaling_factor0.
selected_geos Elenco facoltativo contenente un sottoinsieme di località da includere. Per impostazione predefinita, sono inclusi tutti i dati geografici.
selected_times Elenco facoltativo contenente un sottoinsieme di date da includere o valori booleani con una lunghezza pari al numero di periodi di tempo negli argomenti new_XXX, se forniti. Il risultato incrementale corrisponde al KPI incrementale generato durante l'arg selected_times per i media eseguiti durante l'arg media_selected_times. Tieni presente che se use_kpi=False, selected_times può includere solo i periodi di tempo che hanno dati di input revenue_per_kpi. Per impostazione predefinita, vengono inclusi tutti i periodi di tempo per i quali sono disponibili i dati revenue_per_kpi.
media_selected_times Elenco facoltativo contenente un sottoinsieme di date da includere o valori booleani con una lunghezza pari al numero di periodi di tempo in new_media, se forniti. Se viene fornito new_media, media_selected_times può selezionare qualsiasi sottoinsieme di periodi di tempo in new_media. Se new_media non viene fornito, media_selected_times viene selezionato da InputData.time. Il risultato incrementale corrisponde al KPI incrementale generato durante l'arg selected_times per i media eseguiti durante l'arg media_selected_times. Per ogni canale, il risultato incrementale è definito come la differenza tra il KPI previsto quando l'esecuzione dei media viene scalata per scaling_factor1 e scaling_factor0 durante questi periodi di tempo specificati. Per impostazione predefinita, la differenza è tra i dati medi a livello di esecuzione storica o come indicato in new_media e l'assenza di esecuzione. Per impostazione predefinita, vengono inclusi tutti i periodi di tempo.
aggregate_geos Booleano. Se True, il risultato incrementale viene sommato in tutte le regioni.
aggregate_times Booleano. Se è True, il risultato incrementale viene sommato su tutti i periodi di tempo.
inverse_transform_outcome Booleano. Se True, restituisce il risultato previsto nel KPI o nelle entrate originali (a seconda di ciò che viene passato a use_kpi), così come è stato passato a InputData. Se è False, restituisce il risultato dopo la trasformazione da parte di KpiTransformer, riflettendo la sua rappresentazione all'interno del modello.
use_kpi Booleano. Se use_kpi = True, viene calcolato il KPI previsto; in caso contrario, vengono calcolate le entrate previste (kpi * revenue_per_kpi). È obbligatorio che use_kpi = True se i dati di revenue_per_kpi non sono disponibili o se inverse_transform_outcome = False.
include_non_paid_channels Booleano. Se True, i trattamenti non media e gli effetti organici sono inclusi nel calcolo. Se False, vengono inclusi solo i media a pagamento e gli effetti RF.
batch_size Numero intero che rappresenta il numero massimo di estrazioni per catena in ogni batch. Il calcolo viene eseguito in batch per evitare l'esaurimento della memoria. Se si verifica un errore di memoria, prova a ridurre batch_size. Il calcolo sarà generalmente più rapido con valori di batch_size più grandi.

Resi
Tensore del risultato incrementale (KPI o entrate, a seconda dell'argomento use_kpi) con dimensioni (n_chains, n_draws, n_geos, n_times, n_channels). Se include_non_paid_channels=True, then n_channel è il numero totale di canali media, RF, media organici e RF organici e non media. Se include_non_paid_channels=False, then n_channels è il numero totale di canali media e RF. Le dimensioni n_geos e n_times vengono eliminate se aggregate_geos=True o aggregate_times=True, rispettivamente.

Aumenti
NotFittedModelError Se sample_posterior() (per use_posterior=True) o sample_prior() (per use_posterior=False) non è stato chiamato prima di chiamare questo metodo.
ValueError Se gli argomenti new_media non hanno la stessa forma del tensore come media.

marginal_roi

Visualizza codice sorgente

Calcola la distribuzione del ROI marginale precedente o posteriore.

Il numeratore del ROI marginale (mROI) è la variazione del risultato previsto (kpi o kpi * revenue_per_kpi) quando la spesa di un canale viene aumentata di una piccola frazione. Il denominatore del ROI medio è la piccola frazione corrispondente della spesa totale del canale. Quando revenue_per_kpi non è disponibile, change_in_outcome / spend è equivalente a change_in_revenue / spend supponendo che revenue_per_kpi=1.

Args
incremental_increase Piccola frazione per cui la spesa di ciascun canale viene incrementata al momento del calcolo del suo numeratore mROI. Il denominatore del mROI è questa frazione della spesa totale del canale. Viene utilizzato solo se il valore marginale è True.
use_posterior Se True, viene calcolata la distribuzione a posteriori. In caso contrario, viene calcolata la distribuzione a priori.
new_media Facoltativo. Dati multimediali con la stessa forma di meridian.input_data.media. Utilizzato per calcolare il ROI medio per i dati media alternativi. Il valore predefinito è meridian.input_data.media.
new_media_spend Facoltativo. Dati di spesa pubblicitaria con la stessa forma di meridian.input_data.spend. Utilizzato per calcolare il ROI medio per i dati alternativimedia_spend. Il valore predefinito è meridian.input_data.media_spend.
new_reach Facoltativo. Raggiungi i dati con la stessa forma di meridian.input_data.reach. Utilizzato per calcolare il ROI medio per i dati sulla copertura alternativa. Il valore predefinito è meridian.input_data.reach.
new_frequency Facoltativo. Dati sulla frequenza con la stessa forma di meridian.input_data.frequency. Utilizzato per calcolare il ROI medio per i dati sulla frequenza alternativi. Il valore predefinito è meridian.input_data.frequency.
new_rf_spend Facoltativo. Dati di spesa RF con la stessa forma di meridian.input_data.rf_spend. Utilizzato per calcolare il ROI medio per i dati alternativirf_spend. Il valore predefinito è meridian.input_data.rf_spend.
selected_geos Facoltativo. Contiene un sottoinsieme di località da includere. Per impostazione predefinita, sono inclusi tutti i dati geografici.
selected_times Facoltativo. Contiene un sottoinsieme di orari da includere. Per impostazione predefinita, sono inclusi tutti i periodi di tempo.
aggregate_geos Se True, le entrate previste vengono sommate per tutte le regioni.
aggregate_times Se True, le entrate previste vengono sommate su tutti i periodi di tempo.
by_reach Utilizzato per un canale con copertura e frequenza. Se True, restituisce l'mROI in base alla copertura per una determinata frequenza fissa. Se False, restituisce il ROI medio in base alla frequenza per una determinata copertura fissa.
use_kpi Se True, le entrate vengono utilizzate per calcolare il numeratore del mROI. In caso contrario, utilizza il KPI per calcolare il numeratore del ROI medio.
batch_size Numero massimo di estrazioni per catena in ogni batch. Il calcolo viene eseguito in batch per evitare l'esaurimento della memoria. Se si verifica un errore di memoria, prova a ridurre batch_size. In genere, il calcolo sarà più rapido con valori batch_size più elevati.

Resi
Tensore dei valori di mROI con dimensioni (n_chains, n_draws, n_geos, n_times, (n_media_channels + n_rf_channels)). Le dimensioni n_geos e n_times vengono eliminate se aggregate_geos=True o aggregate_times=True, rispettivamente.

optimal_freq

Visualizza codice sorgente

Calcola la frequenza ottimale che massimizza il ROI medio posteriore.

Per questa ottimizzazione, la spesa storica viene utilizzata e fissata e la frequenza è limitata in modo da essere costante in tutte le regioni geografiche e in tutti i periodi di tempo. La copertura viene calcolata per ogni area geografica e periodo di tempo in modo che il numero di impressioni rimanga invariato man mano che la frequenza varia. Meridian risolve per la frequenza con cui viene ottimizzato il ROI medio posteriore.

Args
freq_grid Elenco di valori di frequenza. Il ROI di ogni canale viene calcolato per ogni valore di frequenza nell'elenco. Per impostazione predefinita, l'elenco include i numeri da 1.0 alla frequenza massima con incrementi di 0.1.
use_posterior Booleano. Se True, vengono generate le frequenze ottimali posteriori. Se False, vengono generate le frequenze ottimali precedenti.
selected_geos Elenco facoltativo contenente un sottoinsieme di località da includere. Per impostazione predefinita, sono inclusi tutti i dati geografici.
selected_times Elenco facoltativo contenente un sottoinsieme di orari da includere. Per impostazione predefinita, sono inclusi tutti i periodi di tempo.
confidence_level Livello di confidenza per gli intervalli di credibilità precedenti e posteriori, rappresentato come un valore compreso tra zero e uno.

Resi
Un set di dati xarray contenente:

  • Coordinate: frequency, rf_channel, metric (mean, median, ci_lo, ci_hi).
  • Variabili di dati:
    • optimal_frequency: la frequenza che ottimizza la media posteriore del ROI.
    • roi: il ROI per ogni valore di frequenza in freq_grid.
    • optimized_incremental_outcome: il risultato incrementale in base alla frequenza ottimale.
    • optimized_pct_of_contribution: la percentuale di contributo in base alla frequenza ottimale.
    • optimized_effectiveness: l'efficacia in base alla frequenza ottimale.
    • optimized_roi: il ROI in base alla frequenza ottimale.
    • optimized_mroi_by_reach: il ROI marginale con una piccola variazione della copertura e della frequenza fissa alla frequenza ottimale.
    • optimized_mroi_by_frequency: il ROI marginale con una piccola variazione intorno alla frequenza ottimale e alla copertura fissa.
    • optimized_cpik: il CPIK in base alla frequenza ottimale.

Aumenti
NotFittedModelError Se sample_posterior() (per use_posterior=True) o sample_prior() (per use_posterior=False) non è stato chiamato prima di chiamare questo metodo.
ValueError Se non sono presenti canali con dati su copertura e frequenza.

predictive_accuracy

Visualizza codice sorgente

Calcola le metriche di approssimazione R-Squared, MAPE e wMAPE.

R-Squared, MAPE (errore percentuale medio assoluto) e wMAPE (errore percentuale assoluto ponderato) vengono calcolati sulla scala delle entrate (KPI * revenue_per_kpi) quando viene specificato revenue_per_kpi o sulla scala dei KPI quando viene specificato revenue_per_kpi = None. Si tratta della stessa scala utilizzata nel numeratore del ROI (risultato incrementale).

Gli errori di previsione in wMAPE vengono ponderati in base alle entrate effettive (KPI * revenue_per_kpi) quando è specificato revenue_per_kpi o in base alla scala del KPI quando è revenue_per_kpi = None. Ciò significa che la percentuale di errori quando le entrate sono elevate ha un peso maggiore rispetto agli errori quando le entrate sono basse.

R-Squared, MAPE e wMAPE vengono calcolati sia a livello di modello (una osservazione per località e periodo di tempo) sia a livello nazionale (aggregando KPI o risultati relativi alle entrate nelle varie località, in modo da avere un'osservazione per periodo di tempo).

R-Squared, MAPE e wMAPE vengono calcolati per il campione completo. Se l'oggetto del modello contiene osservazioni di esclusione, R-squared, MAPE e wMAPE vengono calcolati anche per i sottoinsiemi Train e Test.

Args
selected_geos Elenco facoltativo contenente un sottoinsieme di località da includere. Per impostazione predefinita, sono inclusi tutti i dati geografici.
selected_times Elenco facoltativo contenente un sottoinsieme di date da includere. Per impostazione predefinita, sono inclusi tutti i periodi di tempo.
batch_size Numero intero che rappresenta il numero massimo di estrazioni per catena in ogni batch. Per impostazione predefinita, batch_size è 100. Il calcolo viene eseguito in batch per evitare l'esaurimento della memoria. Se si verifica un errore di memoria, prova a ridurre batch_size. In genere, il calcolo sarà più rapido con valori batch_size più elevati.

Resi
Un set di dati xarray contenente i valori calcolati di R_Squared, MAPE e wMAPE, con coordinate metric, geo_granularity, evaluation_set e la variabile di dati aggiuntiva value. Se esiste holdout_id, i dati vengono suddivisi in sottosezioni 'Train', 'Test' e 'All Data' e le tre metriche vengono calcolate per ciascuna.

response_curves

Visualizza codice sorgente

Metodo per generare un xarray.Dataset di curve di risposta.

Le curve di risposta vengono calcolate a livello nazionale, assumendo il pattern di pubblicazione storico per aree geografiche e periodi di tempo per ogni canale media. Un elenco di moltiplicatori viene applicato alla spesa storica totale di ciascun canale media per ottenere il valore x-values in base al quale viene calcolata la curva di risposta del canale.

Args
spend_multipliers Elenco di moltiplicatori. La spesa totale di ogni canale viene moltiplicata per questi fattori per ottenere i valori in base ai quali viene calcolata la curva per quel canale.
use_posterior Booleano. Se True, vengono generate le curve di risposta posteriori. Se False, vengono generate curve di risposta precedenti.
selected_geos Elenco facoltativo contenente un sottoinsieme di località da includere. Per impostazione predefinita, sono inclusi tutti i dati geografici.
selected_times Elenco facoltativo contenente un sottoinsieme di dimensioni temporali da includere. Per impostazione predefinita, sono inclusi tutti i periodi di tempo. Le stringhe e gli interi della dimensione Tempo devono essere in linea con Meridian.n_times.
by_reach Booleano. Per i canali con copertura e frequenza. Se True, viene tracciata la curva di risposta in base alla copertura. Se False, traccia la curva di risposta in base alla frequenza.
use_optimal_frequency Se True, viene utilizzata la frequenza ottimale per tracciare le curve di risposta. Il valore predefinito è False.
confidence_level Livello di confidenza per gli intervalli di credibilità precedenti e posteriori, rappresentato come un valore compreso tra zero e uno.
batch_size Numero intero che rappresenta il numero massimo di estrazioni per catena in ogni batch. Il calcolo viene eseguito in batch per evitare l'esaurimento della memoria. Se si verifica un errore di memoria, prova a ridurre batch_size. Il calcolo sarà generalmente più rapido con valori di batch_size più grandi.

Resi
Un xarray.Dataset contenente i dati necessari per visualizzare le curve di risposta.

rhat_summary

Visualizza codice sorgente

Calcola un riepilogo dei valori di R-hat per ogni parametro del modello.

Riassume la potenziale riduzione della scala di Gelman e Rubin (1992) per la convergenza della catena, comunemente nota come R-hat. Si tratta di una misura di diagnostica della convergenza che misura il grado in cui la varianza (delle medie) tra le catene supera ciò che ti aspetteresti se le catene fossero distribuite in modo identico. I valori vicini a 1,0 indicano la convergenza. R-hat < 1,2 indica una convergenza approssimativa ed è una soglia ragionevole per molti problemi (Brooks e Gelman, 1998).

Riferimenti
Andrew Gelman e Donald B. Rubin. Interruzione della simulazione iterativa utilizzando più sequenze. Statistical Science, 7(4):457-472, 1992. Stephen P. Brooks e Andrew Gelman. Metodi generali per il monitoraggio della convergenza delle simulazioni iterative. Journal of Computational and Graphical Statistics, 7(4), 1998.

Args
bad_rhat_threshold La soglia per determinare quali valori di R-hat sono considerati errati.

Resi
Un DataFrame con le seguenti colonne:

  • n_params: il numero di rispettivi parametri nel modello.
  • avg_rhat: il valore medio di R-hat per il rispettivo parametro.
  • n_params: il numero di rispettivi parametri nel modello.
  • avg_rhat: il valore medio di R-hat per il rispettivo parametro.
  • max_rhat: il valore massimo di R-hat per il rispettivo parametro.
  • percent_bad_rhat: la percentuale di valori di R-hat per il rispettivo parametro superiori a bad_rhat_threshold.
  • row_idx_bad_rhat: gli indici di riga dei valori di R-hat superiori a bad_rhat_threshold.
  • col_idx_bad_rhat: gli indici di colonna dei valori R-hat superiori a bad_rhat_threshold.

Aumenti
NotFittedModelError Se self.sample_posterior() non viene chiamato prima di chiamare questo metodo.
ValueError Se il numero di dimensioni dell'array R-hat per un parametro non è 1 o 2.

roi

Visualizza codice sorgente

Calcola la distribuzione del ROI precedente o posteriore per ogni canale multimediale.

Il numeratore del ROI è la variazione del risultato previsto (kpi o kpi * revenue_per_kpi) quando la spesa di un canale viene impostata su zero, lasciando invariata la spesa di tutti gli altri canali. Il denominatore del ROI è la spesa totale del canale. Quando revenue_per_kpi non è disponibile, change_in_outcome / spend equivale a change_in_revenue / spend supponendo che revenue_per_kpi=1.

Args
use_posterior Booleano. Se True, viene calcolata la distribuzione a posteriori. In caso contrario, viene calcolata la distribuzione a priori.
new_media Facoltativo. Dati multimediali con la stessa forma di meridian.input_data.media. Utilizzato per calcolare il ROI per i dati media alternativi. Il valore predefinito è meridian.input_data.media.
new_media_spend Facoltativo. Dati di spesa pubblicitaria con la stessa forma di meridian.input_data.spend. Utilizzato per calcolare il ROI per i dati alternativimedia_spend. Il valore predefinito è meridian.input_data.media_spend.
new_reach Facoltativo. Raggiungi i dati con la stessa forma di meridian.input_data.reach. Utilizzato per calcolare il ROI per i dati sulla copertura alternativa. Il valore predefinito è meridian.input_data.reach.
new_frequency Facoltativo. Dati sulla frequenza con la stessa forma di meridian.input_data.frequency. Utilizzato per calcolare il ROI per i dati sulla frequenza alternativa. Il valore predefinito è meridian.input_data.frequency.
new_rf_spend Facoltativo. Dati di spesa RF con la stessa forma di meridian.input_data.rf_spend. Utilizzato per calcolare il ROI per i dati alternativirf_spend. Il valore predefinito è meridian.input_data.rf_spend.
selected_geos Elenco facoltativo contenente un sottoinsieme di località da includere. Per impostazione predefinita, sono inclusi tutti i dati geografici.
selected_times Elenco facoltativo contenente un sottoinsieme di orari da includere. Per impostazione predefinita, sono inclusi tutti i periodi di tempo.
aggregate_geos Booleano. Se True, le entrate previste vengono sommate su tutte le regioni.
aggregate_times Booleano. Se True, le entrate previste vengono sommate su tutti i periodi di tempo.
use_kpi Se True, le entrate vengono utilizzate per calcolare il numeratore del ROI. In caso contrario, utilizza il KPI per calcolare il numeratore del ROI.
batch_size Numero intero che rappresenta il numero massimo di estrazioni per catena in ogni batch. Il calcolo viene eseguito in batch per evitare l'esaurimento della memoria. Se si verifica un errore di memoria, prova a ridurre batch_size. Il calcolo sarà generalmente più rapido con valori di batch_size più elevati.

Resi
Tensore di valori ROI con dimensioni (n_chains, n_draws, n_geos, n_times, (n_media_channels + n_rf_channels)). Le dimensioni n_geos e n_times vengono eliminate se aggregate_geos=True o aggregate_times=True, rispettivamente.

summary_metrics

Visualizza codice sorgente

Restituisce le metriche di riepilogo.

Tieni presente che le metriche mroi e effectiveness non sono definite (math.nan) per la dimensione aggregata del canale "All Paid Channels".

Args
marginal_roi_by_reach Booleano. Il ROI marginale (mROI) è definito come il ritorno sull'euro speso successivo. Se questo argomento è True, si assume che il prossimo dollaro speso influisca solo sulla copertura, mantenendo costante la frequenza. Se questo argomento è False, si presume che l'euro speso successivo influisca solo sulla frequenza, mantenendo costante la copertura. Viene utilizzato solo quando include_non_paid_channels è False.
marginal_roi_incremental_increase Piccola frazione per cui la spesa di ciascun canale viene aumentata durante il calcolo del numeratore del ROI medio. Il dividendo del ROI in moneta è questa frazione della spesa totale del canale. Da utilizzare solo quando include_non_paid_channels è False.
selected_geos Elenco facoltativo contenente un sottoinsieme di località da includere. Per impostazione predefinita, sono inclusi tutti i dati geografici.
selected_times Elenco facoltativo contenente un sottoinsieme di orari da includere. Per impostazione predefinita, sono inclusi tutti i periodi di tempo.
aggregate_geos Booleano. Se True, il risultato previsto viene sommato su tutte le regioni.
aggregate_times Booleano. Se True, il risultato previsto viene sommato su tutti i periodi di tempo.
optimal_frequency Un elenco facoltativo con la dimensione n_rf_channels, contenente la frequenza ottimale per canale, che massimizza il ROI medio post-trattamento. Il valore predefinito è None e per il calcolo delle metriche viene utilizzata la frequenza storica.
use_kpi Booleano. Se True, le metriche di riepilogo vengono calcolate utilizzando il KPI. Se False, le metriche vengono calcolate utilizzando le entrate.
confidence_level Livello di confidenza per gli intervalli di attendibilità delle metriche di riepilogo, rappresentato come un valore compreso tra zero e uno.
batch_size Numero intero che rappresenta il numero massimo di estrazioni per catena in ogni batch. Il calcolo viene eseguito in batch per evitare l'esaurimento della memoria. Se si verifica un errore di memoria, prova a ridurre batch_size. Il calcolo sarà generalmente più rapido con valori di batch_size più grandi.
include_non_paid_channels Booleano. Se True, i canali non a pagamento (media organici, copertura e frequenza organiche e trattamenti non media) sono inclusi nel riepilogo, ma vengono riportate solo le metriche indipendenti dalla spesa. Se False, vengono inclusi solo i canali a pagamento (media, copertura e frequenza), ma il riepilogo contiene anche le metriche in base alla spesa. Valore predefinito: False.

Resi
Un xr.Dataset con coordinate: channel, metric (mean, median, ci_low, ci_high), distribution (precedente, successivo) e contenente le seguenti variabili di dati non a pagamento: incremental_outcome, pct_of_contribution, effectiveness e le seguenti variabili di dati a pagamento: impressions, pct_of_impressions, spend, pct_of_spend, CPM, roi, mroi, cpik. Le variabili di dati a pagamento vengono incluse solo quando include_non_paid_channels è False.