Retail e beni di consumoBI, AI e ML per l'azienda
Test A/B con il suo p-value
Una pagina converte più dell'altra, ma la differenza può essere solo il caso. In Muvia un test statistico scritto in Python si ricalcola ogni mattina sui dati cumulati, Analisi mostra quando la differenza diventa significativa e Athena scrive la conclusione in un notebook.
Scenario illustrativo: descrive un caso tipo, non il progetto di un cliente.
B converte di più. È vero, o è il caso?
Il team ha messo online una seconda versione della pagina e diviso il traffico a metà. Dopo qualche giorno B è avanti e qualcuno vuole già adottarla; qualche giorno dopo è indietro. Guardare il tasso di conversione ogni mattina e decidere a sensazione è il modo più rapido per scegliere la pagina sbagliata.
Serve un test statistico rifatto sui dati cumulati, con l'intervallo di confidenza accanto alla differenza, e una regola chiara su quando la differenza è abbastanza solida da decidere.
- Per chi
- Responsabili e-commerce e prodotto, marketing, analisti che progettano gli esperimenti.
In Muvia, passo per passo
Schermate vere del prodotto, registrate su un progetto con dati di esempio.
Il video · Una pagina converte più dell'altra, ma la differenza può essere solo il caso. In Muvia un test statistico scritto in Python si ricalcola ogni mattina sui dati cumulati, Analisi mostra quando la differenza diventa significativa e Athena scrive la conclusione in un notebook.
Cosa ottieni
- Decisioni con i numeri
- Una pagina si adotta quando la differenza è significativa, non quando sembra avanti da qualche giorno.
- L'incertezza scritta accanto
- Differenza, intervallo di confidenza e p-value stanno nella stessa riga, aggiornati ogni mattina.
- Il test si rifà da solo
- Il flusso ricalcola l'esito sui dati cumulati ogni giorno, senza che nessuno riapra un foglio di calcolo.
- Una conclusione da condividere
- Il notebook con risultati e decisione è scritto da Athena e legge sempre l'ultimo esito.
Per il team tecnico
Come si costruisce in Muvia
- 1
Raccogli visite e conversioni
Le sorgenti portano visite, conversioni e ricavi per variante ora per ora; una query li mette in una serie per l'esperimento.
- 2
Scrivi il test in Python
Una funzione Python fa il test z a due proporzioni sui dati cumulati: i tassi delle due varianti, la differenza in punti con l'intervallo al 95% e il p-value. Il livello di significatività è un parametro.
- 3
Programma il test
Un flusso lo esegue ogni mattina alle 7 e scrive l'esito in una tabella gestita, una riga per giorno.
- 4
Segui l'esperimento in Analisi
I tassi delle due pagine e il p-value stanno uno sopra l'altro nel tempo: si vede il giorno in cui la curva scende sotto la soglia e ci resta.
- 5
Fai scrivere la conclusione ad Athena
Con una domanda Athena salva nel Laboratorio la query di confronto e crea un notebook con la tabella dei risultati e la decisione.
Funzione Python
import numpy as np
import pandas as pd
from scipy.stats import norm
def transform(inputs, params, ctx):
d = inputs["rows"].copy()
d["giorno"] = pd.to_datetime(d["ora"]).dt.floor("D")
g = d.pivot_table(index="giorno", columns="variante",
values=["visite", "conversioni"], aggfunc="sum").cumsum()
va, vb = g["visite"]["A"], g["visite"]["B"]
ca, cb = g["conversioni"]["A"], g["conversioni"]["B"]
pa, pb = ca / va, cb / vb
p = (ca + cb) / (va + vb)
z = (pb - pa) / np.sqrt(p * (1 - p) * (1 / va + 1 / vb))
se = np.sqrt(pa * (1 - pa) / va + pb * (1 - pb) / vb)
out = pd.DataFrame({
"tasso_a": 100 * pa, "tasso_b": 100 * pb,
"differenza_pp": 100 * (pb - pa),
"ic_inferiore_pp": 100 * (pb - pa - params["z_critico"] * se),
"ic_superiore_pp": 100 * (pb - pa + params["z_critico"] * se),
"p_value": 2 * norm.sf(np.abs(z)),
}).round(4).reset_index()
out["significativo"] = (out["p_value"] < params["alfa"]).astype(int)
return {"rows": out}- I dati che servono
- Visite e conversioni orarie per variante, lette da un'API REST
- Ordini e ricavi per variante, dal database del negozio online su PostgreSQL
- Registro degli esperimenti con varianti, date e ipotesi, da Google Sheets
- Le parti di Muvia usate
Altri casi della stessa linea
Tutti i casi d'uso- Le vendite di tutti i negozi in una paginaVendite di cassa, ordini e anagrafiche dei negozi stanno in sistemi diversi, e il quadro della rete arriva a fine mese. In Muvia ricavi, crescita, pezzi e clienti di tutti i negozi stanno in un solo cruscotto, settimana per settimana, dal totale fino al singolo reparto.
- Comprati insieme: l'analisi del carrelloGli scontrini dicono quali prodotti si comprano insieme, ma restano nel sistema di cassa. In Muvia una funzione Python calcola ogni notte supporto, confidenza e lift di ogni coppia, e il cruscotto dice cosa farne: promo abbinate, prodotti vicini a scaffale, proposte in cassa.
- Elasticità al prezzo e proposta di listinoUn aumento di prezzo può far perdere un pezzo su tre o quasi nulla, e la differenza si scopre a cose fatte. In Muvia un modello scritto dal team stima ogni settimana l'elasticità di ogni articolo e prepara la proposta di listino: cosa aumentare, cosa ridurre, quanto margine rende.
Portaci una domanda a cui oggi non sai rispondere.
Partiamo da una domanda vera della tua azienda e ti mostriamo il percorso dalla fonte al cruscotto, con i tuoi sistemi e non con quelli di una demo.