maskinintelligens.se

Verktygslåda / statsmodels

statsmodels

statsmodels är Pythons bibliotek för klassisk statistisk modellering. Det ger GLM, tidsseriemodeller och hypotestester med utskrifter som redovisar standardfel, konfidensintervall och diagnostik. Det är sådant maskininlärningsbibliotek medvetet utelämnar.

Python

scikit-learn ger en .predict(). statsmodels ger en tabell med koefficienter, standardfel, p-värden och diagnostik.

Skillnaden speglar två olika syften. Det ena vill förutsäga, det andra vill förstå. I uppdrag som handlar om elasticitet, effektstorlekar eller beslutsunderlag är det senare oftare det som efterfrågas.

Vad som används mest

GLM med alla vanliga utfallsfördelningar: Poisson, negativ binomial, gamma, binomial. Se GLM för när vilken passar. Formelgränssnittet gör det snabbt att pröva specifikationer.

Tidsseriemodeller: ARIMA, SARIMAX och exponentiell utjämning. Fortfarande starka baslinjer, och ofta svåra att slå med mer avancerade metoder på korta serier.

Robusta standardfel. När observationerna är grupperade — flera veckor per butik — är vanliga standardfel för optimistiska. Klustrade standardfel finns som en parameter. Det är en av de vanligaste rättelserna jag gör vid granskning.

Var det passar bäst

Som första modell, nästan alltid. En GLM i statsmodels tar tio minuter och avslöjar det mesta: vilka variabler som bär signal, om sambanden ser rimliga ut, och vilken storleksordning effekterna har.

Ofta räcker den. När den inte gör det vet man åtminstone vad gradient boosting ska slå. Det är en baslinje värd att ha.

Begränsningar

Långsamt på mycket stora datamängder, och gränssnittet är inte lika enhetligt som scikit-learns.

Behövs full osäkerhetsfortplantning genom flera beräkningssteg är PyMC rätt verktyg. statsmodels ger konfidensintervall för koefficienterna, inte en posteriorfördelning att räkna vidare med.