  {"id":3558,"date":"2026-05-06T15:45:50","date_gmt":"2026-05-06T14:45:50","guid":{"rendered":"https:\/\/www.gironi.it\/blog\/?p=3558"},"modified":"2026-05-06T15:57:09","modified_gmt":"2026-05-06T14:57:09","slug":"campionamento-e-dimensione-campionaria-quanti-dati-servono","status":"publish","type":"post","link":"https:\/\/www.gironi.it\/blog\/campionamento-e-dimensione-campionaria-quanti-dati-servono\/","title":{"rendered":"Campionamento e Dimensione Campionaria: Quanti Dati Servono?"},"content":{"rendered":"\n<div style=\"background-color: #f8f9fa;padding: 20px;border-radius: 8px;margin-bottom: 30px;border-left: 4px solid #4a90e2\">\n<h3 style=\"margin-top: 0\">In questo articolo:<\/h3>\n<ul style=\"margin-bottom: 0\">\n<li><a href=\"#tipi-campionamento\">Come scegliere chi misurare: i tipi di campionamento<\/a><\/li>\n<li><a href=\"#formula-dimensione\">La dimensione campionaria: la matematica dietro la stima<\/a><\/li>\n<li><a href=\"#esempio-codice\">Calcoliamolo in R e Python<\/a><\/li>\n<li><a href=\"#collegamento-ab-test\">Dalla stima all&#8217;A\/B Testing<\/a><\/li>\n<li><a href=\"#bias-errore\">Errore campionario vs Bias<\/a><\/li>\n<li><a href=\"#prova-tu\">Prova tu<\/a><\/li>\n<\/ul>\n<\/div>\n\n\n\n<p>Nella vita di tutti i giorni, come nella web analytics, dobbiamo spesso prendere decisioni basate su informazioni incomplete. Quanti dati mi servono per capire se questa modifica alla landing page ha funzionato? Mille visite bastano? Diecimila sono troppe?<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Non possiamo quasi mai misurare l&#8217;intera popolazione (ad esempio, tutti i futuri visitatori di un sito). Dobbiamo lavorare su un <strong>campione<\/strong>. E qui sta l&#8217;equilibrio delicato: un campione troppo piccolo porta a conclusioni sbagliate, uno inutilmente grande fa sprecare tempo e risorse. La domanda diventa allora: <strong>quanti dati ci servono davvero?<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"tipi-campionamento\">Come scegliere chi misurare: i tipi di campionamento<\/h2>\n\n\n\n<p>Prima di capire <em>quanti<\/em> dati ci servono, dobbiamo capire <em>come<\/em> raccoglierli. I tre metodi principali sono:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Campionamento casuale semplice:<\/strong> Ogni utente ha esattamente la stessa probabilit\u00e0 di essere scelto. \u00c8 il gold standard, quello che cerchiamo di ottenere quando randomizziamo gli utenti in un A\/B test.<\/li>\n<li><strong>Campionamento stratificato:<\/strong> Dividiamo gli utenti in gruppi (es. traffico Mobile e Desktop) e campioniamo casualmente all&#8217;interno di ogni gruppo, rispettando le proporzioni originali. Assicura che nessuna minoranza importante venga ignorata.<\/li>\n<li><strong>Campionamento sistematico:<\/strong> Scegliamo un utente ogni <em>k<\/em> (es. un utente ogni 10). Facile da implementare, ma insidioso quando nei dati si nasconde una ciclicit\u00e0 (immaginiamo di campionare un utente ogni 7: se prendiamo solo i luned\u00ec, la stima sar\u00e0 deformata in partenza).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"formula-dimensione\">La dimensione campionaria: la matematica dietro la stima<\/h2>\n\n\n\n<p>L&#8217;intuizione \u00e8 semplice: pi\u00f9 \u00e8 piccolo l&#8217;effetto che cerchiamo (o pi\u00f9 i dati sono variabili), pi\u00f9 dati ci servono per distinguerlo dal rumore di fondo. Sembra difficile da formalizzare? \u00c8 pi\u00f9 lineare di quanto sembri.<\/p>\n\n\n\n<p>Per calcolare il numero esatto, ci servono tre ingredienti:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Livello di confidenza:<\/strong> Quanto vogliamo essere sicuri? Di solito si usa il 95% (che corrisponde a uno Z-score di 1.96).<\/li>\n<li><strong>Margine di errore (E):<\/strong> L&#8217;errore massimo che siamo disposti ad accettare (es. 1% o 0.01).<\/li>\n<li><strong>Proporzione attesa (p):<\/strong> La stima del tasso di conversione. Se non ne abbiamo idea, usiamo 0.5 (50%): \u00e8 il caso di massima incertezza e dar\u00e0 il campione pi\u00f9 grande possibile, quindi la scelta pi\u00f9 conservativa.<\/li>\n<\/ul>\n\n\n\n<p>La formula per stimare una proporzione (come il Conversion Rate) \u00e8:<\/p>\n\n\n\n<p style=\"text-align: center;font-size: 1.2em\"><strong>n = (Z&sup2; &times; p(1 &#8211; p)) \/ E&sup2;<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"esempio-codice\">Calcoliamolo in R e Python<\/h2>\n\n\n\n<p>Facciamo un esempio al volo. Vogliamo stimare il Conversion Rate di una nuova pagina con un margine di errore dell&#8217;1% (0.01) e un livello di confidenza del 95% (Z = 1.96). Per cautela, impostiamo p = 0.5.<\/p>\n\n\n\n<p>Gli esempi seguono sia in R sia in Python: ognuno scelga il linguaggio con cui ha pi\u00f9 familiarit\u00e0.<\/p>\n\n\n\n<p>Calcoliamo in R:<\/p>\n\n\n\n<pre><code class=\"language-r\"># Calcolo della dimensione campionaria per una proporzione\nZ &lt;- 1.96\np &lt;- 0.5\nE &lt;- 0.01\n\nn &lt;- (Z^2 * p * (1-p)) \/ E^2\nprint(paste(\"Dimensione necessaria:\", round(n)))\n# Output: Dimensione necessaria: 9604<\/code><\/pre>\n\n\n\n<p>Verifichiamo in Python:<\/p>\n\n\n\n<pre><code class=\"language-python\"># Calcolo della dimensione campionaria per una proporzione\nZ = 1.96\np = 0.5\nE = 0.01\n\nn = (Z**2 * p * (1-p)) \/ E**2\nprint(f\"Dimensione necessaria: {round(n)}\")\n# Output: Dimensione necessaria: 9604<\/code><\/pre>\n\n\n\n<p>Come si vede, servono circa 9.604 utenti per avere quella precisione. n.b.: se accettassimo un margine di errore del 2% (E=0.02), il numero crollerebbe a circa 2.401. \u00c8 l&#8217;effetto dell&#8217;<em>E<\/em> al quadrato a denominatore: dimezzare la pretesa di precisione significa dividere per quattro il campione richiesto. Va sempre tenuto bene a mente quando si decide quale margine accettare.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"collegamento-ab-test\">Dalla stima all&#8217;A\/B Testing<\/h2>\n\n\n\n<p>La formula vista finora serve a stimare una singola proporzione. Ma nella pratica quotidiana della CRO (Conversion Rate Optimization) il problema \u00e8 quasi sempre un altro: <em>confrontare<\/em> due proporzioni, come in un A\/B test.<\/p>\n\n\n\n<p>In quel caso la logica \u00e8 la stessa, ma la formula si complica perch\u00e9 entrano in gioco due concetti nuovi: l&#8217;<strong>Effect Size<\/strong> (la minima differenza che vogliamo rilevare) e la <strong>Potenza Statistica<\/strong> (come dicono gli anglosassoni, <em>power<\/em>).<\/p>\n\n\n\n<p>Per evitare di calcolarlo a mano ho preparato un <a href=\"\/blog\/calcolatore-sample-size-ab-test\/\">calcolatore interattivo del sample size per A\/B test<\/a>: fa il lavoro sporco al posto nostro e indica anche per quanti giorni far girare il test, dato il traffico medio della pagina.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"bias-errore\">Errore campionario vs Bias<\/h2>\n\n\n\n<p>Va sempre tenuto bene a mente un punto, prima di chiudere. L&#8217;errore di campionamento (quello che la formula gestisce) \u00e8 inevitabile e si riduce aumentando i dati. Ma c&#8217;\u00e8 un nemico molto pi\u00f9 insidioso, e nessuna formula lo cattura: il <strong>bias<\/strong>.<\/p>\n\n\n\n<p>Se testiamo una pagina solo durante il weekend, possiamo anche raccogliere un milione di visite (errore campionario praticamente nullo), ma il campione non sar\u00e0 rappresentativo degli utenti infrasettimanali. Dunque: nessuna formula pu\u00f2 salvare un campione distorto all&#8217;origine. Meglio mille osservazioni ben raccolte di un milione raccolte male.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"prova-tu\">Prova tu<\/h2>\n\n\n\n<p>Una pagina prodotto riceve circa 10.000 impressioni al mese su Google, con un CTR osservato del 3,5%. Vogliamo stimare il vero CTR con un margine di errore di 1 punto percentuale (E = 0,01) e una confidenza del 95%.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Calcola la dimensione campionaria necessaria con la formula vista, prima usando p = 0,5 (caso conservativo) e poi p = 0,035 (CTR osservato).<\/li>\n<li>Confronta i due risultati: di quanto cambia il fabbisogno di dati quando abbiamo una stima ragionevole di p?<\/li>\n<li>Considerando le 10.000 impressioni al mese, in quanti mesi raccogliamo abbastanza dati per soddisfare la stima conservativa?<\/li>\n<li>Se accettassimo un margine del 2% (E = 0,02), come cambierebbe il tempo di raccolta?<\/li>\n<\/ol>\n\n\n\n<p>Suggerimento: in R basta una funzione minima \u2014 <code>sample_size &lt;- function(Z, p, E) ceiling((Z^2 * p * (1-p)) \/ E^2)<\/code> \u2014 da chiamare due volte con i due valori di <em>p<\/em>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>Adesso sappiamo come raccogliere un campione adeguato e quanti dati ci servono. Resta una domanda: come usiamo quel campione per confrontare in modo rigoroso due versioni della stessa pagina? \u00c8 qui che entra in gioco l&#8217;<a href=\"\/blog\/guida-ai-test-statistici-per-analisi-a-b\/\">A\/B testing vero e proprio<\/a>, ed \u00e8 il prossimo tassello del percorso.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"per-approfondire\">Per approfondire<\/h3>\n\n\n\n<p>Se vuoi approfondire il tema del campionamento, dei bias che possono distorcerlo e della logica dell&#8217;inferenza statistica, <a href=\"https:\/\/www.amazon.it\/dp\/8806246623?tag=consulenzeinf-21\" rel=\"nofollow sponsored noopener\" target=\"_blank\"><em>L&#8217;arte della statistica<\/em><\/a> di David Spiegelhalter \u00e8 il compagno di viaggio pi\u00f9 adatto. Spiegelhalter dedica pagine illuminanti a casi reali \u2014 sondaggi sbagliati, campioni di convenienza, statistiche che ingannano \u2014 e mostra come la matematica del campionamento valga poco senza una riflessione attenta su <em>come<\/em> i dati vengono raccolti.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In questo articolo: Come scegliere chi misurare: i tipi di campionamento La dimensione campionaria: la matematica dietro la stima Calcoliamolo in R e Python Dalla stima all&#8217;A\/B Testing Errore campionario vs Bias Prova tu Nella vita di tutti i giorni, come nella web analytics, dobbiamo spesso prendere decisioni basate su informazioni incomplete. Quanti dati mi &hellip; <a href=\"https:\/\/www.gironi.it\/blog\/campionamento-e-dimensione-campionaria-quanti-dati-servono\/\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;Campionamento e Dimensione Campionaria: Quanti Dati Servono?&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[626],"tags":[],"class_list":["post-3558","post","type-post","status-publish","format-standard","hentry","category-senza-categoria-it"],"lang":"it","translations":{"it":3558,"en":3559},"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":"autore-articoli","author_link":"https:\/\/www.gironi.it\/blog\/author\/autore-articoli\/"},"uagb_comment_info":0,"uagb_excerpt":"In questo articolo: Come scegliere chi misurare: i tipi di campionamento La dimensione campionaria: la matematica dietro la stima Calcoliamolo in R e Python Dalla stima all&#8217;A\/B Testing Errore campionario vs Bias Prova tu Nella vita di tutti i giorni, come nella web analytics, dobbiamo spesso prendere decisioni basate su informazioni incomplete. Quanti dati mi&hellip;","_links":{"self":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3558","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\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/comments?post=3558"}],"version-history":[{"count":3,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3558\/revisions"}],"predecessor-version":[{"id":3564,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3558\/revisions\/3564"}],"wp:attachment":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/media?parent=3558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/categories?post=3558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/tags?post=3558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}