Segnalibri    
Due eventi    
Valore atteso    
nPr e nCr    
Calcolo media    
Dev. standard    
Prob. normale    
Punteggio z    
Dim. campione    
Percentuali    
Variazione %    
Differenza %    
Errore %    
Proporzioni    
Calcolo IVA    
Densità    
Molarità    
Massa molare    
Legge di Ohm    
Watt e ampere    
Codice colori    
Taglie scarpe    
Calcolo mcm    
Calcolo MCD    
Fattori primi    
Numeri romani    
Frazioni    
Numeri misti    
Secondo grado    
Disequazioni    
Radicali    
Radici    
Potenze    
Logaritmi    
Emivita    
De Moivre    
Distanza 3D    
Punto-retta    
Circonferenza    
Coniche    
Fibonacci    
Determinante    
Sin Cos Tan    
Triangolo    
Similitudine    
Cerchio    
Area ellisse    
Area cilindro    
Volume sfera    
Area sfera    
Area calotta    
Area piramide    
Calcolo età    
Aggiungi ore    
Ore e minuti    
Fusi orari    
Ore lavorate    
Cartellino    
Valore futuro    
Calcolo ROI    
Calcolo TIR    
Payback    
Calcolo PIL    
Churn rate    
Test A/B    
Traffico SEO    
Calcolo BMI    
Calcolo TDEE    
Peso ideale    
Massa grassa    
Massa magra    
Calcolo macro    
Carboidrati    
Handicap golf    
Calcolo passo    
Calcolo 1RM    
Wind chill    
Da kWh a euro    
BTU e kW    
Costo clima    
Costo calore    
Gas o luce    
Risparmio LED    
RAL e paga    
EV o benzina    
Consumo reale    
Batteria casa    
Piastrelle    
Calcolo scale    
Calcestruzzo    
Area facciata    
Isolante    
Misure tende    
TV e distanza    
Deck in legno    
Preforo viti    
Battiscopa    
Misure tenda    
Litri e libri    
   Aggiungi
Probabilità e numeri casuali: calcolatrici
Due eventi
Due eventi
Calcolo inverso
Calcolo inverso
Prove ripetute
Prove ripetute
Teorema di Bayes
Teorema di Bayes
Valore atteso
Valore atteso
Distr. binomiale
Distr. binomiale
nPr e nCr
nPr e nCr
Perm. circolari
Perm. circolari
Con ripetizione
Con ripetizione
Numeri casuali
Numeri casuali
Medie e statistica: calcolatrici
Calcolo media
Calcolo media
Moda e mediana
Moda e mediana
Dev. standard
Dev. standard
Quartili e IQR
Quartili e IQR
Tab. frequenze
Tab. frequenze
Correlazione r
Correlazione r
Prob. normale
Prob. normale
Punteggio z
Punteggio z
Int. confidenza
Int. confidenza
Dim. campione
Dim. campione
Stima campione
Stima campione
Calcolo p-value
Calcolo p-value
Percentuali e proporzioni: calcolatrici
Percentuali
Percentuali
Variazione %
Variazione %
Differenza %
Differenza %
Errore %
Errore %
Proporzioni
Proporzioni
Calcolo sconto
Calcolo sconto
Calcolo IVA
Calcolo IVA
Calcolo margine
Calcolo margine
Velocità: calcolatrici
Calcolo velocità
Calcolo velocità
Densità e concentrazione: calcolatrici
Densità
Densità
Molarità
Molarità
Massa molare
Massa molare
Fisica ed elettricità: calcolatrici
Legge di Ohm
Legge di Ohm
Watt e ampere
Watt e ampere
Codice colori
Codice colori
Caduta di tensione
Caduta di tensione
Conversione di unità: calcolatrici
Unità di peso
Unità di peso
Taglie scarpe
Taglie scarpe
Numeri interi e relativi: calcolatrici
Divisione in colonna
Divisione in colonna
Calcolo mcm
Calcolo mcm
Calcolo MCD
Calcolo MCD
Numeri relativi
Numeri relativi
Fattori primi
Fattori primi
Diofantee lineari
Diofantee lineari
Resto e modulo
Resto e modulo
Tutti i divisori
Tutti i divisori
Numeri romani
Numeri romani
Frazioni, decimali e arrotondamenti: calcolatrici
Frazioni
Frazioni
Numeri misti
Numeri misti
Semplifica frazioni
Semplifica frazioni
Frazione in decimale
Frazione in decimale
Decimale in frazione
Decimale in frazione
Arrotondamento
Arrotondamento
Equazioni e disequazioni: calcolatrici
Equazioni lineari
Equazioni lineari
Sistemi lineari
Sistemi lineari
Secondo grado
Secondo grado
Valore assoluto
Valore assoluto
Disequazioni
Disequazioni
Polinomi: calcolatrici
Binomio di Newton
Binomio di Newton
Radici quadrate e radici n-esime: calcolatrici
Radicali
Radicali
Radici
Radici
Potenze e logaritmi: calcolatrici
Potenze
Potenze
Logaritmi
Logaritmi
Numero di cifre
Numero di cifre
Notazione scientifica
Notazione scientifica
Calcoli con ×10ⁿ
Calcoli con ×10ⁿ
Emivita
Emivita
Numeri complessi: calcolatrici
Numeri complessi
Numeri complessi
Forma trigonometrica
Forma trigonometrica
De Moivre
De Moivre
Funzioni e grafici: calcolatrici
Coefficiente angolare
Coefficiente angolare
Funzione lineare
Funzione lineare
Proporzionalità
Proporzionalità
Funzione y=ax²
Funzione y=ax²
Distanza punti
Distanza punti
Distanza 3D
Distanza 3D
Punto di divisione
Punto di divisione
Punto-retta
Punto-retta
Distanza lat/lon
Distanza lat/lon
Completa il quadrato
Completa il quadrato
Circonferenza
Circonferenza
Coniche
Coniche
Coordinate polari
Coordinate polari
Successioni: calcolatrici
Progr. aritmetica
Progr. aritmetica
Progr. geometrica
Progr. geometrica
Fibonacci
Fibonacci
Relazione di ricorrenza
Relazione di ricorrenza
Vettori: calcolatrici
Calcolo vettori
Calcolo vettori
Prodotto vettoriale
Prodotto vettoriale
Matrici: calcolatrici
Calcolo matrici
Calcolo matrici
Determinante
Determinante
Matrice inversa
Matrice inversa
Geometria piana: calcolatrici
Sin Cos Tan
Sin Cos Tan
Gradi ⇔ radianti
Gradi ⇔ radianti
a sen θ + b cos θ
a sen θ + b cos θ
Triangolo
Triangolo
Area del triangolo
Area del triangolo
Triangolo rettangolo
Triangolo rettangolo
Teorema di Pitagora
Teorema di Pitagora
Angoli poligoni
Angoli poligoni
Similitudine
Similitudine
Rette parallele
Rette parallele
Area rettangolo
Area rettangolo
Parallelogramma
Parallelogramma
Area del trapezio
Area del trapezio
Cerchio
Cerchio
Settore circolare
Settore circolare
Angolo inscritto
Angolo inscritto
Area ellisse
Area ellisse
Geometria solida: calcolatrici
Volume del cubo
Volume del cubo
Superficie cubo
Superficie cubo
Parallelepipedo
Parallelepipedo
Superficie solido
Superficie solido
Volume cilindro
Volume cilindro
Area cilindro
Area cilindro
Volume sfera
Volume sfera
Area sfera
Area sfera
Volume calotta
Volume calotta
Area calotta
Area calotta
Volume ellissoide
Volume ellissoide
Area ellissoide
Area ellissoide
Volume piramide
Volume piramide
Area piramide
Area piramide
Volume del cono
Volume del cono
Superficie cono
Superficie cono
Tronco di cono
Tronco di cono
Superficie tronco
Superficie tronco
Volume del tubo
Volume del tubo
Volume capsula
Volume capsula
Superficie capsula
Superficie capsula
Date e ore: calcolatrici
Calcolo età
Calcolo età
Giorni tra date
Giorni tra date
Calcolo della data
Calcolo della data
Aggiungi ore
Aggiungi ore
Che giorno era
Che giorno era
Ore e minuti
Ore e minuti
Fusi orari
Fusi orari
Ore lavorate
Ore lavorate
Tempo trascorso
Tempo trascorso
Cartellino
Cartellino
Finanza ed economia: calcolatrici
Interesse composto
Interesse composto
Interesse semplice
Interesse semplice
Calcolo interessi
Calcolo interessi
Calcolatrice TVM
Calcolatrice TVM
Valore attuale
Valore attuale
Valore futuro
Valore futuro
Calcolo ROI
Calcolo ROI
Calcolo TIR
Calcolo TIR
Payback
Payback
Rendimento medio
Rendimento medio
Calcolo PIL
Calcolo PIL
Marketing online e metriche pubblicitarie: calcolatrici
Calcolatrice CTR
Calcolatrice CTR
Conversion rate
Conversion rate
CPC, CPM e CPA
CPC, CPM e CPA
Calcolatrice ROAS
Calcolatrice ROAS
CPA di pareggio
CPA di pareggio
Calcolatrice LTV
Calcolatrice LTV
Calcolatrice CAC
Calcolatrice CAC
Churn rate
Churn rate
Test A/B
Test A/B
Numerosità A/B
Numerosità A/B
Traffico SEO
Traffico SEO
Punto di pareggio
Punto di pareggio
Ricarico e margine
Ricarico e margine
Calcolatrice CAGR
Calcolatrice CAGR
Salute e forma fisica: calcolatrici
Calcolo BMI
Calcolo BMI
Cicli del sonno
Cicli del sonno
Calorie al giorno
Calorie al giorno
Metabolismo basale
Metabolismo basale
Calcolo TDEE
Calcolo TDEE
Peso ideale
Peso ideale
Massa grassa
Massa grassa
Massa magra
Massa magra
Calorie bruciate
Calorie bruciate
Proteine al giorno
Proteine al giorno
Calcolo macro
Calcolo macro
Carboidrati
Carboidrati
Grassi al giorno
Grassi al giorno
Altezza dei figli
Altezza dei figli
Sport: calcolatrici
Handicap golf
Handicap golf
Calcolo passo
Calcolo passo
Calcolo 1RM
Calcolo 1RM
Frequenza target
Frequenza target
Meteorologia: calcolatrici
Indice di calore
Indice di calore
Wind chill
Wind chill
Punto di rugiada
Punto di rugiada
Informatica: calcolatrici
Basi numeriche
Basi numeriche
Calcolo subnet
Calcolo subnet
Tempo di download
Tempo di download
Energia domestica e budget: calcolatrici
Consumo e costo
Consumo e costo
Da kWh a euro
Da kWh a euro
Da kWh/anno a euro
Da kWh/anno a euro
BTU e kW
BTU e kW
Costo clima
Costo clima
Costo calore
Costo calore
Gas o luce
Gas o luce
Risparmio LED
Risparmio LED
RAL e paga
RAL e paga
Budget mensile
Budget mensile
Auto: calcolatrici
Costo carburante
Costo carburante
Costo ricarica
Costo ricarica
EV o benzina
EV o benzina
Consumo reale
Consumo reale
Misura pneumatici
Misura pneumatici
Energia solare e accumulo: calcolatrici
Produzione solare
Produzione solare
Numero di pannelli
Numero di pannelli
Ritorno solare
Ritorno solare
Batteria casa
Batteria casa
Casa e fai da te: calcolatrici
Piastrelle
Piastrelle
Calcolo scale
Calcolo scale
Calcestruzzo
Calcestruzzo
Superficie pareti
Superficie pareti
Carta da parati
Carta da parati
Pittura necessaria
Pittura necessaria
Doghe pavimento
Doghe pavimento
Area facciata
Area facciata
Calcolo ghiaia
Calcolo ghiaia
Dosaggio malta
Dosaggio malta
Calcolo pendenza
Calcolo pendenza
Taglio legname
Taglio legname
Edificabilità
Edificabilità
Pavimenti in rotolo
Pavimenti in rotolo
Isolante
Isolante
Misure tende
Misure tende
TV e distanza
TV e distanza
Terra e terriccio
Terra e terriccio
Prato in rotoli
Prato in rotoli
Muro in blocchi
Muro in blocchi
Calcolo mattoni
Calcolo mattoni
Deck in legno
Deck in legno
Lunghezza rampa
Lunghezza rampa
Preforo viti
Preforo viti
Ricambi d’aria
Ricambi d’aria
Diluizione pittura
Diluizione pittura
Battiscopa
Battiscopa
Misure tenda
Misure tenda
Appendere quadri
Appendere quadri
Pendenza scarico
Pendenza scarico
Viti cartongesso
Viti cartongesso
Cubatura legname
Cubatura legname
Calcolo recinzione
Calcolo recinzione
Ritiro del legno
Ritiro del legno
Silicone e colla
Silicone e colla
Calore disperso
Calore disperso
Mobile che passa
Mobile che passa
Scatole trasloco
Scatole trasloco
Litri e libri
Litri e libri
Taglio pannelli
Taglio pannelli
Freccia ripiano
Freccia ripiano

