PyMC gör samma sak som Stan men utan att lämna Python. Modellen skrivs som kod i samma fil som databearbetningen. I praktiken betyder det att man vågar iterera mer.
Varför det oftast blir PyMC
Kortare väg från idé till körning. Ingen separat modellfil, ingen kompilering att vänta på. Det låter en pröva tre modellstrukturer på en förmiddag i stället för en.
Ekosystemet. ArviZ för diagnostik och visualisering, Bambi för snabba formelbaserade modeller, och PyMC-Marketing för kundvärde och marknadsmix. Delarna hänger ihop.
Läsbarhet för den som tar över. En kund vars team kan Python kan förvalta en PyMC-modell. En Stan-modell kräver att någon lär sig ett språk till. Då blir modellen i praktiken ofta min och inte deras.
Det sista väger tyngre än det låter. Ett uppdrag är lyckat när kunden kan ändra i modellen utan mig.
Var det används i uppdrag
Hierarkiskt livstidsvärde där segment lånar styrka av varandra.
Elasticitetsskattning i långsvansen, där de flesta artiklar har för få prisförändringar för en egen skattning.
Marketing mix modeling, där priors är nödvändiga för att hålla skattningarna rimliga när historiken är kort och kanalerna samvarierar.
Riskmodeller där hela fördelningen behövs, inte bara väntevärdet.
Vad man behöver veta
Modellerna tar tid att skatta. En hierarkisk modell på hundratusen observationer kan ta tiotals minuter. Det är oproblematiskt för veckovis batch och olämpligt för realtidsprediktion.
Lösningen i drift är oftast att skatta modellen sällan och tillämpa den ofta: parametrarna uppdateras varje vecka, prediktionerna beräknas när de behövs.
Diagnostiken går inte att ignorera. Divergerande övergångar och låg effektiv stickprovsstorlek är signaler om att modellen är felformulerad, inte varningar att stänga av. Att lära sig läsa dem är en del av att använda verktyget.