O valor de referência é o resultado esperado no cenário contrafactual em que todas as variáveis de tratamento são definidas como os respectivos valores de referência. Para mídia paga e orgânica, os valores de referência são zero. Para variáveis de tratamento não relacionadas à mídia, o valor de referência pode ser definido como o valor mínimo observado da variável (padrão), o máximo ou um ponto flutuante fornecido pelo usuário. A estimativa do valor de referência permite entender o que teria acontecido se a pessoa não tivesse interagido com mídia paga, orgânica ou outros tratamentos não relacionados à mídia. Ela é necessária para a inferência causal dos tratamentos. Portanto, é importante avaliar o valor de referência.
Avaliar a negatividade do valor de referência
O resultado (receita ou KPI, consulte o glossário) não pode ser negativo. Portanto, um valor de referência negativo indica erro estatístico na inferência causal dos efeitos do tratamento. Como todos os modelos estatísticos, esperamos algum erro no Meridian. No entanto, um valor de referência extremamente negativo indica um erro extremo.
Um resultado de modelo com um valor de referência extremamente negativo revela que o modelo precisa de ajustes: as configurações do modelo, os dados usados para ajustá-lo ou os valores a priori precisam ser corrigidos (consulte Mitigar valores de referência negativos ou baixos). Isso exige um processo de desenvolvimento de modelo mais completo e iterativo, o que gera um modelo mais preciso, confiável e útil.
O Meridian é um modelo estatístico e probabilístico. Aproveite para avaliar negatividade do valor de referência de forma probabilística. Especificamente, considere a probabilidade a posteriori de que o valor de referência agregado em toda a janela de tempo seja negativo. Se essa probabilidade for muito alta, o resultado do modelo poderá ter um grande erro estatístico. É possível calcular essa probabilidade com o seguinte:
from meridian.analysis import analyzer
from meridian.model import model
import numpy as np
mmm = model.Meridian(...)
mmm.sample_posterior(...)
a = analyzer.Analyzer(mmm)
posterior_baseline_draws = a._calculate_baseline_expected_outcome()
posterior_negative_baseline_prob = np.mean(posterior_baseline_draws < 0)
Como alternativa, é possível examinar a estimativa pontual do valor de referência agregado em toda a janela de tempo, como nos Gráficos de contribuição do canal. No entanto, lembre-se de que o Meridian é um modelo estatístico e probabilístico, e uma estimativa pontual pode ter uma incerteza significativa. Uma estimativa pontual de valor de referência negativo não indica necessariamente um viés do modelo. Ela indica um erro, que pode ser causado por viés ou variância (consulte Decomposição de viés-variância do erro quadrático médio). Isso é especialmente verdadeiro quando os dados contêm informações limitadas (consulte Quantidade de dados necessários).
Não recomendamos dar ênfase excessiva a uma série temporal de valores de referência, como a dos Gráficos de ajuste do modelo, que às vezes cai para valores negativos. Uma queda ocasional, especialmente pequena, indica um erro menor, que é inerente a qualquer modelo estatístico.
Valor de referência negativo versus porcentagem de contribuição
Há uma diferença sutil entre "a contribuição total exceder 100% do resultado observado" (que ocorre se o resultado incremental ultrapassar o resultado observado) e "valor de referência negativo" (que ocorre se o resultado incremental exceder o resultado esperado). A distribuição a posteriori do resultado esperado total geralmente é feita de forma muito próxima à do resultado observado total, mas a distribuição a priori do resultado esperado normalmente tem uma variância grande e não está centrada no resultado observado. Consequentemente, não faz muito sentido avaliar a probabilidade a priori de valores de referência negativos, por isso recomendamos avaliar a probabilidade de que a contribuição exceda 100% do resultado observado.
Além disso, o resultado esperado total pode ser diferente do resultado observado total se o modelo usar valores de revenue_per_kpi
com variância alta.
Normalmente, o KPI esperado total é muito próximo do KPI observado total, mas uma alta variação em revenue_per_kpi
pode criar uma discrepância entre o resultado esperado total e o resultado observado total.
Mitigar valores de referência negativos ou baixos
Primeiro, calcule a probabilidade a priori de que a contribuição total do tratamento exceda 100% do resultado observado total:
from meridian.model import model
from meridian.analyzer import analyzer
import numpy as np
mmm = model.Meridian(...)
mmm.sample_prior(1000)
a = analyzer.Analyzer(mmm)
outcome = mmm.kpi
if mmm.revenue_per_kpi is not None:
outcome *= mmm.revenue_per_kpi
total_outcome = np.sum(outcome)
prior_contribution = a.incremental_outcome(use_posterior=False) / total_outcome
total_prior_contribution = np.sum(prior_contribution, -1)
np.mean(total_prior_contribution > 1, (0, 1))
Na próxima etapa, calcule a probabilidade a priori de que a contribuição de cada tratamento exceda 100%.
np.mean(prior_contribution > 1, (0, 1))
Se essas probabilidades a priori forem muito altas, principalmente quando os dados contiverem informações limitadas (consulte Quando a distribuição a posteriori for igual à anterior), um problema de valor de referência negativo poderá surgir. Considere estes ajustes na distribuição a priori e reavalie as distribuições a priori personalizadas usando as verificações descritas anteriormente:
- Um valor de referência negativo é equivalente aos efeitos do tratamento receberem muito crédito. Para mitigar esse problema, defina distribuições a priori personalizadas para os efeitos do tratamento (consulte Como escolher tipos de distribuições a priori de tratamento) que reduzam a probabilidade a priori de que a contribuição total do tratamento exceda 100% do resultado total observado. Especificamente, um tipo de distribuição a priori personalizada
contribution
pode ser adequado. - Um canal com gastos e ROI altos pode sugerir que ele gera mais de 100% do resultado, apresentando um valor de referência negativo. Por exemplo, se o resultado for a receita, e o gasto de um canal for 20% do total da receita, um ROI de 5,0 indicaria que o canal gera 100% da receita (ou seja, a contribuição do canal é de 100%). O ROI real provavelmente é muito menor do que 5,0, e definir uma distribuição a priori de ROI para refletir isso pode ajudar a evitar um valor de referência negativo. Como regra geral, a distribuição a priori de ROI do 90º percentil de um canal não pode sugerir que a contribuição dele seja superior a 100%.
- Se a mídia paga estiver recebendo muito crédito, considere definir a distribuição a priori do ROI em termos de contribuição total da mídia para que essa contribuição tenha baixa probabilidade de ser maior que 100%. Para mais informações, consulte Definir a distribuição a priori da contribuição total de mídia.
Além de ajustar a distribuição a priori, há algumas outras causas possíveis a serem investigadas:
- O modelo não tem controles suficientes de alta qualidade que afetam a execução da mídia e a resposta. Adicione mais controles significativos ou de escalonamento de população, quando apropriado, como o volume de consultas. O Meridian não dimensiona variáveis de controle pela população por padrão. Para dimensionar variáveis de controle pela população, use
control_population_scaling_id
emModelSpec
. - O modelo não explica suficientemente os efeitos do tempo. Considere aumentar
knots
ou selecionar locais de nó mais adequados.
Avaliar a tendência e a sazonalidade do valor de referência
Avalie se a série temporal do valor de referência, como a mostrada nos Gráficos de ajuste do modelo, corresponde à tendência e à sazonalidade esperadas da demanda do valor de referência. Se o valor de referência não conseguir capturar a tendência ou a sazonalidade durante os períodos esperados, considere selecionar mais nós nesses períodos. Para isso. é possível definir knots
como uma lista, que especifica os locais dos nós. Além disso, considere variáveis de controle que possam explicar a tendência ou a sazonalidade na demanda do valor de referência (consulte Variáveis de controle).