Calcolatrice della numerosità per un test A/B (MDE, significatività, potenza e durata)

Per trovare la numerosità, inserisci il CVR di base, l’MDE, il livello di significatività e la potenza, poi fai clic su «Calcola». Ottieni la numerosità per gruppo per A e B (arrotondata per eccesso) e il totale, più i giorni necessari se inserisci i visitatori giornalieri. Cambia «Che cosa cercare» in potenza per fissare la numerosità per gruppo e ricavare invece la potenza 1 − β.

Inserisci il CVR e l’MDE come percentuali (per il 3% scrivi «3»; per un incremento del 10% scrivi «10»). L’MDE può essere un incremento relativo in % (dal 3% al 3,3% è il 10%) oppure in punti percentuali, pp (dal 3% al 3,3% è 0,3). Per i visitatori giornalieri, inserisci il totale di A e B insieme (tutte le visite alla pagina testata).
Risultato e grafico
Compila i campi a sinistra e fai clic su «Calcola». Qui compariranno il risultato e un grafico di MDE e numerosità necessaria.

Cosa puoi fare in questa pagina

  • Inserisci il CVR di base (il tasso di conversione della versione A attuale), l’effetto minimo rilevabile (MDE, come incremento relativo in % o in punti percentuali), il livello di significatività \(\alpha\) (due code o una coda) e la potenza \(1-\beta\). Ottieni la numerosità che serve a ciascun gruppo del tuo test A/B (arrotondata per eccesso) e il totale
  • «La mia pagina converte al 3%. Quanti visitatori servono ad A e a B per rilevare un incremento del 10% (dal 3% al 3,3%)?» Questa pagina risponde alla domanda più importante da farsi prima di iniziare un test
  • Se aggiungi i visitatori giornalieri (facoltativo) vedi anche in quanti giorni raggiungi quella numerosità (arrotondata per eccesso)
  • Se puoi raccogliere solo un certo numero di visitatori per gruppo, fissa la numerosità e ricava la potenza \(1-\beta\) (la probabilità di trovare una differenza quando c’è davvero)
  • In questa pagina trovi anche un grafico di come cambia la numerosità al variare dell’MDE, una spiegazione semplice delle formule e le formule da copiare e incollare per Excel, Fogli Google e Python
