{"id":3385,"date":"2026-02-20T09:48:38","date_gmt":"2026-02-20T08:48:38","guid":{"rendered":"https:\/\/www.gironi.it\/blog\/?p=3385"},"modified":"2026-03-06T09:17:36","modified_gmt":"2026-03-06T08:17:36","slug":"ab-testing","status":"publish","type":"post","link":"https:\/\/www.gironi.it\/blog\/ab-testing\/","title":{"rendered":"A\/B Testing: come condurre esperimenti statisticamente validi (e gli errori da evitare)"},"content":{"rendered":"<p>Abbiamo avuto modo di esaminare, nel corso dei precedenti articoli, come funziona il <a href=\"https:\/\/www.gironi.it\/blog\/il-test-delle-ipotesi\/\">test delle ipotesi<\/a> e come il <a href=\"https:\/\/www.gironi.it\/blog\/il-t-test-per-due-campioni-testare-una-ipotesi-per-campioni-dipendenti-o-indipendenti\/\">t-test per due campioni<\/a> ci permetta di confrontare due gruppi in modo rigoroso. Abbiamo anche costruito <a href=\"https:\/\/www.gironi.it\/blog\/intervalli-di-confidenza\/\">intervalli di confidenza<\/a>, imparato a quantificare l&#8217;incertezza delle nostre stime, e visto con il <a href=\"https:\/\/www.gironi.it\/blog\/teorema-del-limite-centrale\/\">Teorema del Limite Centrale<\/a> perch\u00e9 tutto questo funziona anche quando i dati non sono normali.<\/p>\n<p>Ma c&#8217;\u00e8 una domanda che, nella realt\u00e0 operativa di chi fa SEO e marketing, si presenta con una frequenza quasi quotidiana: <strong>quale variante funziona meglio?<\/strong> Quale title tag porta pi\u00f9 click? Quale landing page converte di pi\u00f9? Quale meta description attira l&#8217;attenzione? Non \u00e8 una domanda accademica: \u00e8 la domanda che separa le decisioni basate sui dati dalle opinioni travestite da strategie.<\/p>\n<p>La buona notizia \u00e8 che per rispondere abbiamo gi\u00e0 tutti gli strumenti. L&#8217;<strong>A\/B testing<\/strong> non \u00e8 altro che l&#8217;applicazione diretta dei concetti di inferenza statistica che abbiamo costruito passo dopo passo: test delle ipotesi, confronto tra gruppi, significativit\u00e0. In questo articolo mettiamo tutto insieme.<\/p>\n<p><!--more--><\/p>\n<div style=\"border: 1px solid #ccc; padding: 1.2em 1.5em; margin: 1.5em 0; border-radius: 6px;\">\n<h3 style=\"margin-top: 0;\">Di cosa parleremo<\/h3>\n<ul>\n<li><a href=\"#cose-ab-test\">Cos&#8217;\u00e8 un A\/B test<\/a><\/li>\n<li><a href=\"#formulare-test\">Formulare correttamente un A\/B test<\/a><\/li>\n<li><a href=\"#esempio-landing\">Esempio pratico: conversion rate di due landing page<\/a><\/li>\n<li><a href=\"#errori-comuni\">Gli errori pi\u00f9 comuni<\/a><\/li>\n<li><a href=\"#frequentista-bayesiano\">Approccio frequentista vs bayesiano<\/a><\/li>\n<li><a href=\"#esempio-seo\">Esempio pratico SEO: meta description A\/B test<\/a><\/li>\n<li><a href=\"#prova-tu\">Prova tu<\/a><\/li>\n<\/ul>\n<\/div>\n<h2 id=\"cose-ab-test\">Cos&#8217;\u00e8 un A\/B test<\/h2>\n<p>Un A\/B test \u00e8, nella sua essenza, un <strong>esperimento controllato<\/strong>: prendiamo due varianti di qualcosa (una pagina, un titolo, una call-to-action), assegniamo casualmente gli utenti a una delle due varianti, e misuriamo quale produce risultati migliori.<\/p>\n<p>La variante <strong>A<\/strong> \u00e8 il <strong>controllo<\/strong> (la versione attuale, quella che stiamo gi\u00e0 usando). La variante <strong>B<\/strong> \u00e8 il <strong>trattamento<\/strong> (la nuova versione che vogliamo testare). La logica \u00e8 la stessa di un esperimento scientifico: cambiamo una sola variabile alla volta, manteniamo tutto il resto costante, e osserviamo se il cambiamento produce un effetto misurabile.<\/p>\n<p>Tre elementi rendono un A\/B test affidabile. La <strong>randomizzazione<\/strong>: gli utenti vengono assegnati a A o B in modo casuale. Questo \u00e8 fondamentale, perch\u00e9 se mostrassimo A di mattina e B di pomeriggio, ogni differenza osservata potrebbe dipendere dall&#8217;orario, non dalla variante. Il <strong>gruppo di controllo<\/strong>: senza A come riferimento, non sapremmo se i risultati di B sono buoni o cattivi. E infine una <strong>metrica di successo<\/strong> definita in anticipo: CTR, tasso di conversione, tempo sulla pagina. La metrica va scelta <em>prima<\/em> di raccogliere i dati, non dopo (torneremo su questo punto tra poco).<\/p>\n<p>Ma perch\u00e9 serve la statistica? Perch\u00e9 i dati sono rumorosi. Se la variante A ha un CTR del 5.0% e la variante B del 5.3%, quella differenza \u00e8 reale o \u00e8 solo fluttuazione casuale? L&#8217;occhio nudo non pu\u00f2 distinguere: ci serve un test formale. Ed \u00e8 esattamente il <strong>test per due campioni<\/strong> che abbiamo gi\u00e0 visto \u2014 applicato a proporzioni anzich\u00e9 a medie.<\/p>\n<h2 id=\"formulare-test\">Formulare correttamente un A\/B test<\/h2>\n<p>Prima di raccogliere dati, dobbiamo impostare il test in modo rigoroso. Vediamo come.<\/p>\n<p><strong>Scegliere la metrica.<\/strong> La metrica deve essere chiara, misurabile e direttamente collegata all&#8217;obiettivo. Per un title tag, la metrica naturale \u00e8 il <strong>CTR<\/strong> (Click-Through Rate). Per una landing page, il <strong>tasso di conversione<\/strong>. Per un articolo del blog, magari il <strong>tempo medio sulla pagina<\/strong>. Va sempre tenuto bene a mente: una metrica vaga (&#8220;la pagina piace di pi\u00f9&#8221;) non \u00e8 una metrica.<\/p>\n<p><strong>Definire le ipotesi.<\/strong> Come in ogni test statistico, partiamo da un&#8217;ipotesi nulla e un&#8217;ipotesi alternativa:<\/p>\n<ul>\n<li>\\(H_0\\): le due varianti hanno lo stesso effetto (nessuna differenza tra A e B)<\/li>\n<li>\\(H_1\\): le due varianti hanno un effetto diverso (esiste una differenza)<\/li>\n<\/ul>\n<p><strong>Il test statistico.<\/strong> Quando confrontiamo due proporzioni (come due CTR o due tassi di conversione), il test appropriato \u00e8 lo <strong>z-test per due proporzioni<\/strong>. La logica \u00e8 la stessa del t-test per due campioni, ma adattata a dati binari (click\/non-click, conversione\/non-conversione).<\/p>\n<p>La statistica test si calcola cos\u00ec. Prima, calcoliamo la <strong>proporzione pooled<\/strong> (combinata), che \u00e8 la nostra migliore stima della proporzione comune sotto l&#8217;ipotesi nulla:<\/p>\n\\(<br \/>\n\\hat{p} = \\frac{x_1 + x_2}{n_1 + n_2} \\\\<br \/>\n\\)\n<p>dove \\(x_1\\) e \\(x_2\\) sono i successi (click, conversioni) nei due gruppi, e \\(n_1\\) e \\(n_2\\) le dimensioni dei campioni.<\/p>\n<p>Poi calcoliamo la statistica z:<\/p>\n\\(<br \/>\nz = \\frac{\\hat{p}_1 &#8211; \\hat{p}_2}{\\sqrt{\\hat{p}(1-\\hat{p})\\left(\\frac{1}{n_1} + \\frac{1}{n_2}\\right)}} \\\\<br \/>\n\\)\n<p>Al numeratore c&#8217;\u00e8 la differenza osservata tra le due proporzioni; al denominatore, l&#8217;errore standard sotto l&#8217;ipotesi nulla. Il rapporto ci dice quante &#8220;unit\u00e0 di errore standard&#8221; separano le due proporzioni: pi\u00f9 \u00e8 alto, pi\u00f9 la differenza \u00e8 difficile da attribuire al caso.<\/p>\n<h3>Esempio: CTR di due title tag<\/h3>\n<p>Facciamo un esempio concreto. Abbiamo testato due varianti di title tag per una pagina importante del sito:<\/p>\n<ul>\n<li><strong>Title A<\/strong> (controllo): 1500 impressioni, 75 click \u2192 CTR = 5.0%<\/li>\n<li><strong>Title B<\/strong> (trattamento): 1500 impressioni, 105 click \u2192 CTR = 7.0%<\/li>\n<\/ul>\n<p>Il title B sembra migliore, ma la differenza \u00e8 statisticamente significativa? Calcoliamo passo dopo passo.<\/p>\n<p><strong>Passo 1<\/strong>: la proporzione pooled:<\/p>\n\\(<br \/>\n\\hat{p} = \\frac{75 + 105}{1500 + 1500} = \\frac{180}{3000} = 0.06 \\\\<br \/>\n\\)\n<p><strong>Passo 2<\/strong>: l&#8217;errore standard:<\/p>\n\\(<br \/>\nSE = \\sqrt{0.06 \\times 0.94 \\times \\left(\\frac{1}{1500} + \\frac{1}{1500}\\right)} = \\sqrt{0.0564 \\times 0.00133} \\approx 0.00867 \\\\<br \/>\n\\)\n<p><strong>Passo 3<\/strong>: la statistica z:<\/p>\n\\(<br \/>\nz = \\frac{0.07 &#8211; 0.05}{0.00867} \\approx 2.31 \\\\<br \/>\n\\)\n<p><strong>Passo 4<\/strong>: il p-value. Per un test a due code, \\(p \\approx 0.021\\).<\/p>\n<p>Dunque: il p-value \u00e8 inferiore a 0.05. Possiamo rifiutare l&#8217;ipotesi nulla e concludere che la differenza tra i due title tag \u00e8 statisticamente significativa. Il title B ha un CTR significativamente pi\u00f9 alto.<\/p>\n<p>Calcoliamo lo stesso test in R:<\/p>\n<pre><code class=\"language-r\"># Dati\nn1 &lt;- 1500; x1 &lt;- 75    # Title A\nn2 &lt;- 1500; x2 &lt;- 105   # Title B\np1 &lt;- x1 \/ n1  # 0.05\np2 &lt;- x2 \/ n2  # 0.07\n\n# Proporzione pooled e z-test\np_pool &lt;- (x1 + x2) \/ (n1 + n2)\nse &lt;- sqrt(p_pool * (1 - p_pool) * (1\/n1 + 1\/n2))\nz &lt;- (p2 - p1) \/ se\np_value &lt;- 2 * (1 - pnorm(abs(z)))\n\ncat(\"z =\", round(z, 3), \"\\n\")\ncat(\"p-value =\", round(p_value, 4), \"\\n\")<\/code><\/pre>\n<p>Risultato: z = 2.309, p-value = 0.0209.<\/p>\n<h2 id=\"esempio-landing\">Esempio pratico: conversion rate di due landing page<\/h2>\n<p>Passiamo a un esempio pi\u00f9 articolato. Un e-commerce sta testando due varianti della propria landing page:<\/p>\n<ul>\n<li><strong>Pagina A<\/strong> (design attuale): 1000 visitatori, 35 conversioni \u2192 tasso di conversione = 3.5%<\/li>\n<li><strong>Pagina B<\/strong> (nuovo design): 1000 visitatori, 58 conversioni \u2192 tasso di conversione = 5.8%<\/li>\n<\/ul>\n<p>La differenza appare sostanziosa (2.3 punti percentuali), ma con questi numeri \u00e8 sufficiente per escludere il caso?<\/p>\n<p>Verifichiamo in R con <code>prop.test()<\/code>, che esegue il test per due proporzioni:<\/p>\n<pre><code class=\"language-r\">risultato &lt;- prop.test(\n  x = c(35, 58),\n  n = c(1000, 1000)\n)\n\nprint(risultato)<\/code><\/pre>\n<p>La funzione restituisce il p-value del test e, cosa molto utile, l&#8217;<strong>intervallo di confidenza della differenza<\/strong> tra le due proporzioni. In questo caso il p-value \u00e8 circa 0.019 \u2014 inferiore a 0.05, quindi la differenza \u00e8 statisticamente significativa.<\/p>\n<p>Ma \u00e8 l&#8217;intervallo di confidenza della differenza che ci d\u00e0 l&#8217;informazione pi\u00f9 preziosa: non solo <em>se<\/em> B \u00e8 meglio di A, ma <em>di quanto<\/em>, con quale margine di incertezza. Se l&#8217;IC della differenza va da circa 0.4 a 4.2 punti percentuali, sappiamo che B \u00e8 quasi certamente migliore, e il miglioramento si colloca in quell&#8217;intervallo. \u00c8 un&#8217;informazione molto pi\u00f9 ricca di un semplice &#8220;s\u00ec, \u00e8 significativo&#8221;.<\/p>\n<p>n.b.: <code>prop.test()<\/code> applica una <strong>correzione di continuit\u00e0<\/strong> (correzione di Yates) che rende il test leggermente pi\u00f9 conservativo. Per campioni grandi la differenza \u00e8 trascurabile; per campioni piccoli, \u00e8 una cautela benvenuta.<\/p>\n<h2 id=\"errori-comuni\">Gli errori pi\u00f9 comuni<\/h2>\n<p>L&#8217;A\/B testing \u00e8 uno strumento potente, ma insidioso. La facilit\u00e0 con cui si pu\u00f2 impostare un test nasconde insidie metodologiche serie. Vediamo le pi\u00f9 frequenti.<\/p>\n<h3>Fermare il test troppo presto<\/h3>\n<p>\u00c8 la tentazione pi\u00f9 forte: dopo pochi giorni, B sembra nettamente migliore di A. Perch\u00e9 aspettare ancora? Perch\u00e9 quei risultati preliminari sono <strong>rumore<\/strong>, non segnale.<\/p>\n<p>Il problema ha un nome tecnico: <strong>peeking<\/strong> (come dicono gli anglosassoni, &#8220;sbirciare&#8221;). Ogni volta che guardiamo i dati intermedi e decidiamo se fermarci, aumentiamo la probabilit\u00e0 di un falso positivo. \u00c8 come lanciare una moneta: se ci fermiamo ogni volta che esce testa tre volte di fila, concluderemo che la moneta \u00e8 truccata. Ma non lo \u00e8 \u2014 semplicemente, non le abbiamo dato abbastanza lanci.<\/p>\n<p><strong>Come evitarlo<\/strong>: definire <em>prima<\/em> la dimensione campionaria necessaria e attendere di raggiungere quel numero prima di trarre conclusioni. Nel frattempo, puoi usare il nostro <a href=\"https:\/\/www.gironi.it\/blog\/calcolatore-sample-size-ab-test\/\">calcolatore di sample size<\/a> per determinare quanti utenti ti servono prima di avviare il test.<\/p>\n<h3>Testare troppe varianti senza correzione<\/h3>\n<p>Un altro errore frequente: testare tre, quattro, cinque varianti contemporaneamente (A\/B\/C\/D&#8230;) e poi confrontarle tutte a coppie. Il problema \u00e8 quello delle <strong>comparazioni multiple<\/strong>: pi\u00f9 confronti facciamo, pi\u00f9 \u00e8 probabile trovare almeno un risultato significativo per puro caso.<\/p>\n<p>Con 5 varianti e 10 confronti a coppie, la probabilit\u00e0 di trovare almeno un falso positivo sale dal 5% a quasi il 40%. Non \u00e8 un dettaglio: \u00e8 un errore che invalida l&#8217;intero test.<\/p>\n<p><strong>Come evitarlo<\/strong>: se servono confronti multipli, applicare una <strong>correzione di Bonferroni<\/strong> (dividere la soglia \\(\\alpha\\) per il numero di confronti) o, meglio ancora, limitarsi a testare una variante alla volta.<\/p>\n<h3>Ignorare la potenza del test<\/h3>\n<p>Il rischio di falso positivo (errore di tipo I, \\(\\alpha\\)) lo conosciamo bene. Ma c&#8217;\u00e8 un rischio speculare che viene spesso ignorato: il <strong>falso negativo<\/strong> (errore di tipo II, \\(\\beta\\)). Succede quando B \u00e8 davvero meglio di A, ma il nostro test non riesce a rilevarlo.<\/p>\n<p>La causa pi\u00f9 comune? Un <strong>campione troppo piccolo<\/strong>. Se abbiamo solo 100 visitatori per variante, il test non ha abbastanza &#8220;potenza&#8221; per rilevare differenze piccole ma reali. Concluderemo &#8220;nessuna differenza significativa&#8221; non perch\u00e9 la differenza non esiste, ma perch\u00e9 non avevamo abbastanza dati per vederla.<\/p>\n<p><strong>Come evitarlo<\/strong>: calcolare la dimensione campionaria necessaria <em>prima<\/em> di avviare il test, in base all&#8217;effetto minimo che vogliamo rilevare. \u00c8 il tema della <strong>power analysis<\/strong>: usa il <a href=\"https:\/\/www.gironi.it\/blog\/calcolatore-sample-size-ab-test\/\">calcolatore di dimensione campionaria<\/a> per verificare se il tuo test ha abbastanza potenza.<\/p>\n<h3>Confondere significativit\u00e0 statistica con significativit\u00e0 pratica<\/h3>\n<p>Un p-value basso non significa automaticamente che il risultato sia <em>importante<\/em>. Con campioni molto grandi, anche differenze microscopiche diventano statisticamente significative. Se testiamo due varianti su 500.000 visitatori, una differenza di CTR dello 0.01% (dal 5.00% al 5.01%) potrebbe risultare significativa. Ma \u00e8 una differenza operativamente irrilevante.<\/p>\n<p><strong>Attenzione<\/strong>: il p-value risponde alla domanda &#8220;la differenza \u00e8 reale?&#8221;, non alla domanda &#8220;la differenza \u00e8 grande abbastanza da interessarci?&#8221;. Per quest&#8217;ultima serve una misura diversa \u2014 l&#8217;<strong>effect size<\/strong> \u2014 che tratteremo in un articolo dedicato.<\/p>\n<h2 id=\"frequentista-bayesiano\">Approccio frequentista vs bayesiano<\/h2>\n<p>Tutto ci\u00f2 che abbiamo visto finora segue l&#8217;approccio <strong>frequentista<\/strong>: calcoliamo una statistica test, la confrontiamo con una distribuzione di riferimento, otteniamo un p-value e prendiamo una decisione binaria (rifiutare o non rifiutare \\(H_0\\)).<\/p>\n<p>Funziona, e funziona bene. Ma ha dei limiti che nella pratica quotidiana si avvertono. Il p-value non ci dice &#8220;di quanto \u00e8 meglio B rispetto ad A&#8221;. Non ci dice &#8220;qual \u00e8 la probabilit\u00e0 che B sia davvero superiore&#8221;. E se raccogliamo nuovi dati, non possiamo semplicemente aggiornare il risultato: dobbiamo ricalcolare tutto da capo.<\/p>\n<p>Esiste un approccio alternativo che risponde direttamente alla domanda che in fondo ci interessa di pi\u00f9: <strong>qual \u00e8 la probabilit\u00e0 che B sia meglio di A?<\/strong> \u00c8 l&#8217;approccio <strong>bayesiano<\/strong>.<\/p>\n<p>L&#8217;idea \u00e8 questa. Invece di partire da un&#8217;ipotesi nulla e cercare di rifiutarla, partiamo da una <strong>distribuzione a priori<\/strong> (come dicono gli anglosassoni, <em>prior<\/em>) che rappresenta la nostra conoscenza iniziale sulla conversione di ciascuna variante. Poi, man mano che raccogliamo dati, aggiorniamo quella distribuzione. Il risultato \u00e8 una <strong>distribuzione a posteriori<\/strong> (<em>posterior<\/em>) che incorpora sia le nostre conoscenze pregresse sia i dati osservati.<\/p>\n<p>Per tassi di conversione, la distribuzione naturale \u00e8 la <strong>Beta<\/strong>: \u00e8 definita tra 0 e 1 (come una proporzione) e si aggiorna in modo molto elegante. Se partiamo da un prior \\(\\text{Beta}(\\alpha, \\beta)\\) e osserviamo \\(s\\) successi su \\(n\\) tentativi, il posterior \u00e8:<\/p>\n\\(<br \/>\n\\text{Beta}(\\alpha + s, \\, \\beta + n &#8211; s) \\\\<br \/>\n\\)\n<p>Sembra difficile? \u00c8 facilissimo. Usiamo i dati delle due landing page dell&#8217;esempio precedente. Partiamo da un <strong>prior non informativo<\/strong> \\(\\text{Beta}(1, 1)\\) \u2014 che equivale a dire &#8220;non sappiamo nulla, qualsiasi valore tra 0 e 1 \u00e8 ugualmente plausibile&#8221;:<\/p>\n<ul>\n<li><strong>Pagina A<\/strong>: 35 conversioni su 1000 \u2192 posterior \\(\\text{Beta}(36, \\, 966)\\)<\/li>\n<li><strong>Pagina B<\/strong>: 58 conversioni su 1000 \u2192 posterior \\(\\text{Beta}(59, \\, 943)\\)<\/li>\n<\/ul>\n<p>Calcoliamo in R la probabilit\u00e0 che B sia migliore di A:<\/p>\n<pre><code class=\"language-r\">set.seed(42)\nn_sim &lt;- 100000\n\n# Posterior delle due varianti\npost_A &lt;- rbeta(n_sim, shape1 = 36, shape2 = 966)\npost_B &lt;- rbeta(n_sim, shape1 = 59, shape2 = 943)\n\n# Probabilita' che B &gt; A\nprob_B_meglio &lt;- mean(post_B &gt; post_A)\ncat(\"P(B &gt; A) =\", round(prob_B_meglio, 4), \"\\n\")\n\n# Distribuzione della differenza\ndiff &lt;- post_B - post_A\ncat(\"Differenza mediana:\", round(median(diff) * 100, 2), \"punti %\\n\")\ncat(\"IC 95% della differenza:\",\n    round(quantile(diff, 0.025) * 100, 2), \"-\",\n    round(quantile(diff, 0.975) * 100, 2), \"punti %\\n\")<\/code><\/pre>\n<p>Il risultato \u00e8 notevole: la probabilit\u00e0 che B sia meglio di A \u00e8 superiore al 99%. Ma il vero vantaggio dell&#8217;approccio bayesiano \u00e8 che otteniamo direttamente la <strong>distribuzione della differenza<\/strong>: non solo sappiamo <em>se<\/em> B \u00e8 meglio, ma <em>di quanto<\/em>, con un intervallo di credibilit\u00e0 che quantifica la nostra incertezza.<\/p>\n<p>Questa \u00e8 una differenza sostanziale rispetto all&#8217;approccio frequentista. Il p-value ci dice &#8220;la differenza \u00e8 improbabile sotto \\(H_0\\)&#8220;; il risultato bayesiano ci dice &#8220;la probabilit\u00e0 che B sia migliore \u00e8 del 99%, e il miglioramento si colloca tra circa 0.5 e 4.2 punti percentuali&#8221;. Per una decisione operativa, la seconda informazione \u00e8 spesso pi\u00f9 utile.<\/p>\n<p>Una nota importante: l&#8217;approccio bayesiano completo merita un articolo dedicato. Qui abbiamo appena scalfito la superficie \u2014 il tema dei prior informativi, dei modelli gerarchici e della loro applicazione sistematica \u00e8 un percorso a s\u00e9 che affronteremo nella sezione dedicata alla statistica bayesiana.<\/p>\n<h2 id=\"esempio-seo\">Esempio pratico SEO: meta description A\/B test<\/h2>\n<p>Vediamo un ultimo scenario, molto comune nella pratica quotidiana. Abbiamo due varianti di meta description per una pagina chiave del sito. Alternando le due versioni (due settimane ciascuna, per minimizzare effetti stagionali) e consultando i dati di Search Console, otteniamo:<\/p>\n<ul>\n<li><strong>Meta A<\/strong>: 3200 impressioni, 128 click \u2192 CTR = 4.0%<\/li>\n<li><strong>Meta B<\/strong>: 3100 impressioni, 155 click \u2192 CTR = 5.0%<\/li>\n<\/ul>\n<p>Verifichiamo in R:<\/p>\n<pre><code class=\"language-r\">prop.test(c(128, 155), c(3200, 3100))<\/code><\/pre>\n<p>il p-value \u00e8 circa 0.064 \u2014 superiore alla soglia di 0.05, quindi non possiamo rifiutare l&#8217;ipotesi nulla. Anche l&#8217;intervallo di confidenza della differenza include lo zero, confermando la non significativit\u00e0. Un risultato al limite, che ci dice: con questi dati non abbiamo abbastanza evidenza per concludere che la meta B sia davvero migliore.Quale approccio usare? Per un test semplice come questo, l&#8217;approccio frequentista con <code>prop.test()<\/code> \u00e8 pi\u00f9 che sufficiente: abbiamo campioni grandi, la domanda \u00e8 chiara. L&#8217;approccio bayesiano diventa pi\u00f9 prezioso quando i campioni sono piccoli, quando vogliamo aggiornare il risultato man mano che arrivano nuovi dati, o quando abbiamo conoscenze pregresse da incorporare (ad esempio, sappiamo che per quel tipo di pagina il CTR \u00e8 tipicamente tra il 3% e il 7%).<\/p>\n<p>Ma la decisione operativa non deve basarsi solo sul p-value. Dobbiamo chiederci: la differenza (un punto percentuale di CTR in pi\u00f9) \u00e8 abbastanza grande da giustificare il cambiamento? Con 3000 e pi\u00f9 impressioni al mese, un punto percentuale in pi\u00f9 significa circa 30 click aggiuntivi. \u00c8 significativo <em>per il nostro business<\/em>? Questa \u00e8 una domanda che la statistica non pu\u00f2 risolvere da sola \u2014 \u00e8 una valutazione che spetta a noi.<\/p>\n<h2 id=\"prova-tu\">Prova tu<\/h2>\n<p>Un e-commerce sta testando due varianti di call-to-action su una pagina prodotto:<\/p>\n<ul>\n<li><strong>Variante A<\/strong> (&#8220;Aggiungi al carrello&#8221;): 450 visite, 23 conversioni<\/li>\n<li><strong>Variante B<\/strong> (&#8220;Compralo ora&#8221;): 430 visite, 31 conversioni<\/li>\n<\/ul>\n<ol>\n<li>Calcola il tasso di conversione di ciascuna variante<\/li>\n<li>Esegui il test con <code>prop.test(c(23, 31), c(450, 430))<\/code> e interpreta il p-value<\/li>\n<li>L&#8217;intervallo di confidenza della differenza include lo zero?<\/li>\n<li>Al livello di significativit\u00e0 del 5%, la differenza \u00e8 statisticamente significativa?<\/li>\n<\/ol>\n<p>Suggerimento: se il p-value \u00e8 superiore a 0.05, non possiamo concludere che una variante sia meglio dell&#8217;altra \u2014 ma questo non significa che siano uguali. Potrebbe semplicemente significare che non abbiamo abbastanza dati. \u00c8 esattamente il problema della potenza del test di cui abbiamo parlato.<\/p>\n<p>L&#8217;A\/B testing ci offre un framework rigoroso per prendere decisioni basate sui dati, non sulle intuizioni. Ma come abbiamo visto, un test ben condotto ci dice <em>se<\/em> c&#8217;\u00e8 una differenza significativa \u2014 non ci dice quanto sia <em>grande<\/em> quell&#8217;effetto, n\u00e9 quanti dati ci servano per rilevarlo con sicurezza. Sono le domande dell&#8217;<strong>effect size<\/strong> e della <strong>power analysis<\/strong>, i prossimi strumenti nel nostro percorso. Per la dimensione campionaria, il <a href=\"https:\/\/www.gironi.it\/blog\/calcolatore-sample-size-ab-test\/\">calcolatore interattivo<\/a> ti permette di ottenere il numero esatto in tempo reale.<\/p>\n<hr>\n<h3>Per approfondire<\/h3>\n<p>Se vuoi approfondire la metodologia degli esperimenti online, <a href=\"https:\/\/www.amazon.it\/dp\/1108724264?tag=consulenzeinf-21\" target=\"_blank\" rel=\"nofollow sponsored noopener\"><em>Trustworthy Online Controlled Experiments<\/em><\/a> di Ron Kohavi, Diane Tang e Ya Xu \u00e8 il riferimento mondiale sull&#8217;A\/B testing. Gli autori hanno guidato le piattaforme di sperimentazione di Microsoft, Amazon e LinkedIn \u2014 e il libro copre tutto, dal design del test alle insidie che abbiamo visto in questo articolo, fino agli aspetti organizzativi che fanno la differenza tra un test ben condotto e un esercizio sterile.<\/p>\n<p>Per chi vuole esplorare l&#8217;approccio bayesiano all&#8217;A\/B testing (che abbiamo appena introdotto), <a href=\"https:\/\/www.amazon.it\/dp\/1593279566?tag=consulenzeinf-21\" target=\"_blank\" rel=\"nofollow sponsored noopener\"><em>Bayesian Statistics the Fun Way<\/em><\/a> di Will Kurt \u00e8 un&#8217;introduzione accessibile e sorprendentemente divertente. Spiega prior, posterior e aggiornamento bayesiano con esempi che non richiedono una laurea in matematica \u2014 e usa R per la parte computazionale.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Abbiamo avuto modo di esaminare, nel corso dei precedenti articoli, come funziona il test delle ipotesi e come il t-test per due campioni ci permetta di confrontare due gruppi in modo rigoroso. Abbiamo anche costruito intervalli di confidenza, imparato a quantificare l&#8217;incertezza delle nostre stime, e visto con il Teorema del Limite Centrale perch\u00e9 tutto &hellip; <a href=\"https:\/\/www.gironi.it\/blog\/ab-testing\/\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;A\/B Testing: come condurre esperimenti statisticamente validi (e gli errori da evitare)&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[629],"tags":[],"class_list":["post-3385","post","type-post","status-publish","format-standard","hentry","category-statistica-it"],"lang":"it","translations":{"it":3385},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false},"uagb_author_info":{"display_name":"paolo","author_link":"https:\/\/www.gironi.it\/blog\/author\/paolo\/"},"uagb_comment_info":5,"uagb_excerpt":"Abbiamo avuto modo di esaminare, nel corso dei precedenti articoli, come funziona il test delle ipotesi e come il t-test per due campioni ci permetta di confrontare due gruppi in modo rigoroso. Abbiamo anche costruito intervalli di confidenza, imparato a quantificare l&#8217;incertezza delle nostre stime, e visto con il Teorema del Limite Centrale perch\u00e9 tutto&hellip;","_links":{"self":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/comments?post=3385"}],"version-history":[{"count":6,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3385\/revisions"}],"predecessor-version":[{"id":3497,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3385\/revisions\/3497"}],"wp:attachment":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/media?parent=3385"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/categories?post=3385"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/tags?post=3385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}