Conseguir a convergência de MCMC
A falta de convergência geralmente ocorre por um destes motivos:
- O modelo não foi especificado corretamente para os dados. Esse problema pode estar na probabilidade (especificação do modelo) ou na distribuição a priori.
-
Os argumentos
n_adapt + n_burnin
oun_keep
deMeridian.sample_posterior
não são grandes o suficiente.
Para ter a convergência das suas cadeias, siga as recomendações nesta ordem:
- Verifique se a capacidade de identificação é boa ou fraca fazendo estas perguntas:
-
Você tem variáveis
media
oucontrols
com alta multicolinearidade? -
A variação na variável
media
oucontrols
é tão pequena que é difícil estimar o efeito dela? -
Um dos itens de
media
oucontrols
tem alta correlação ou é perfeitamente colinear com o tempo? Para mais informações, consulte Quando usarknots < n_times
. -
Uma das variáveis
media
é muito esparsa? A esparsidade pode significar pouca execução em um canal, muitas regiões geográficas sem execução ou muitos períodos sem execução de mídia (principalmente se o número deknots
for próximo den_times
). - Reavalie as distribuições a priori. Distribuições pouco informativas costumam dificultar a convergência, mas aquelas altamente informativas também podem complicar a convergência em determinadas situações.
- Se o KPI for sua receita ou se você tiver dados de receita por KPI, considere as orientações em Calibragem e distribuições a priori de ROI para canais de mídia paga.
- Se você não tiver dados de receita, considere as orientações em Definir distribuições a priori personalizadas quando o resultado não for receita para canais de mídia paga. Reduzir a média de distribuições a priori e/ou o desvio padrão da contribuição total de mídia pode ajudar a alcançar um nível suficiente de regularização.
-
Ajuste as opções de modelagem. Em especial, tente diminuir o argumento
knots
deModelSpec
. Outras opções de modelagem a ajustar incluemunique_sigma_for_each_geo
oumedia_effects_dist
deModelSpec
. -
Verifique se há erros de dados, por exemplo, a ordem de
population
não corresponde à demedia
para regiões geográficas. O modelo do Meridian assume uma hierarquia geográfica nos efeitos de mídia e controle. Se essa premissa não corresponde aos seus dados, regularize definindo as distribuições a priori em parâmetros que medem a variância hierárquica (eta_m
exi_c
), por exemplo,HalfNormal(0.1)
. Você também pode desativar a premissa de hierarquia geográfica com uma distribuição a prioriDeterministic(0)
. - Analise se você tem dados suficientes. Para mais informações, consulte Quantidade de dados necessária.
Quando a distribuição a priori e a posteriori são iguais
Quando o modelo está tentando entender muitas variáveis, mais dados são necessários para compreender um variável específica. A MMM normalmente tenta fazer distribuições a priori de muitas variáveis sem muitos pontos de dados, principalmente em modelos nacionais. Então, às vezes há pouca informação nos dados para um canal de mídia específico. Essa situação fica ainda pior quando um determinado canal tem poucos gastos ou variância muito baixa ou alta correlação na execução de mídia ajustada entre os canais. Consulte Quantidade de dados necessária e Canais com poucos gastos para mais informações sobre o assunto.
Para que a distribuição a priori e a posteriori sejam diferentes, use cada vez mais distribuições a priori não informativas. A distribuição a priori representa a estimativa de um parâmetro antes de considerar os dados, e a distribuição a posteriori é a estimativa de um parâmetro depois de processar os dados. Então, quando há poucas informações, os dados antes e depois são semelhantes, ainda mais quando a distribuição a priori é relativamente informativa. Relativo se refere às informações na distribuição a priori em relação às informações nos dados. Isso significa que os dados vão sempre dominar a distribuição a priori se ela for suficientemente não informativa. No entanto, se ela for não informativa em relação aos dados, que também têm poucas informações, a distribuição a posteriori será bastante ampla, representando muita incerteza.
Para simplificar, pense na distribuição a priori definida para parâmetros como ROI. Se você definir distribuições a priori razoáveis em que acredita, a quantidade de informação relativa não é tão importante. Se houver pouca ou nenhuma informação nos dados, faz sentido, de uma perspectiva bayesiana, que as distribuições a priori e a posteriori sejam parecidas. Se houver muita informação, a distribuição a posteriori provavelmente mudará com base nos dados.
Canais com poucos gastos
Esses canais são mais suscetíveis a ter as distribuições a priori e a posteriori de ROI parecidas. Cada canal tem um intervalo de valores de ROI razoavelmente adequados aos dados. Se esse intervalo for amplo e abranger completamente a maior parte da massa de probabilidade a priori, as distribuições a priori e a posteriori serão parecidas. O intervalo de valores razoáveis de ROI em canais com poucos gastos tende a ser muito maior do que em canais com gastos altos, porque eles precisam de um ROI muito grande para influenciar a adequação do modelo. É mais provável que um intervalo grande de valores de ROI se ajuste razoavelmente bem aos dados.
Os efeitos de mídia são modelados com base na métrica de mídia fornecida, como impressões e cliques. Nem a escala da métrica de mídia nem o nível de gastos têm efeito na adequação do modelo ou no intervalo de resultados incrementais que podem ser atribuídos ao canal. O ROI é definido como resultados incrementais divididos pelo gasto. Portanto, quando o intervalo de valores razoáveis de resultados incrementais é convertido para um intervalo de ROI, um canal com gasto maior terá um intervalo menor de valores de ROI que se adaptam aos dados.
Observação: no caso de regressão dos mínimos quadrados ordinários, a escala das covariáveis não tem efeito na adequação. A escala é importante em uma configuração de regressão bayesiana quando as distribuições a priori são aplicadas aos coeficientes. No entanto, o Meridian aplica uma transformação de escalonamento a cada métrica de mídia. Aumentar as impressões de um canal usando um fator de 100, por exemplo, não afeta a adequação do modelo do Meridian.
Quando os resultados de ROI são muito diferentes dependendo da distribuição a priori usada
Os resultados podem ser muito diferentes dependendo da distribuição a priori usada, padrão ou beta,
afetando o ROI por estes motivos:
- Ao usar distribuições a priori, o ROI a posteriori de cada canal de mídia é regularizado com a mesma distribuição. Isso é bom porque todos os canais são tratados da mesma forma.
- Quando as distribuições a priori padrão nos coeficientes de mídia (beta) são usadas, o ROI a posteriori de cada canal de mídia é regularizado com diferentes distribuições. Isso acontece porque o escalonamento feito nos dados de mídia não é o mesmo usado em todos os canais. Então, o mesmo valor beta significa ROIs distintos para canais diferentes. As distribuições a priori em coeficientes de mídia também são não informativas em relação às distribuições a priori padrão de ROI para considerar diferenças potencialmente grandes no escalonamento dos dados de mídia em todos os canais.
- Quando há poucas informações nos dados, as distribuições a priori e a posteriori são parecidas, como mostrado em Quando a distribuição a priori e a posteriori são iguais. Quando há poucas informações nos dados e são usadas distribuições a priori beta, os ROIs a posteriori são diferentes nos canais de mídia. No entanto, essa diferença resulta de distribuições a priori desiguais nos canais de mídia, não dos dados. Em resumo, é importante não interpretar resultados diferentes de ROI nos canais como consequência de indicadores dos dados, quando a diferença é motivada apenas por distribuições a priori desiguais.
"ResourceExhaustedError" ao executar Meridian.sample_posterior
Meridian.sample_posterior
chama tfp.experimental.mcmc.windowed_adaptive_nuts
, que pode exigir muita memória em GPUs ao criar amostras de um grande número de cadeias em paralelo ou ao treinar com conjuntos grandes de dados.
Uma maneira de reduzir o pico de consumo de memória da GPU é criar amostras de cadeias em série. Para isso, transmita uma lista de números inteiros para n_chains
. Por exemplo, n_chains=[5, 5]
vai criar amostras de um total de 10 cadeias chamando tfp.experimental.mcmc.windowed_adaptive_nuts
consecutivamente, cada vez com o argumento n_chains=5
.
Saiba que isso prejudica o tempo de execução. Como esse método reduz o consumo de memória usando chamadas consecutivas para nosso método de amostragem de MCMC, o tempo de execução total vai aumentar linearmente com o tamanho da lista transmitida para n_chains
. Por exemplo, executar n_chains=[5,5]
pode demorar até duas vezes mais do que n_chains=10
, e n_chains=[4,3,3]
pode demorar até três vezes mais.
A contribuição de mídia orgânica é muito alta
Se a contribuição de mídia orgânica for maior do que o esperado, a distribuição a priori usada pode não ser adequada. A mídia orgânica não tem um ROI definido e, por isso, usa a parametrização do coeficiente de regressão com a distribuição a priori de coeficiente (beta_om
ou beta_orf
). Se a contribuição para a mídia orgânica for maior do que o esperado, sugerimos que você revise as distribuições a priori usadas para os canais de mídia orgânica. Por padrão, as distribuições a priori presumidas não são muito informativas, mas supõem um efeito positivo que pode resultar em uma média de distribuição alta. Quando há poucas informações nos dados, isso também pode levar a uma média de distribuição a priori alta. Se isso for um problema, considere usar uma distribuição a priori alternativa com mais massa na extremidade inferior do intervalo da distribuição. Além disso, quando media_effects_dist = 'log_normal'
, $\beta_i^{[OM]}$ é a média da distribuição a priori do registro do efeito de mídia no nível geográfico, $\log(\beta_{g,i}^{[OM]})$. A distribuição a priori padrão, HalfNormal(5.0)
, nesse caso, pode estar considerando muita massa de distribuição a priori longe de zero. Isso é exacerbado quando se trata de exponenciação, e é recomendável considerar um valor anterior com mais massa próxima de zero, como uma distribuição a priori de HalfNormal(0.1)
. Embora a variância seja pequena, ela ainda oferece uma ampla gama de valores possíveis na escala exponencial. Como alternativa, para mais flexibilidade, você pode considerar uma distribuição a priori normal que permita definir a localização e a escala, por exemplo, Normal(0.0, 3.0)
. Da mesma forma, quando media_effects_dist = 'normal'
, considere usar uma distribuição a priori com uma escala menor do que a padrão, como HalfNormal(1.0)
.
Erro sobre controles que não variam entre grupos ou regiões geográficas
Esse erro indica que existe uma variável nacional que não muda entre as regiões e indica também que você definiu "knots = n_times". Com "knots = n_times", cada período recebe o próprio parâmetro. Uma variável nacional muda apenas com o tempo, não por região. Então, ela é perfeitamente colinear com o tempo e redundante em um modelo que tem um parâmetro para cada período. Ou seja, você pode manter a variável nacional ou definir "knots < n_times". A variável escolhida depende das suas metas de interpretação.
R ao quadrado negativo
O R ao quadrado pode ser negativo no conjunto de treinamento ou de teste pelos seguintes motivos:
- A combinação de distribuições a priori fortes e dados com sinal fraco (ou seja, baixa proporção de sinal-ruído) pode resultar em distribuições a posteriori que são extraídas significativamente pelas distribuições a priori. Isso pode levar ao ajuste do modelo do Meridian no conjunto de treinamento em que a soma dos quadrados dos erros (SSE, na sigla em inglês) é maior que a soma total dos quadrados (SST, na sigla em inglês), resultando em um R ao quadrado negativo. Para mais informações, consulte Gelman et. al. (2018).
- O R ao quadrado negativo no conjunto de teste ocorre quando o modelo se ajusta aos dados de treinamento, mas não consegue generalizar para o conjunto de teste. Isso pode acontecer com qualquer modelo. No Meridian, esse problema vai surgir se os dados de validação forem especificados como os últimos N pontos de tempo contíguos. Para mais informações, consulte as observações de validação.
- O R ao quadrado negativo pode ser causado por erros de entrada de dados. Em particular, as populações geográficas incorretas podem ter um grande efeito porque o R ao quadrado é medido na escala de KPI bruto, mas a modelagem é feita na escala per capita. Outro erro de entrada comum é o dimensionamento duplo da população do KPI. Isso ocorre quando o KPI é pré-dimensionado antes de ser inserido no Meridian, que dimensiona automaticamente o KPI per capita pela segunda vez.