Questa pagina serve solo per i test A/B che verificano se le versioni A e B differiscono nel tasso di conversione (CVR), e usa la formula standard del test z per due proporzioni. Per sapere quante persone servono a un sondaggio per misurare con precisione una sola percentuale, usa la «Calcolatrice della numerosità campionaria»; per leggere il p-value da risultati già raccolti, la «Calcolatrice p-value». Raggiungere la numerosità necessaria non basta a dimostrare che un risultato significativo sia un effetto reale. Leggi anche le avvertenze nella spiegazione delle formule.

A cosa serve questo calcolo?

Progettare un test A/B del pulsante «Acquista» di un negozio online

Supponi che la pagina di un prodotto di un negozio online converta al 2% e che tu voglia rilevare un incremento relativo del 10% (dal 2% al 2,2%) con un nuovo testo del pulsante. Con un livello di significatività del 5% (due code) e una potenza dell’80%, servono circa 80.682 visitatori per gruppo, circa 161.364 in totale.
Confrontare qualche decina o qualche centinaio di visitatori («la settimana scorsa B è andato meglio») non permette di distinguere una differenza casuale da una reale. Calcolare la numerosità prima di iniziare ti evita di passare settimane su un test che non può dare una risposta.

Decidere per quanti giorni testare la pagina di destinazione di un SaaS B2B

Una pagina di destinazione riceve richieste di demo con un CVR del 5%. Per rilevare un incremento di 1 punto (dal 5% al 6%) servono 8158 visitatori per gruppo, 16.316 in totale. Con 300 visite al giorno sono \(16316 \div 300 \approx 54{,}4\), quindi 55 giorni, oppure 8 settimane se vuoi uniformare i giorni della settimana.
Se qualcuno chiede i risultati in 2 settimane, questo calcolo ti permette di spiegare con i numeri: «In 2 settimane (4200 visitatori, 2100 per gruppo) servirebbe un MDE molto più grande, intorno a 3 punti (dal 5% all’8%, che richiede 1059 per gruppo)».

Testare gli oggetti di una newsletter (tassi di apertura)

Se la tua newsletter ha un tasso di apertura del 20% e vuoi rilevare un incremento di 2 punti (dal 20% al 22%) con un nuovo oggetto, devi inviarla a 6510 persone per gruppo, 13.020 in totale (livello di significatività del 5%, potenza dell’80%).
Un indicatore con una percentuale alta, come il tasso di apertura, richiede meno persone per mostrare una differenza di un CVR di pochi punti percentuali. Il motivo è che cambia la parte \(p(1-p)\) della formula: gli stessi «2 punti» richiedono una numerosità diversa per ogni indicatore.

Controllare la potenza prima di concludere «nessuna differenza»

Supponi che un test mirato a un incremento relativo del 10% su una pagina con un CVR del 3% sia stato eseguito con 5000 visitatori per gruppo e abbia mostrato «nessuna differenza significativa». Ricavando la potenza a ritroso si ottiene solo circa il 13,5%. Il test era impostato per perdere un miglioramento reale più di 8 volte su 10.
La conclusione giusta qui non è «non ha avuto effetto» ma «con questa numerosità non si poteva dire». Ricavare la potenza a ritroso ti evita di leggere male un test e di buttare via una buona idea.

Confrontare la fidelizzazione dopo un nuovo tutorial in un’app

Un’app ha una fidelizzazione del 40% il giorno dopo. Per rilevare un incremento relativo del 10% (dal 40% al 44%) con un nuovo tutorial bastano circa 2389 nuovi utenti per gruppo, circa 4778 in totale (livello di significatività del 5%, potenza dell’80%).
Un indicatore vicino al 50%, come la fidelizzazione, ha una variabilità grande, ma anche la differenza dei tassi (4 punti) è grande, quindi i risultati arrivano più in fretta che in un test su un CVR di pochi punti percentuali. Stimare la numerosità per ogni indicatore ti aiuta anche a decidere su quale miglioramento lavorare per primo.

Usare una potenza del 90% per i test che non puoi permetterti di perdere

Per un test in cui perdere una buona idea costerebbe caro, come un cambiamento nel modo di mostrare i prezzi, puoi alzare la potenza dall’80% al 90%. Con un CVR del 3% e un incremento relativo del 10%, la numerosità per gruppo sale da 53.211 a 71.233 (circa 1,34 volte).
Questo calcolo mostra esattamente quanti visitatori in più servono per dimezzare le mancate rilevazioni (dal 20% al 10%), così puoi adeguare la numerosità e la durata del test all’importanza del test.

Formule e figure

Formula del CVR obiettivo (il CVR che speri raggiunga la versione B)
Notazione matematica (la notazione abituale)
\(p_2\) \(=\) \(p_1\) \(\times\) \(\left(1 + \dfrac{r}{100}\right)\)
\(p_2\) \(=\) \(p_1\) \(+\) \(d\)
A parole (i simboli sostituiti da parole)
③ \(p_2\): CVR obiettivo \(=\) ① \(p_1\): CVR di base \(\times\) ② \(1 +\) incremento relativo \(r \div 100\)
\(p_2\): CVR obiettivo \(=\) \(p_1\): CVR di base \(+\) ④ \(d\): MDE in punti percentuali
La formula a parole
① Prendi il \(p_1\): CVR di base
② moltiplicalo per \(1 +\) incremento relativo \(r \div 100\)
③ e ottieni il \(p_2\): CVR obiettivo
④ (Se indichi l’MDE in punti percentuali, aggiungi \(d\): MDE in punti percentuali direttamente al CVR di base \(p_1\) per ottenere il CVR obiettivo.)
Un esempio semplice
Con un CVR di base del 3% e un incremento relativo del 10% da rilevare, il CVR obiettivo è
\(p_2\): CVR obiettivo \(=\) CVR di base (3%) \(\times\) \(1 + 10 \div 100\)
\(3 \times (1 + 10 \div 100) = 3 \times 1{,}1 = 3{,}3\ \ (3{,}3\%)\)
L’idea chiave
Attenzione: «un miglioramento del 10%» si può leggere in due modi. Come incremento relativo in % è «il 3% più un decimo del 3% = 3,3%». In punti percentuali è «il 3% + 10 punti = 13%». I due danno numerosità completamente diverse. Nel marketing «un incremento del 10% del CVR» di solito indica l’incremento relativo, ed è anche l’impostazione predefinita di questa pagina. Il CVR obiettivo \(p_2\) non è una previsione di ciò che la versione B farà davvero. È la differenza più piccola che non vuoi perderti (l’MDE). Se la differenza reale è più piccola, il test probabilmente non mostrerà una differenza significativa, nemmeno con tutta la numerosità prevista.
Formula della numerosità per gruppo (test z per due proporzioni)
Figura
Notazione matematica (la notazione abituale)
\(n\) \(=\) \(\bigl(\) \(z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}\) \(+\) \(z_{\beta}\sqrt{p_1(1-p_1)+p_2(1-p_2)}\) \(\bigr)^2\) \(\div\) \((p_2 - p_1)^2\)
A parole (i simboli sostituiti da parole)
④ \(n\): numerosità per gruppo \(=\) \(\bigl(\) ① \(z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}\): termine di significatività \(+\) ② \(z_{\beta}\sqrt{p_1(1-p_1)+p_2(1-p_2)}\): termine di potenza \(\bigr)^2\) \(\div\) ③ \((p_2 - p_1)^2\): la differenza da rilevare, al quadrato
La formula a parole
① Somma il termine di significatività (il \(z_{\alpha/2}\) dal livello di significatività × la variabilità quando non c’è differenza, \(\sqrt{2\bar{p}(1-\bar{p})}\))
② e il termine di potenza (il \(z_{\beta}\) dalla potenza × la variabilità quando c’è una differenza, \(\sqrt{p_1(1-p_1)+p_2(1-p_2)}\)) ed eleva al quadrato la somma,
③ dividi per il quadrato della differenza da rilevare, \((p_2 - p_1)^2\)
④ e ottieni la \(n\): numerosità per gruppo (arrotonda per eccesso ogni parte decimale)
Un esempio semplice
Con un CVR di base del 3% (0,03), un obiettivo del 3,3% (0,033), un test a due code al livello di significatività del 5% (\(z_{\alpha/2} = 1{,}9600\)) e una potenza dell’80% (\(z_{\beta} = 0{,}8416\)), la numerosità per gruppo è
\(n\): numerosità per gruppo \(=\) \(\bigl(\) \(1{,}9600 \times \sqrt{2 \times 0{,}0315 \times 0{,}9685}\) \(+\) \(0{,}8416 \times \sqrt{0{,}03 \times 0{,}97 + 0{,}033 \times 0{,}967}\) \(\bigr)^2\) \(\div\) \((0{,}033 - 0{,}03)^2\)
\(\bar{p} = (0{,}03 + 0{,}033) \div 2 = 0{,}0315\)
\(1{,}9600 \times \sqrt{2 \times 0{,}0315 \times 0{,}9685} = 1{,}9600 \times 0{,}24701 \approx 0{,}48414\)
\(0{,}8416 \times \sqrt{0{,}03 \times 0{,}97 + 0{,}033 \times 0{,}967} = 0{,}8416 \times 0{,}24700 \approx 0{,}20788\)
\((0{,}48414 + 0{,}20788)^2 \div (0{,}033 - 0{,}03)^2 = 0{,}47889 \div 0{,}000009 \approx 53210{,}3 \rightarrow 53211\)
L’idea chiave
\(\bar{p}\) è la media dei due CVR, \((p_1 + p_2) \div 2\): il CVR comune che supponi quando non c’è differenza. \(\sqrt{2\bar{p}(1-\bar{p})}\) e \(\sqrt{p_1(1-p_1)+p_2(1-p_2)}\) misurano entrambi quanto la differenza dei CVR oscilla per caso. Il primo vale per «nessuna differenza» e il secondo per «una differenza reale». Guarda la formula: la numerosità si divide per il quadrato della differenza da rilevare. Quindi dimezzare l’MDE rende la numerosità circa 4 volte più grande, e ridurlo a un terzo la rende circa 9 volte più grande. Per questo il numero di visitatori sale così in fretta quando vuoi cogliere anche piccoli incrementi. Il punteggio z dal livello di significatività è \(z_{\alpha/2}\) per un test a due code (1,9600 al 5%, 2,5758 all’1%, 1,6449 al 10%) e \(z_{\alpha}\) per un test a una coda (1,6449 al 5%, 2,3263 all’1%, 1,2816 al 10%). Il punteggio z dalla potenza, \(z_{\beta}\), è 0,8416 all’80% e 1,2816 al 90%. Libri di testo e altri strumenti usano a volte una formula semplificata che fonde le due variabilità nell’unico \(\sqrt{2\bar{p}(1-\bar{p})}\): \(n \approx 2\bar{p}(1-\bar{p})(z_{\alpha/2}+z_{\beta})^2 \div (p_2-p_1)^2\). Questa calcolatrice usa la formula della scheda qui sopra (con due variabilità separate) e mostra nel risultato anche il valore semplificato, per confronto. Quando il CVR è piccolo, le due differiscono appena (53.211 contro 53.212 nell’esempio sopra). Raggiungere la numerosità necessaria non rende certo un risultato significativo. La formula vale solo se i visitatori sono assegnati con assegnazione casuale, se non controlli i risultati più volte fermandoti presto (interruzione anticipata) e se usi una soglia più severa quando confronti più indicatori o più versioni B insieme (confronti multipli).
Formula dei giorni necessari (dai visitatori giornalieri)
Notazione matematica (la notazione abituale)
\(D\) \(=\) \(\lceil\) \(2n\) \(\div\) \(V\) \(\rceil\)
A parole (i simboli sostituiti da parole)
③ \(D\): giorni necessari \(=\) \(\lceil\) ① \(2n\): numerosità totale di A e B \(\div\) ② \(V\): visitatori giornalieri \(\rceil\)
La formula a parole
① Prendi la \(2n\): numerosità totale di A e B (il doppio della numerosità per gruppo \(n\))
② dividila per i \(V\): visitatori giornalieri e arrotonda per eccesso ogni parte decimale (\(\lceil\ \rceil\) è il simbolo dell’arrotondamento per eccesso),
③ e ottieni i \(D\): giorni necessari
Un esempio semplice
Se la numerosità per gruppo è 53.211 e la pagina testata riceve 2000 visite al giorno, i giorni necessari sono
\(D\): giorni necessari \(=\) \(\lceil\) \(2 \times 53211\) \(\div\) 2000 visite \(\rceil\)
\(2 \times 53211 \div 2000 = 106422 \div 2000 = 53{,}211 \rightarrow 54\)
L’idea chiave
\(\lceil\ \rceil\) è il simbolo dell’arrotondamento per eccesso (la funzione parte intera superiore), quindi 53,211 giorni diventano 54 giorni. I visitatori si dividono a metà tra A e B, quindi inserisci i visitatori giornalieri di A e B insieme (tutte le visite alla pagina testata). Anche se i conti dicono 54 giorni, i test veri si fanno di solito per settimane intere. Il CVR cambia con il giorno della settimana (i visitatori dei giorni feriali e del fine settimana sono diversi), quindi con 7, 14, ... giorni l’effetto del giorno della settimana si distribuisce in modo uniforme nei due gruppi. In questo esempio un buon piano è di 8 settimane (56 giorni). Se i giorni necessari arrivano a diversi mesi, è più realistico scegliere un MDE più grande o testare una pagina con più traffico.
Formula della potenza (con numerosità per gruppo fissata)
Figura
Notazione matematica (la notazione abituale)
\(z_{1-\beta}\) \(=\) \(\bigl(\) \(|p_2 - p_1|\sqrt{n}\) \(-\) \(z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}\) \(\bigr)\) \(\div\) \(\sqrt{p_1(1-p_1)+p_2(1-p_2)}\)
\(1-\beta\) \(=\) \(\Phi\bigl(\) \(z_{1-\beta}\) \(\bigr)\)
A parole (i simboli sostituiti da parole)
④ \(z_{1-\beta}\): punteggio z per la potenza \(=\) \(\bigl(\) ① \(|p_2 - p_1|\sqrt{n}\): differenza da rilevare × \(\sqrt{\text{numerosità per gruppo}}\) \(-\) ② \(z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}\): termine di significatività \(\bigr)\) \(\div\) ③ \(\sqrt{p_1(1-p_1)+p_2(1-p_2)}\): variabilità quando c’è una differenza
⑥ \(1-\beta\): potenza \(=\) \(\Phi\bigl(\) ⑤ \(z_{1-\beta}\): punteggio z per la potenza \(\bigr)\)
La formula a parole
① Prendi la differenza da rilevare \(|p_2 - p_1|\) per la radice quadrata della numerosità per gruppo, \(\sqrt{n}\)
② sottrai il \(z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}\): termine di significatività
③ dividi per la \(\sqrt{p_1(1-p_1)+p_2(1-p_2)}\): variabilità quando c’è una differenza
④ e ottieni il \(z_{1-\beta}\): punteggio z per la potenza
⑤ Con la funzione di ripartizione \(\Phi\) della distribuzione normale standard trovi la probabilità di un valore uguale o minore di quel \(z_{1-\beta}\): punteggio z per la potenza
⑥ e ottieni la \(1-\beta\): potenza
Un esempio semplice
Con un CVR di base del 3%, un obiettivo del 3,3% e un test a due code al livello di significatività del 5% (\(z_{\alpha/2} = 1{,}9600\)), se puoi ottenere solo 30.000 visitatori per gruppo, la potenza è
\(z_{1-\beta}\): punteggio z per la potenza \(=\) \(\bigl(\) \(0{,}003 \times \sqrt{30000}\) \(-\) \(1{,}9600 \times 0{,}24701\) \(\bigr)\) \(\div\) \(0{,}24700\)
\(0{,}003 \times \sqrt{30000} = 0{,}003 \times 173{,}205 \approx 0{,}51962\)
\((0{,}51962 - 0{,}48414) \div 0{,}24700 \approx 0{,}1436\)
\(1 - \beta = \Phi(0{,}1436) \approx 0{,}5571\ \ (55{,}71\%)\)
L’idea chiave
Questa è la formula della «numerosità per gruppo» risolta di nuovo per \(z_{\beta}\). \(\Phi\) (fi) è la funzione di ripartizione della distribuzione normale standard. Restituisce la probabilità che un punteggio z sia uguale o minore di un dato valore (\(\Phi(0{,}8416) \approx 0{,}80\), \(\Phi(1{,}2816) \approx 0{,}90\)). Nell’esempio sopra la potenza è solo circa il 56%. Quindi, anche se la versione B raggiungesse davvero il 3,3%, un test con 30.000 visitatori per gruppo la dichiarerebbe «nessuna differenza» quasi una volta su due. Un test con potenza sotto l’80% perde spesso gli effetti reali. Concludere «non c’era differenza» da un test con poca potenza è una conclusione affrettata. A rigore, un test a due code dovrebbe sommare anche l’altra coda (la probabilità che B risulti significativamente peggiore). Quel valore è minuscolo, quindi questa calcolatrice segue la pratica comune e lo omette.
La numerosità per gruppo di un test A/B è «(termine di significatività + termine di potenza) al quadrato ÷ (differenza da rilevare) al quadrato», arrotondata per eccesso. Dimezzare l’MDE rende la numerosità circa 4 volte più grande, quindi il punto è decidere prima quanto grande deve essere l’incremento che vuoi cogliere (l’MDE). Dividi per i visitatori giornalieri per ottenere i giorni necessari, oppure fissa la numerosità e risolvi di nuovo la formula per ottenere la potenza.

Simboli e termini

Simboli

\(p_1\) pi uno Il CVR di base (il tasso di conversione della versione A attuale). \(p\) sta per proporzione o probabilità. Nelle formule il 3% si scrive come il decimale 0,03.
\(p_2\) pi due Il CVR obiettivo (il tasso di conversione che speri raggiunga la versione B). È \(p_1 (1 + r/100)\) per un incremento relativo in % e \(p_1 + d\) per i punti percentuali.
\(\bar{p}\) pi con barra La media dei due CVR, \((p_1 + p_2) \div 2\). È il CVR comune che supponi quando non c’è differenza. In statistica la barra in alto indica una media.
\(r\) erre L’MDE indicato come incremento relativo in %. Sta per «rapporto» e dice di quanto per cento migliora il CVR di base (dal 3% al 3,3% si ha \(r = 10\)).
\(d\) di L’MDE indicato in punti percentuali. Sta per «differenza» ed è la semplice differenza di CVR (dal 3% al 3,3% si ha \(d = 0{,}3\) punti).
\(p_2 - p_1\) pi due meno pi uno La differenza da rilevare, in punti percentuali scritti come decimale (0,3 punti sono 0,003). La numerosità si divide per il suo quadrato, quindi più la differenza è piccola, più la numerosità cresce in fretta.
\(\alpha\) alfa Il livello di significatività: la probabilità di dichiarare reale una differenza che non c’è (la probabilità di un errore di primo tipo). Il 5% (0,05) è la scelta più comune. Alfa è la prima lettera dell’alfabeto greco e in statistica indica la probabilità del «primo» tipo di errore.
\(\beta\) beta La probabilità di non vedere una differenza che c’è davvero (la probabilità di un errore di secondo tipo). Beta è la seconda lettera dell’alfabeto greco e indica la probabilità del «secondo» tipo di errore.
\(1-\beta\) uno meno beta La potenza: la probabilità di trovare una differenza quando c’è davvero. Si usa di solito l’80% o il 90%.
\(z_{\alpha/2}\) zeta con pedice alfa mezzi Il punteggio z per il livello di significatività \(\alpha\) in un test a due code (il punto con \(\alpha/2\) della distribuzione normale standard sopra di sé). Vale 1,9600 al 5%, 2,5758 all’1% e 1,6449 al 10%. Un test a una coda usa invece \(z_{\alpha}\) (1,6449 al 5%).
\(z_{\beta}\) zeta con pedice beta Il punteggio z per la potenza \(1-\beta\) (il punto con probabilità \(1-\beta\) della distribuzione normale standard sotto di sé). Vale 0,8416 all’80% e 1,2816 al 90%.
\(z_{1-\beta}\) zeta con pedice uno meno beta Nella formula della potenza, il punteggio z ricavato a ritroso dalla numerosità. Mettilo in \(\Phi\) e ottieni la potenza. (È la stessa cosa di \(z_{\beta}\), scritta dal lato del valore che stai cercando.)
\(\Phi\) fi maiuscola La funzione di ripartizione della distribuzione normale standard. Restituisce la probabilità che un punteggio z sia uguale o minore di un dato valore: \(\Phi(1{,}96) \approx 0{,}975\) e \(\Phi(0{,}8416) \approx 0{,}80\). La lettera greca fi maiuscola è il simbolo abituale di questa funzione.
\(n\) enne La numerosità per gruppo (per ciascuna delle versioni A e B). Sta per «numero». Il totale di A e B è \(2n\).
\(\sqrt{\ \ }\) radice quadrata La radice quadrata: il numero positivo che elevato al quadrato dà il numero sotto la radice, per esempio \(\sqrt{30000} \approx 173{,}205\). Compare quando si trova la variabilità (la deviazione standard) di un CVR.
\(V\) vu I visitatori giornalieri (tutte le visite alla pagina testata, A e B insieme). Sta per «visite».
\(D\) di maiuscola I giorni necessari. Sta per «giorni».
\(\lceil\ \rceil\) parte intera superiore Il simbolo dell’arrotondamento per eccesso (la funzione parte intera superiore). Dà il più piccolo numero intero uguale o maggiore del numero all’interno (\(\lceil 53{,}211 \rceil = 54\)).

Termini

test A/B Un esperimento che divide a caso (assegnazione casuale) i visitatori tra la versione attuale (A) e una nuova versione (B) nello stesso periodo, per vedere quale rende meglio (per esempio ha un CVR più alto). Serve a verificare con i dati, e non a intuito, se un cambiamento come il colore di un pulsante, un titolo, il modo di mostrare un prezzo o la struttura di una pagina di destinazione aiuta davvero.
tasso di conversione (CVR) La quota di visitatori o di clic che portano a un’azione obiettivo (una conversione), come un acquisto o un’iscrizione. Nelle formule di questa pagina il CVR della versione A è \(p_1\) e quello della versione B è \(p_2\).
MDE (effetto minimo rilevabile) Il più piccolo incremento che vuoi riuscire a rilevare. È il primo valore da decidere quando progetti un test A/B. Più è piccolo, più la numerosità cresce in fretta (è inversamente proporzionale al quadrato della differenza), quindi scegli il più piccolo incremento che conterebbe per la tua attività.
livello di significatività La probabilità \(\alpha\) dell’errore che sei disposto ad accettare, cioè vedere una differenza casuale e dichiararla reale quando non c’è alcuna differenza. Il 5% è lo standard e ammette un falso allarme circa una volta su 20. Un livello più severo (1%) richiede una numerosità maggiore.
potenza statistica La probabilità \(1-\beta\) di trovare una differenza quando c’è davvero. L’80% è lo standard e ammette di perdere un incremento reale circa una volta su 5. Se un test con poca potenza dice «nessuna differenza», non è una prova che la differenza non esista.
errore di primo tipo L’errore di dichiarare reale una differenza che non c’è (un falso positivo). La probabilità che ammetti è il livello di significatività \(\alpha\). È l’altra faccia di un errore di secondo tipo (una mancata rilevazione): abbassare uno tende ad alzare l’altro. Il modo più semplice per ridurli entrambi è una numerosità maggiore.
errore di secondo tipo L’errore di non vedere una differenza che c’è davvero (un falso negativo). La sua probabilità è \(\beta\) e \(1-\beta\) è la potenza. È l’altra faccia di un errore di primo tipo (un falso allarme): abbassare uno tende ad alzare l’altro. Il modo più semplice per ridurli entrambi è una numerosità maggiore.
ipotesi nulla L’ipotesi che «le versioni A e B abbiano lo stesso CVR», che il test cerca di rifiutare. Il test si chiede quanto sarebbero insoliti i dati se l’ipotesi nulla fosse vera. Se lo sono abbastanza, l’ipotesi nulla viene rifiutata e il risultato è «c’è una differenza».
ipotesi alternativa L’ipotesi che «le versioni A e B abbiano CVR diversi», che il test cerca di mostrare. Viene accettata quando l’ipotesi nulla (nessuna differenza) viene rifiutata.
test a due code Un test che conta come differenza sia «B è più alto» sia «B è più basso». Si usa in un normale test A/B, in cui non sai da che parte andrà. Richiede una numerosità maggiore di un test a una coda, ma coglie anche il caso in cui B va peggio.
test a una coda Un test che cerca solo «B è più alto». Richiede una numerosità minore di un test a due code, ma non coglie il caso in cui B va peggio, quindi devi sceglierlo prima dell’inizio del test. (Passare a una coda dopo aver visto i risultati non è valido.)
test z per due proporzioni Un test che verifica se due gruppi differiscono in una proporzione (come il CVR), usando un punteggio z (la differenza standardizzata) e la distribuzione normale standard. Le formule di questa pagina trovano la numerosità per questo test. L’approssimazione normale funziona quando ogni gruppo ha abbastanza conversioni (come regola pratica, almeno 5-10).
distribuzione normale standard La distribuzione normale con media 0 e deviazione standard 1 (a campana, simmetrica). Un punteggio z è un punto del suo asse orizzontale e a ogni punteggio z corrisponde una sola probabilità, come in «l’area a destra di 1,96 è il 2,5%».
funzione di ripartizione Una funzione che restituisce la probabilità di ottenere un dato valore o uno minore. Quella della distribuzione normale standard si scrive \(\Phi\) e compare alla fine della formula della potenza. In Excel è DISTRIB.NORM.ST.N (con VERO come secondo argomento) e in Python è NormalDist().cdf.
deviazione standard (variabilità) Quanto sono dispersi i dati. La variabilità di una proporzione \(p\) è proporzionale a \(\sqrt{p(1-p)}\). Le espressioni \(\sqrt{2\bar{p}(1-\bar{p})}\) e \(\sqrt{p_1(1-p_1)+p_2(1-p_2)}\) delle formule sono la variabilità della differenza tra i CVR dei due gruppi.
confronti multipli Confrontare insieme più versioni B o più indicatori. Più confronti fai, più è probabile che almeno uno sembri significativo per caso, quindi serve una correzione, come dividere il livello di significatività per il numero di confronti (la correzione di Bonferroni).
interruzione anticipata (peeking) Controllare i risultati più e più volte prima di raggiungere la numerosità necessaria e fermarsi appena il risultato sembra significativo. Rende facile prendere per vera una differenza dovuta al caso, quindi un test pensato per un livello di significatività del 5% sbaglia in realtà molto più spesso. Le formule di questa pagina presuppongono che tu fissi prima la numerosità e aspetti di raggiungerla.

Cosa conviene sapere prima

Ecco che cosa conviene sapere per usare il calcolo di questa pagina capendo davvero che cosa fai, e non solo premendo il pulsante.
Se ti blocchi, ripassare questi argomenti è la strada più rapida.

Percentuali (scuola primaria e secondaria di primo grado, 10-12 anni)
  • Saper passare dalle percentuali ai numeri decimali e viceversa (\(3\% = 0{,}03\), \(0{,}033 = 3{,}3\%\))
  • Conoscere la differenza tra un aumento relativo in % (il 3% aumentato di un decimo è il 3,3%) e un aumento in punti percentuali (3% + 0,3 punti = 3,3%)
Radici quadrate (scuola secondaria di primo grado, 13-14 anni)
  • Sapere che \(\sqrt{a}\) è il numero positivo che elevato al quadrato dà \(a\) e saper trovare con la calcolatrice valori come \(\sqrt{30000} \approx 173{,}2\)
  • Sapere che, dividendo per un quadrato, dimezzare il numero per cui dividi rende la risposta 4 volte più grande (\((1/2)^2 = 1/4\))
Probabilità di base (scuola secondaria di primo e secondo grado, 12-16 anni)
  • Saper trattare una percentuale come «30 acquisti su 1000 visite» come una probabilità (un numero da 0 a 1)
  • Avere il senso che una differenza può comparire per caso anche quando non c’è (ottenere 7 teste su 10 lanci di una moneta non è insolito)
La distribuzione normale e i punteggi z (statistica, scuola secondaria di secondo grado, 14-19 anni)
  • Sapere che la distribuzione normale ha una forma a campana simmetrica e che circa il 95% si trova entro 1,96 deviazioni standard dalla media
  • Sapere che un punteggio z dice a quante deviazioni standard dalla media si trova un valore
La logica del test di ipotesi (ultimi anni delle superiori o statistica universitaria di base, 17-20 anni)
  • Capire come funziona un test: si pone l’ipotesi nulla «nessuna differenza» e, se i dati sarebbero insoliti sotto di essa, si conclude «c’è una differenza»
  • Capire che il livello di significatività \(\alpha\) (la probabilità di dichiarare reale una differenza che non c’è) e la potenza \(1-\beta\) (la probabilità di trovare una differenza reale) riguardano due errori diversi
Arrotondamento (scuola primaria, 9-10 anni)
  • Capire perché numeri di persone e di giorni si arrotondano per eccesso a numeri interi, come 53.210,3 visitatori che diventano 53.211 e 53,211 giorni che diventano 54

Come calcolarlo con Excel

Copia tutta la tabella qui sotto e incollala nella cella A1 di Excel. Funziona così com’è.
Tabella per trovare il CVR obiettivo (incremento relativo in %)
CVR di base p1 (%) 3
Incremento relativo r (%) 10
CVR obiettivo p2 (%) =B1*(1+B2/100)
Tabella per trovare la numerosità per gruppo
CVR di base p1 (%) 3
CVR obiettivo p2 (%) 3,3
Livello di significatività α (%, due code) 5
Potenza 1−β (%) 80
z_α/2 =INV.NORM.S(1-B3/100/2)
z_β =INV.NORM.S(B4/100)
CVR medio p̄ =(B1+B2)/2/100
Numerosità per gruppo n (arrotondata per eccesso) =ARROTONDA.PER.ECC((B5*RADQ(2*B7*(1-B7))+B6*RADQ(B1/100*(1-B1/100)+B2/100*(1-B2/100)))^2/((B2-B1)/100)^2;0)
Tabella per trovare i giorni necessari
Numerosità per gruppo n 53211
Visitatori giornalieri V (totale A + B) 2000
Giorni necessari D (arrotondati per eccesso) =ARROTONDA.PER.ECC(2*B1/B2;0)
Tabella per trovare la potenza (numerosità per gruppo fissata)
CVR di base p1 (%) 3
CVR obiettivo p2 (%) 3,3
Livello di significatività α (%, due code) 5
Numerosità per gruppo n 30000
z_α/2 =INV.NORM.S(1-B3/100/2)
CVR medio p̄ =(B1+B2)/2/100
z_1−β =(ASS(B2-B1)/100*RADQ(B4)-B5*RADQ(2*B6*(1-B6)))/RADQ(B1/100*(1-B1/100)+B2/100*(1-B2/100))
Potenza 1−β (%) =DISTRIB.NORM.ST.N(B7;VERO)*100
Dopo averle incollate, le righe in alto sono i dati da inserire e l’ultima riga è calcolata automaticamente.
La prima tabella mostra 3,3 in B3 (un CVR obiettivo del 3,3%), la seconda mostra 53211 in B8 (la numerosità per gruppo), la terza mostra 54 in B3 (i giorni necessari) e la quarta mostra circa 55,71 in B8 (una potenza del 55,71%).
INV.NORM.S trasforma una probabilità in un punteggio z e DISTRIB.NORM.ST.N (con VERO come secondo argomento) trasforma un punteggio z in una probabilità. Per un test a una coda, elimina il «/2» dalla formula di z_α/2 in modo che diventi =INV.NORM.S(1-B3/100). ARROTONDA.PER.ECC(…;0) arrotonda per eccesso.

Come calcolarlo con Fogli Google

Copia tutta la tabella qui sotto e incollala nella cella A1 di Fogli Google. Funziona così com’è.
Tabella per trovare il CVR obiettivo (incremento relativo in %)
CVR di base p1 (%) 3
Incremento relativo r (%) 10
CVR obiettivo p2 (%) =B1*(1+B2/100)
Tabella per trovare la numerosità per gruppo
CVR di base p1 (%) 3
CVR obiettivo p2 (%) 3,3
Livello di significatività α (%, due code) 5
Potenza 1−β (%) 80
z_α/2 =INV.NORM.S(1-B3/100/2)
z_β =INV.NORM.S(B4/100)
CVR medio p̄ =(B1+B2)/2/100
Numerosità per gruppo n (arrotondata per eccesso) =ARROTONDA.PER.ECC((B5*RADQ(2*B7*(1-B7))+B6*RADQ(B1/100*(1-B1/100)+B2/100*(1-B2/100)))^2/((B2-B1)/100)^2;0)
Tabella per trovare i giorni necessari
Numerosità per gruppo n 53211
Visitatori giornalieri V (totale A + B) 2000
Giorni necessari D (arrotondati per eccesso) =ARROTONDA.PER.ECC(2*B1/B2;0)
Tabella per trovare la potenza (numerosità per gruppo fissata)
CVR di base p1 (%) 3
CVR obiettivo p2 (%) 3,3
Livello di significatività α (%, due code) 5
Numerosità per gruppo n 30000
z_α/2 =INV.NORM.S(1-B3/100/2)
CVR medio p̄ =(B1+B2)/2/100
z_1−β =(ASS(B2-B1)/100*RADQ(B4)-B5*RADQ(2*B6*(1-B6)))/RADQ(B1/100*(1-B1/100)+B2/100*(1-B2/100))
Potenza 1−β (%) =DISTRIB.NORM.ST.N(B7;VERO)*100
Funzionano le stesse formule di Excel, così come sono (anche Fogli Google ha INV.NORM.S, DISTRIB.NORM.ST.N e ARROTONDA.PER.ECC). Copia l’intera tabella, incollala nella cella A1 e sostituisci i dati da inserire nella colonna B con i tuoi numeri.

Come calcolarlo con Python

from math import sqrt, ceil
from statistics import NormalDist

base_cvr = 3.0          # CVR di base (%)
relative_mde = 10.0     # MDE da rilevare (incremento relativo in %)
alpha = 0.05            # livello di significatività (due code)
power = 0.80            # potenza
daily_visits = 2000     # visitatori giornalieri (totale A + B)

p1 = base_cvr / 100
p2 = p1 * (1 + relative_mde / 100)          # CVR obiettivo
z_alpha = NormalDist().inv_cdf(1 - alpha / 2)  # per un test a una coda usa 1 - alpha
z_beta = NormalDist().inv_cdf(power)
p_bar = (p1 + p2) / 2

n_exact = (z_alpha * sqrt(2 * p_bar * (1 - p_bar))
           + z_beta * sqrt(p1 * (1 - p1) + p2 * (1 - p2))) ** 2 / (p2 - p1) ** 2
n_per_group = ceil(n_exact)                  # numerosità per gruppo (arrotondata per eccesso)
days = ceil(2 * n_per_group / daily_visits)  # giorni necessari

print(f"CVR obiettivo: {p2 * 100:.4g}%")
print(f"Numerosità per gruppo: {n_per_group} (totale {2 * n_per_group})")
print(f"Giorni necessari: {days}")

# Il calcolo inverso: la potenza con 30000 visitatori per gruppo
n_fixed = 30000
z_power = (abs(p2 - p1) * sqrt(n_fixed) - z_alpha * sqrt(2 * p_bar * (1 - p_bar))) \
          / sqrt(p1 * (1 - p1) + p2 * (1 - p2))
print(f"Potenza con {n_fixed} per gruppo: {NormalDist().cdf(z_power) * 100:.2f}%")
Funziona solo con la libreria standard (statistics.NormalDist richiede Python 3.8 o successivo). In questo esempio il CVR obiettivo è il 3,3%, la numerosità per gruppo è 53211 (106422 in totale), i giorni necessari sono 54 e la potenza con 30000 visitatori per gruppo è circa il 55,71% (il programma stampa i decimali con il punto, come fa Python). Cambia i valori in cima ed eseguilo.

La formula in LaTeX e in altre notazioni matematiche (da copiare)

Formula del CVR obiettivo (il CVR che speri raggiunga la versione B)
p₂ = p₁ × (1 + r/100)
p_2 = p_1 \left(1 + \dfrac{r}{100}\right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <msub><mi>p</mi><mn>2</mn></msub>
    <mo>=</mo>
    <msub><mi>p</mi><mn>1</mn></msub>
    <mo>(</mo><mn>1</mn><mo>+</mo><mfrac><mi>r</mi><mn>100</mn></mfrac><mo>)</mo>
  </mrow>
</math>
p_2 = p_1 (1 + r/100)
p1*(1 + r/100)
p2 := p1*(1 + r/100);
p2 = p1*(1 + r/100);
p_2 = p_1 (1 + r/100)
Formula della numerosità per gruppo (test z per due proporzioni)
n = (z_α/2 √(2p̄(1 − p̄)) + z_β √(p₁(1 − p₁) + p₂(1 − p₂)))² ÷ (p₂ − p₁)²
n = \dfrac{\left( z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})} + z_{\beta}\sqrt{p_1(1-p_1)+p_2(1-p_2)} \right)^2}{(p_2 - p_1)^2}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>n</mi>
    <mo>=</mo>
    <mfrac>
      <msup>
        <mrow>
          <mo>(</mo>
          <msub><mi>z</mi><mrow><mi>&#x3B1;</mi><mo>/</mo><mn>2</mn></mrow></msub>
          <msqrt><mn>2</mn><mover><mi>p</mi><mo>&#xAF;</mo></mover><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><mover><mi>p</mi><mo>&#xAF;</mo></mover><mo>)</mo></msqrt>
          <mo>+</mo>
          <msub><mi>z</mi><mi>&#x3B2;</mi></msub>
          <msqrt>
            <msub><mi>p</mi><mn>1</mn></msub><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><msub><mi>p</mi><mn>1</mn></msub><mo>)</mo>
            <mo>+</mo>
            <msub><mi>p</mi><mn>2</mn></msub><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><msub><mi>p</mi><mn>2</mn></msub><mo>)</mo>
          </msqrt>
          <mo>)</mo>
        </mrow>
        <mn>2</mn>
      </msup>
      <msup>
        <mrow><mo>(</mo><msub><mi>p</mi><mn>2</mn></msub><mo>&#x2212;</mo><msub><mi>p</mi><mn>1</mn></msub><mo>)</mo></mrow>
        <mn>2</mn>
      </msup>
    </mfrac>
  </mrow>
</math>
n = (z_(alpha/2) sqrt(2 bar p (1 - bar p)) + z_beta sqrt(p_1(1 - p_1) + p_2(1 - p_2)))^2 / (p_2 - p_1)^2
Ceiling[(za*Sqrt[2*pbar*(1 - pbar)] + zb*Sqrt[p1*(1 - p1) + p2*(1 - p2)])^2/(p2 - p1)^2]
n := ceil((za*sqrt(2*pbar*(1 - pbar)) + zb*sqrt(p1*(1 - p1) + p2*(1 - p2)))^2/(p2 - p1)^2);
n = ceil((za*sqrt(2*pbar*(1 - pbar)) + zb*sqrt(p1*(1 - p1) + p2*(1 - p2)))^2/(p2 - p1)^2);
n = (z_(α/2) √(2p̄(1 − p̄)) + z_β √(p_1(1 − p_1) + p_2(1 − p_2)))^2/(p_2 − p_1)^2
Formula dei giorni necessari (dai visitatori giornalieri)
D = ⌈2n ÷ V⌉
D = \left\lceil \dfrac{2n}{V} \right\rceil
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>D</mi>
    <mo>=</mo>
    <mo>&#x2308;</mo>
    <mfrac><mrow><mn>2</mn><mi>n</mi></mrow><mi>V</mi></mfrac>
    <mo>&#x2309;</mo>
  </mrow>
</math>
D = |~ (2n)/V ~|
Ceiling[2*n/v]
days := ceil(2*n/V);
D = ceil(2*n/V);
D = ⌈2n/V⌉
Formula della potenza (con numerosità per gruppo fissata)
1 − β = Φ((|p₂ − p₁|√n − z_α/2 √(2p̄(1 − p̄))) ÷ √(p₁(1 − p₁) + p₂(1 − p₂)))
1 - \beta = \Phi\left( \dfrac{|p_2 - p_1|\sqrt{n} - z_{\alpha/2}\sqrt{2\bar{p}(1-\bar{p})}}{\sqrt{p_1(1-p_1)+p_2(1-p_2)}} \right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mn>1</mn><mo>&#x2212;</mo><mi>&#x3B2;</mi>
    <mo>=</mo>
    <mi>&#x3A6;</mi>
    <mo>(</mo>
    <mfrac>
      <mrow>
        <mo>|</mo><msub><mi>p</mi><mn>2</mn></msub><mo>&#x2212;</mo><msub><mi>p</mi><mn>1</mn></msub><mo>|</mo>
        <msqrt><mi>n</mi></msqrt>
        <mo>&#x2212;</mo>
        <msub><mi>z</mi><mrow><mi>&#x3B1;</mi><mo>/</mo><mn>2</mn></mrow></msub>
        <msqrt><mn>2</mn><mover><mi>p</mi><mo>&#xAF;</mo></mover><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><mover><mi>p</mi><mo>&#xAF;</mo></mover><mo>)</mo></msqrt>
      </mrow>
      <msqrt>
        <msub><mi>p</mi><mn>1</mn></msub><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><msub><mi>p</mi><mn>1</mn></msub><mo>)</mo>
        <mo>+</mo>
        <msub><mi>p</mi><mn>2</mn></msub><mo>(</mo><mn>1</mn><mo>&#x2212;</mo><msub><mi>p</mi><mn>2</mn></msub><mo>)</mo>
      </msqrt>
    </mfrac>
    <mo>)</mo>
  </mrow>
</math>
1 - beta = Phi((|p_2 - p_1| sqrt(n) - z_(alpha/2) sqrt(2 bar p (1 - bar p))) / sqrt(p_1(1 - p_1) + p_2(1 - p_2)))
CDF[NormalDistribution[0, 1], (Abs[p2 - p1]*Sqrt[n] - za*Sqrt[2*pbar*(1 - pbar)])/Sqrt[p1*(1 - p1) + p2*(1 - p2)]]
power := Statistics[CDF](Normal(0, 1), (abs(p2 - p1)*sqrt(n) - za*sqrt(2*pbar*(1 - pbar)))/sqrt(p1*(1 - p1) + p2*(1 - p2)));
power = normcdf((abs(p2 - p1)*sqrt(n) - za*sqrt(2*pbar*(1 - pbar)))/sqrt(p1*(1 - p1) + p2*(1 - p2)));
1 − β = Φ((|p_2 − p_1| √n − z_(α/2) √(2p̄(1 − p̄)))/√(p_1(1 − p_1) + p_2(1 − p_2)))

Come chiedere a ChatGPT  di fare il calcolo

Sei un assistente per la progettazione di test A/B. Fai il calcolo seguente eseguendo davvero del codice Python e basa la risposta solo sui numeri del risultato dell’esecuzione (non rispondere con calcoli a mente né a occhio).

Il CVR della pagina attuale (il CVR di base) è il 3%. Voglio poter rilevare un incremento relativo del 10% con la versione B (un CVR del 3,3%).
Con un livello di significatività del 5% (test a due code) e una potenza dell’80%, trova ognuno dei valori seguenti:
1. Il CVR obiettivo p2 (p2 = p1 × (1 + 10/100))
2. La numerosità per gruppo n (la formula del test z per due proporzioni: n = (z_{α/2}·√(2p̄(1−p̄)) + z_β·√(p1(1−p1)+p2(1−p2)))² ÷ (p2−p1)², con p̄ = (p1+p2)/2, arrotondata per eccesso) e la numerosità totale di A e B
3. I giorni necessari (arrotondati per eccesso) con 2000 visitatori giornalieri (A e B insieme)
4. La potenza se sono disponibili solo 30000 visitatori per gruppo (1−β = Φ((|p2−p1|·√n − z_{α/2}·√(2p̄(1−p̄))) ÷ √(p1(1−p1)+p2(1−p2))))

Usa statistics.NormalDist per i punteggi z e per la funzione di ripartizione, e mostra le formule che hai usato e i numeri del risultato dell’esecuzione.

Come si usa
  1. 1
    Inserisci i numeri
    Scrivi nei campi i numeri con cui vuoi fare il calcolo
  2. 2
    Calcola
    Fai clic sul pulsante «Calcola»
  3. 3
    Guarda il risultato
    Il risultato compare subito. Nella stessa pagina trovi anche lo svolgimento del calcolo e la spiegazione della formula
  I punti di forza di DataChef
Semplice e gratuito
Conversioni gratuite e illimitate
Nessuna competenza richiesta, semplice e intuitivo
Senza registrazione
Pronto all'uso appena apri la pagina
Nessun dato personale richiesto
Sicuro e affidabile
Connessione fortemente crittografata (SSL)
Il file viene eliminato automaticamente dopo il download
Veloce
Visualizzazione e conversione rapide, senza attese
Senza filigrana
Nessuna filigrana
Nessun obbligo di attribuzione
Uso commerciale consentito
Uso commerciale gratuito
Nessuna autorizzazione preventiva necessaria