{"id":3407,"date":"2026-02-21T15:38:18","date_gmt":"2026-02-21T14:38:18","guid":{"rendered":"https:\/\/www.gironi.it\/blog\/?p=3407"},"modified":"2026-02-21T15:48:36","modified_gmt":"2026-02-21T14:48:36","slug":"statistica-bayesiana","status":"publish","type":"post","link":"https:\/\/www.gironi.it\/blog\/statistica-bayesiana\/","title":{"rendered":"Statistica bayesiana: come imparare dai dati, un passo alla volta"},"content":{"rendered":"<p>Abbiamo avuto modo di esaminare, nel corso dei precedenti articoli, l&#8217;inferenza statistica da una prospettiva precisa e coerente: formulare un&#8217;ipotesi, raccogliere dati, calcolare un p-value, costruire un <a href=\"https:\/\/www.gironi.it\/blog\/intervalli-di-confidenza\/\">intervallo di confidenza<\/a>. Abbiamo condotto <a href=\"https:\/\/www.gironi.it\/blog\/il-test-delle-ipotesi\/\">test delle ipotesi<\/a>, confrontato varianti con l&#8217;<a href=\"https:\/\/www.gironi.it\/blog\/ab-testing\/\">A\/B testing<\/a>, 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>Questo approccio &mdash; che si chiama <strong>frequentista<\/strong> &mdash; ha una logica chiara: il parametro che vogliamo stimare \u00e8 un valore fisso (anche se sconosciuto), e noi lo &#8220;inseguiamo&#8221; con i dati. Ma esiste un altro modo di pensare l&#8217;incertezza, un modo che permette di <strong>aggiornare le nostre convinzioni<\/strong> man mano che arrivano nuovi dati. Si chiama <strong>approccio bayesiano<\/strong>, e in questo articolo ne costruiamo le fondamenta.<\/p>\n<p>Partiamo da un esempio concreto. Immaginiamo di aver appena lanciato una campagna di advertising e di non conoscere il vero tasso di click. Abbiamo un&#8217;opinione iniziale, basata sull&#8217;esperienza (&#8220;di solito i tassi di click stanno tra lo 0% e il 20%&#8221;), e poi arrivano i dati. L&#8217;approccio bayesiano ci permette di combinare la nostra opinione iniziale con i dati osservati per ottenere una stima aggiornata &mdash; e di ripetere questo processo ogni volta che arrivano nuove informazioni.<\/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=\"#frequentisti-e-bayesiani\">Due modi di pensare l&#8217;incertezza: frequentisti e bayesiani<\/a><\/li>\n<li><a href=\"#teorema-di-bayes\">Il Teorema di Bayes<\/a><\/li>\n<li><a href=\"#esempio-numerico\">Esempio numerico: il tasso di click di una campagna ads<\/a><\/li>\n<li><a href=\"#aggiornamento-sequenziale\">L&#8217;aggiornamento sequenziale: il posterior di oggi \u00e8 il prior di domani<\/a><\/li>\n<li><a href=\"#prior-informativi\">Prior informativi e non informativi<\/a><\/li>\n<li><a href=\"#credible-vs-confidence\">Credible interval vs confidence interval<\/a><\/li>\n<li><a href=\"#quando-usare-bayesiano\">Quando usare l&#8217;approccio bayesiano<\/a><\/li>\n<li><a href=\"#prova-tu\">Prova tu<\/a><\/li>\n<li><a href=\"#per-approfondire\">Per approfondire<\/a><\/li>\n<\/ul>\n<\/div>\n<hr \/>\n<h2 id=\"frequentisti-e-bayesiani\">Due modi di pensare l&#8217;incertezza: frequentisti e bayesiani<\/h2>\n<p>Prima di entrare nella meccanica, chiariamo la differenza concettuale tra i due approcci. Non si tratta di una guerra: sono due modi diversi di rispondere alle stesse domande.<\/p>\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th><strong>Frequentista<\/strong><\/th>\n<th><strong>Bayesiano<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Il parametro<\/strong><\/td>\n<td>\u00c8 un valore fisso (sconosciuto)<\/td>\n<td>\u00c8 una variabile casuale con una distribuzione<\/td>\n<\/tr>\n<tr>\n<td><strong>La probabilit\u00e0<\/strong><\/td>\n<td>Frequenza relativa di un evento su ripetizioni infinite<\/td>\n<td>Grado di credenza (belief) su un evento<\/td>\n<\/tr>\n<tr>\n<td><strong>L&#8217;incertezza<\/strong><\/td>\n<td>Espressa tramite intervalli di confidenza<\/td>\n<td>Espressa tramite credible intervals<\/td>\n<\/tr>\n<tr>\n<td><strong>I dati precedenti<\/strong><\/td>\n<td>Non entrano nel modello<\/td>\n<td>Si incorporano tramite il prior<\/td>\n<\/tr>\n<tr>\n<td><strong>Interpretazione dell&#8217;IC\/CI<\/strong><\/td>\n<td>&#8220;Se ripetessi 100 volte, 95 intervalli conterrebbero il parametro&#8221;<\/td>\n<td>&#8220;C&#8217;\u00e8 il 95% di probabilit\u00e0 che il parametro sia in questo intervallo&#8221;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>L&#8217;approccio frequentista, quello che abbiamo usato finora, tratta il parametro come un numero fisso e ragiona sulla distribuzione dei dati. L&#8217;approccio bayesiano capovolge la prospettiva: tratta i dati come fissi (li abbiamo osservati, non cambiano) e ragiona sulla <strong>distribuzione del parametro<\/strong>, cio\u00e8 su quanto crediamo plausibili i vari valori che il parametro potrebbe assumere.<\/p>\n<p>Il vantaggio pratico del bayesiano \u00e8 che pu\u00f2 <strong>incorporare conoscenza pregressa<\/strong>. Se sappiamo qualcosa sul parametro prima di raccogliere i dati (per esperienza, per studi precedenti, per buon senso), possiamo usare quella conoscenza. E poi aggiornarla.<\/p>\n<hr \/>\n<h2 id=\"teorema-di-bayes\">Il Teorema di Bayes<\/h2>\n<p>Il cuore dell&#8217;approccio bayesiano \u00e8 una formula che risale al 1763, al reverendo Thomas Bayes. Partiamo dalla probabilit\u00e0 condizionata: la probabilit\u00e0 di A dato B.<\/p>\n<p>Sappiamo dalla teoria della probabilit\u00e0 che:<\/p>\n\\(<br \/>\nP(A|B) = \\frac{P(A \\cap B)}{P(B)} \\\\<br \/>\n\\)\n<p>e simmetricamente:<\/p>\n\\(<br \/>\nP(B|A) = \\frac{P(A \\cap B)}{P(A)} \\\\<br \/>\n\\)\n<p>Da queste due relazioni, ricavando \\(P(A \\cap B)\\) dalla seconda e sostituendo nella prima, otteniamo il <strong>Teorema di Bayes<\/strong>:<\/p>\n\\(<br \/>\nP(A|B) = \\frac{P(B|A) \\cdot P(A)}{P(B)} \\\\<br \/>\n\\)\n<p>Fin qui \u00e8 algebra. La magia avviene quando applichiamo questa formula al nostro problema: stimare un parametro \\(\\theta\\) (ad esempio, il tasso di click) a partire dai dati osservati. Il teorema diventa:<\/p>\n\\(<br \/>\nP(\\theta | \\text{dati}) = \\frac{P(\\text{dati} | \\theta) \\cdot P(\\theta)}{P(\\text{dati})} \\\\<br \/>\n\\)\n<p>Ogni pezzo di questa formula ha un nome e un ruolo preciso:<\/p>\n<ul>\n<li><strong>Prior<\/strong> \\(P(\\theta)\\): ci\u00f2 che crediamo sul parametro <em>prima<\/em> di vedere i dati. \u00c8 la nostra conoscenza pregressa, il nostro punto di partenza.<\/li>\n<li><strong>Likelihood<\/strong> \\(P(\\text{dati} | \\theta)\\): quanto i dati osservati sono compatibili con ciascun valore possibile di \\(\\theta\\). \u00c8 la stessa funzione di verosimiglianza che compare anche nell&#8217;approccio frequentista.<\/li>\n<li><strong>Posterior<\/strong> \\(P(\\theta | \\text{dati})\\): ci\u00f2 che crediamo sul parametro <em>dopo<\/em> aver visto i dati. \u00c8 il risultato finale, la nostra conoscenza aggiornata.<\/li>\n<li><strong>Evidence<\/strong> \\(P(\\text{dati})\\): la probabilit\u00e0 marginale dei dati. In pratica, \u00e8 una costante di normalizzazione che fa s\u00ec che il posterior sia una distribuzione di probabilit\u00e0 valida.<\/li>\n<\/ul>\n<p>Poich\u00e9 l&#8217;evidence \u00e8 costante (non dipende da \\(\\theta\\)), possiamo scrivere la relazione fondamentale:<\/p>\n\\(<br \/>\nP(\\theta | \\text{dati}) \\propto P(\\text{dati} | \\theta) \\cdot P(\\theta) \\\\<br \/>\n\\)\n<p>In parole: <strong>il posterior \u00e8 proporzionale al likelihood moltiplicato per il prior<\/strong>. Pi\u00f9 dati raccogliamo, pi\u00f9 il likelihood &#8220;domina&#8221; e il posterior si concentra attorno ai valori supportati dai dati. Ma con pochi dati, il prior conta &mdash; e conta molto.<\/p>\n<hr \/>\n<h2 id=\"esempio-numerico\">Esempio numerico: il tasso di click di una campagna ads<\/h2>\n<p>Passiamo alla pratica. Abbiamo lanciato una campagna pubblicitaria: l&#8217;annuncio \u00e8 stato mostrato 100 volte e ha ricevuto 13 click. Qual \u00e8 il vero tasso di click?<\/p>\n<p><strong>Il prior<\/strong>: non sappiamo quasi nulla, ma per esperienza riteniamo che i tassi di click stiano tipicamente tra lo 0% e il 20%. Modelliamo questa incertezza con una distribuzione uniforme su [0, 0.20].<\/p>\n<p><strong>L&#8217;approccio<\/strong>: usiamo una simulazione. Generiamo molti valori plausibili dal prior, simuliamo i dati che ciascun valore produrrebbe, e teniamo solo quelli compatibili con ci\u00f2 che abbiamo effettivamente osservato (13 click su 100). Ci\u00f2 che rimane \u00e8 il posterior.<\/p>\n<pre><code class=\"language-r\">set.seed(42)\n\nn_samples <- 100000\nn_ads_shown <- 100\nn_clicks_observed <- 13\n\n# 1. Generiamo campioni dal prior: uniforme tra 0 e 0.20\nproportion_clicks <- runif(n_samples, min = 0.0, max = 0.20)\n\n# 2. Per ogni valore di proporzione, simuliamo quanti click otterremmo\nn_visitors <- rbinom(n_samples, size = n_ads_shown, prob = proportion_clicks)\n\n# 3. Costruiamo il data frame con prior e dati simulati\nprior <- data.frame(proportion_clicks, n_visitors)\n\n# 4. Conditioning: teniamo solo i campioni compatibili con 13 click\nposterior <- prior[prior$n_visitors == n_clicks_observed, ]\n\ncat(\"Campioni nel prior:\", nrow(prior), \"\\n\")\ncat(\"Campioni nel posterior:\", nrow(posterior), \"\\n\")\ncat(\"Media del posterior:\", round(mean(posterior$proportion_clicks) * 100, 1), \"%\\n\")\ncat(\"Mediana del posterior:\", round(median(posterior$proportion_clicks) * 100, 1), \"%\\n\")<\/code><\/pre>\n<p>Risultato: dei 100.000 campioni iniziali, circa 4.700 sopravvivono al conditioning (il numero esatto varia per via della simulazione). La media e la mediana del posterior sono circa il 13.4%: un valore molto vicino ai 13 click su 100 che abbiamo osservato.<\/p>\n<p>Visualizziamo la trasformazione dal prior al posterior:<\/p>\n<pre><code class=\"language-r\">par(mfrow = c(1, 2))\n\n# Prior\nhist(prior$proportion_clicks, breaks = 30, probability = TRUE,\n     main = \"Prior\\n(uniforme 0-20%)\",\n     col = \"lightyellow\", xlab = \"Tasso di click\",\n     ylab = \"Densit\u00e0\", xlim = c(0, 0.25))\n\n# Posterior\nhist(posterior$proportion_clicks, breaks = 30, probability = TRUE,\n     main = \"Posterior\\n(dopo 13\/100 click)\",\n     col = \"lightblue\", xlab = \"Tasso di click\",\n     ylab = \"Densit\u00e0\", xlim = c(0, 0.25))<\/code><\/pre>\n<p>La differenza \u00e8 evidente. Il prior \u00e8 una distribuzione piatta (uniforme): tutti i valori tra 0% e 20% sono considerati ugualmente plausibili. Il posterior, invece, si concentra attorno al 13%, con una forma a campana. I dati hanno \"informato\" la nostra incertezza.<\/p>\n<p><strong>Il credible interval al 95%:<\/strong><\/p>\n<pre><code class=\"language-r\">ci_95 <- quantile(posterior$proportion_clicks, probs = c(0.025, 0.975))\ncat(\"Credible interval al 95%:\", round(ci_95[1] * 100, 1), \"% -\",\n    round(ci_95[2] * 100, 1), \"%\\n\")<\/code><\/pre>\n<p>Il credible interval al 95% \u00e8 circa 7.7% - 19.1%. Questo significa esattamente ci\u00f2 che sembra: c'\u00e8 il 95% di probabilit\u00e0 che il vero tasso di click sia compreso tra il 7.7% e il 19.1%.<\/p>\n<p><strong>Confronto con l'IC frequentista:<\/strong><\/p>\n<pre><code class=\"language-r\">prop_test <- prop.test(13, 100, correct = FALSE)\ncat(\"IC frequentista al 95%:\", round(prop_test$conf.int[1] * 100, 1), \"% -\",\n    round(prop_test$conf.int[2] * 100, 1), \"%\\n\")<\/code><\/pre>\n<p>L'IC frequentista al 95% \u00e8 circa 7.8% - 21.0%. I numeri sono simili, ma l'interpretazione \u00e8 diversa: l'IC frequentista ci dice che \"se ripetessimo il campionamento 100 volte, 95 intervalli conterrebbero il vero parametro\". Il credible interval bayesiano ci dice direttamente la probabilit\u00e0 che il parametro sia nell'intervallo. Quest'ultima \u00e8 l'interpretazione che la maggior parte delle persone <em>crede<\/em> di dare all'intervallo di confidenza &mdash; ma che, nell'approccio frequentista, \u00e8 tecnicamente scorretta.<\/p>\n<hr \/>\n<h2 id=\"aggiornamento-sequenziale\">L'aggiornamento sequenziale: il posterior di oggi \u00e8 il prior di domani<\/h2>\n<p>Ecco il punto in cui l'approccio bayesiano rivela la sua eleganza. Supponiamo che la campagna continui: dopo altri giorni, abbiamo 150 nuove impression e 20 nuovi click. Come aggiorniamo la nostra stima?<\/p>\n<p>Il principio \u00e8 semplice: <strong>il posterior che abbiamo appena calcolato diventa il nuovo prior<\/strong>. Non dobbiamo ricominciare da zero; partiamo da dove eravamo rimasti.<\/p>\n<pre><code class=\"language-r\"># Il posterior precedente diventa il nuovo prior\nprior_aggiornato <- posterior\n\n# Nuovi dati: 150 impression, 20 click\nn_ads_nuovi <- 150\nn_clicks_nuovi <- 20\n\n# Simuliamo i dati con le proporzioni del prior aggiornato\nn_samples_aggiornato <- nrow(prior_aggiornato)\nprior_aggiornato$n_visitors <- rbinom(n_samples_aggiornato,\n                                       size = n_ads_nuovi,\n                                       prob = prior_aggiornato$proportion_clicks)\n\n# Conditioning: teniamo solo i campioni compatibili con 20 click\nposterior_aggiornato <- prior_aggiornato[prior_aggiornato$n_visitors == n_clicks_nuovi, ]\n\ncat(\"Campioni nel posterior aggiornato:\", nrow(posterior_aggiornato), \"\\n\")\ncat(\"Media:\", round(mean(posterior_aggiornato$proportion_clicks) * 100, 1), \"%\\n\")\n\n# Nuovo credible interval\nci_aggiornato <- quantile(posterior_aggiornato$proportion_clicks, probs = c(0.025, 0.975))\ncat(\"Credible interval al 95%:\", round(ci_aggiornato[1] * 100, 1), \"% -\",\n    round(ci_aggiornato[2] * 100, 1), \"%\\n\")<\/code><\/pre>\n<p>In totale ora abbiamo osservato 33 click su 250 impression (13.2%). La media del posterior aggiornato \u00e8 circa il 13.5%, e il credible interval al 95% si \u00e8 ristretto a circa 9.6% - 17.9% (rispetto al 7.7% - 19.1% precedente). La distribuzione si \u00e8 \"stretta\": abbiamo pi\u00f9 dati, quindi siamo pi\u00f9 sicuri.<\/p>\n<p>Visualizziamo l'evoluzione:<\/p>\n<pre><code class=\"language-r\">par(mfrow = c(1, 3))\n\n# Prior originale\nhist(runif(10000, 0, 0.20), breaks = 30, probability = TRUE,\n     main = \"1. Prior originale\\n(uniforme 0-20%)\",\n     col = \"lightyellow\", xlab = \"Tasso di click\",\n     ylab = \"Densit\u00e0\", xlim = c(0, 0.25))\n\n# Posterior dopo primi dati (13\/100)\nhist(posterior$proportion_clicks, breaks = 30, probability = TRUE,\n     main = \"2. Dopo 13\/100 click\",\n     col = \"lightblue\", xlab = \"Tasso di click\",\n     ylab = \"Densit\u00e0\", xlim = c(0, 0.25))\n\n# Posterior dopo secondi dati (33\/250 totali)\nhist(posterior_aggiornato$proportion_clicks, breaks = 30, probability = TRUE,\n     main = \"3. Dopo 33\/250 click\",\n     col = \"lightgreen\", xlab = \"Tasso di click\",\n     ylab = \"Densit\u00e0\", xlim = c(0, 0.25))<\/code><\/pre>\n<p>Il messaggio visivo \u00e8 immediato: la distribuzione si sposta e si stringe. Da un'incertezza totale (tutto tra 0% e 20%), passando per una stima ragionevole (centrata sul 13%), arriviamo a una stima pi\u00f9 precisa attorno al 13.2%. Pi\u00f9 dati raccogliamo, pi\u00f9 il posterior si concentra attorno al valore vero.<\/p>\n<p>Questo \u00e8 l'<strong>aggiornamento bayesiano<\/strong>: un processo iterativo in cui l'informazione si accumula. Non buttiamo via niente di ci\u00f2 che sapevamo prima; lo integriamo con le nuove evidenze.<\/p>\n<hr \/>\n<h2 id=\"prior-informativi\">Prior informativi e non informativi<\/h2>\n<p>Negli esempi precedenti abbiamo usato un prior uniforme: \"tutti i valori tra 0% e 20% sono ugualmente plausibili\". Questo si chiama <strong>prior non informativo<\/strong> (o debolmente informativo): non esprime una preferenza forte per nessun valore.<\/p>\n<p>Ma nella pratica spesso <em>sappiamo<\/em> qualcosa. Se abbiamo gi\u00e0 gestito molte campagne pubblicitarie, sappiamo che i tassi di click stanno tipicamente tra il 5% e il 15%, con una concentrazione attorno al 10%. Possiamo esprimere questa conoscenza con un <strong>prior informativo<\/strong>, ad esempio una distribuzione centrata su 0.10 con dispersione ridotta.<\/p>\n<p>Confrontiamo i due approcci sugli stessi dati (13 click su 100 impression):<\/p>\n<pre><code class=\"language-r\">set.seed(42)\n\nn_samples <- 100000\nn_ads_shown <- 100\nn_clicks_observed <- 13\n\n# --- Prior non informativo: uniforme (0, 0.20) ---\nprior_flat <- runif(n_samples, min = 0.0, max = 0.20)\nsim_flat <- rbinom(n_samples, size = n_ads_shown, prob = prior_flat)\nposterior_flat <- prior_flat[sim_flat == n_clicks_observed]\n\n# --- Prior informativo: centrato su 10%, concentrato tra 5% e 15% ---\n# Usiamo una distribuzione beta(20, 180) che ha media ~10% e varianza ridotta\nprior_info <- rbeta(n_samples, shape1 = 20, shape2 = 180)\nsim_info <- rbinom(n_samples, size = n_ads_shown, prob = prior_info)\nposterior_info <- prior_info[sim_info == n_clicks_observed]\n\n# Confronto\ncat(\"=== Prior non informativo (uniforme) ===\\n\")\ncat(\"Media posterior:\", round(mean(posterior_flat) * 100, 1), \"%\\n\")\ncat(\"Credible interval 95%:\", round(quantile(posterior_flat, 0.025) * 100, 1), \"% -\",\n    round(quantile(posterior_flat, 0.975) * 100, 1), \"%\\n\\n\")\n\ncat(\"=== Prior informativo (centrato su 10%) ===\\n\")\ncat(\"Media posterior:\", round(mean(posterior_info) * 100, 1), \"%\\n\")\ncat(\"Credible interval 95%:\", round(quantile(posterior_info, 0.025) * 100, 1), \"% -\",\n    round(quantile(posterior_info, 0.975) * 100, 1), \"%\\n\")<\/code><\/pre>\n<p>Il posterior con prior informativo \u00e8 leggermente \"tirato\" verso il 10% (la nostra esperienza pregressa), mentre quello con prior uniforme segue pi\u00f9 fedelmente i dati. Con 13 click su 100, la differenza \u00e8 modesta; ma con 5 click su 20, sarebbe molto pi\u00f9 marcata.<\/p>\n<p>Visualizziamo:<\/p>\n<pre><code class=\"language-r\">par(mfrow = c(1, 2))\n\nhist(posterior_flat, breaks = 30, probability = TRUE,\n     main = \"Posterior con prior\\nnon informativo\",\n     col = \"lightyellow\", xlab = \"Tasso di click\",\n     ylab = \"Densit\u00e0\", xlim = c(0, 0.25))\n\nhist(posterior_info, breaks = 30, probability = TRUE,\n     main = \"Posterior con prior\\ninformativo (10%)\",\n     col = \"lightcoral\", xlab = \"Tasso di click\",\n     ylab = \"Densit\u00e0\", xlim = c(0, 0.25))<\/code><\/pre>\n<p>Questa \u00e8 una propriet\u00e0 fondamentale dell'inferenza bayesiana: <strong>con pochi dati, il prior conta molto; con molti dati, il prior viene \"sommerso\" dai dati<\/strong>. Se avessimo 10.000 impression e 1.300 click, i due posterior sarebbero praticamente identici, indipendentemente dal prior scelto. I dati, alla lunga, vincono sempre.<\/p>\n<hr \/>\n<h2 id=\"credible-vs-confidence\">Credible interval vs confidence interval<\/h2>\n<p>Questo \u00e8 il punto in cui le strade si separano in modo chiaro. Nell'articolo sugli <a href=\"https:\/\/www.gironi.it\/blog\/intervalli-di-confidenza\/\">intervalli di confidenza<\/a> abbiamo visto un punto fondamentale: l'intervallo di confidenza al 95% <strong>non<\/strong> significa che c'\u00e8 il 95% di probabilit\u00e0 che il parametro sia nell'intervallo. \u00c8 una propriet\u00e0 della procedura, non del singolo intervallo.<\/p>\n<p>Il <strong>credible interval<\/strong> bayesiano al 95%, invece, significa <strong>esattamente<\/strong> quello che sembra: c'\u00e8 il 95% di probabilit\u00e0 che il parametro si trovi in quell'intervallo. \u00c8 un'affermazione diretta su ci\u00f2 che non conosciamo, non un'affermazione sulla procedura.<\/p>\n<p>Rivediamo i numeri del nostro esempio (13 click su 100 impression):<\/p>\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th><strong>Frequentista (IC)<\/strong><\/th>\n<th><strong>Bayesiano (credible interval)<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Intervallo<\/strong><\/td>\n<td>~7.8% - 21.0%<\/td>\n<td>~7.7% - 19.1%<\/td>\n<\/tr>\n<tr>\n<td><strong>Interpretazione<\/strong><\/td>\n<td>\"Se ripetessimo l'esperimento 100 volte, 95 intervalli conterrebbero il vero parametro\"<\/td>\n<td>\"C'\u00e8 il 95% di probabilit\u00e0 che il vero parametro sia in questo intervallo\"<\/td>\n<\/tr>\n<tr>\n<td><strong>Il parametro<\/strong><\/td>\n<td>\u00c8 un valore fisso; l'intervallo \u00e8 casuale<\/td>\n<td>La nostra credenza sul parametro \u00e8 descritta da una distribuzione<\/td>\n<\/tr>\n<tr>\n<td><strong>Dipende dal prior?<\/strong><\/td>\n<td>No<\/td>\n<td>S\u00ec<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>I numeri sono simili &mdash; e questo non \u00e8 un caso. Con campioni grandi e prior non informativi, i due approcci convergono. Ma l'interpretazione \u00e8 profondamente diversa, e il credible interval \u00e8 molto pi\u00f9 intuitivo: \"c'\u00e8 il 95% di probabilit\u00e0 che il tasso di click sia tra il 7.7% e il 19.1%\" \u00e8 una frase che chiunque pu\u00f2 comprendere e usare per prendere decisioni.<\/p>\n<hr \/>\n<h2 id=\"quando-usare-bayesiano\">Quando usare l'approccio bayesiano<\/h2>\n<p>Non c'\u00e8 un vincitore assoluto. La scelta dipende dal contesto:<\/p>\n<p><strong>L'approccio bayesiano funziona particolarmente bene quando:<\/strong><\/p>\n<ul>\n<li>Abbiamo <strong>pochi dati<\/strong> ma una conoscenza pregressa ragionevole. Il prior ci permette di ottenere stime sensate anche con campioni piccoli.<\/li>\n<li>Ci serve un <strong>aggiornamento continuo<\/strong>: i dati arrivano nel tempo e vogliamo aggiornare la nostra stima progressivamente, senza ricominciare ogni volta da zero.<\/li>\n<li>Vogliamo <strong>comunicare l'incertezza<\/strong> in modo diretto. Il credible interval \u00e8 molto pi\u00f9 intuitivo dell'intervallo di confidenza: dire \"c'\u00e8 il 90% di probabilit\u00e0 che il tasso di conversione sia tra il 3% e il 7%\" \u00e8 chiaro anche per chi non ha formazione statistica.<\/li>\n<\/ul>\n<p><strong>L'approccio frequentista resta preferibile quando:<\/strong><\/p>\n<ul>\n<li>Servono <strong>risultati standardizzati e ripetibili<\/strong>. I test frequentisti non dipendono da scelte soggettive (come il prior), e questo li rende pi\u00f9 facili da confrontare e replicare.<\/li>\n<li>Lavoriamo in contesti dove le <strong>convenzioni<\/strong> sono stabilite (pubblicazioni scientifiche, report regolamentari).<\/li>\n<li>Abbiamo <strong>grandi campioni<\/strong>: con molti dati, i due approcci danno risultati praticamente identici, e il frequentista \u00e8 spesso pi\u00f9 semplice da implementare.<\/li>\n<\/ul>\n<p>Nella pratica, molti professionisti usano entrambi gli approcci a seconda del contesto. L'A\/B testing, ad esempio, pu\u00f2 essere condotto in modo frequentista (come abbiamo visto nell'<a href=\"https:\/\/www.gironi.it\/blog\/ab-testing\/\">articolo dedicato<\/a>) o in modo bayesiano &mdash; e alcune piattaforme di testing usano proprio l'approccio bayesiano per poter aggiornare i risultati in tempo reale.<\/p>\n<hr \/>\n<h2 id=\"verso-distribuzione-beta\">Verso la distribuzione Beta<\/h2>\n<p>Abbiamo visto come l'aggiornamento bayesiano funzioni con la simulazione: generare campioni, simulare dati, filtrare. \u00c8 un metodo potente e intuitivo, ma ha un limite pratico: ad ogni passaggio perdiamo campioni. Dopo due aggiornamenti, dei 100.000 campioni iniziali ne rimangono pochi.<\/p>\n<p>La buona notizia \u00e8 che, per il caso delle proporzioni (tassi di click, tassi di conversione, percentuali di successo), esiste una soluzione analitica elegante. La <a href=\"https:\/\/www.gironi.it\/blog\/la-distribuzione-beta-spiegata-semplice\/\">distribuzione Beta<\/a>, che abbiamo gi\u00e0 incontrato, \u00e8 la distribuzione naturale per descrivere la nostra incertezza su una proporzione. E quando il prior \u00e8 una distribuzione Beta e i dati sono binomiali (successo\/insuccesso), il posterior \u00e8 <em>ancora<\/em> una distribuzione Beta &mdash; con parametri aggiornati.<\/p>\n<p>Questo significa che l'intero aggiornamento bayesiano si riduce a una semplice operazione sui parametri, senza bisogno di simulazioni. Ma questa \u00e8 una storia per il prossimo articolo.<\/p>\n<hr \/>\n<h2 id=\"prova-tu\">Prova tu<\/h2>\n<p>Un e-commerce ha un tasso di conversione storico intorno al 3%. Dopo un redesign della pagina prodotto, su 200 visite si osservano 10 conversioni (5%).<\/p>\n<ol>\n<li>Costruisci un modello bayesiano con <strong>prior uniforme tra 0% e 10%<\/strong> (incertezza iniziale: il tasso potrebbe essere qualsiasi valore in quel range).<\/li>\n<li>Usa la simulazione (come nell'esempio dell'articolo) per ottenere il posterior.<\/li>\n<li>Calcola il <strong>credible interval al 95%<\/strong>.<\/li>\n<li>Calcola la <strong>probabilit\u00e0 che il vero tasso di conversione sia superiore al 3%<\/strong>.<\/li>\n<\/ol>\n<p>Suggerimento: il codice \u00e8 quasi identico a quello dell'esempio sulla campagna ads. Cambia il prior (<code>runif(n, 0, 0.10)<\/code>), il numero di visite (200) e il numero di conversioni osservate (10). Per la domanda 4, conta quanti campioni del posterior sono superiori a 0.03 e dividi per il totale.<\/p>\n<hr \/>\n<h3 id=\"per-approfondire\">Per approfondire<\/h3>\n<p>Se vuoi esplorare la statistica bayesiana con un approccio accessibile e sorprendentemente divertente, <a href=\"https:\/\/www.amazon.it\/dp\/1593279566?tag=consulenzeinf-21\" target=\"_blank\" rel=\"noopener\"><em>Bayesian Statistics the Fun Way<\/em><\/a> di Will Kurt \u00e8 una lettura che consiglio. Kurt riesce a spiegare prior, posterior e aggiornamento bayesiano con esempi concreti che non richiedono una laurea in matematica &mdash; e usa R per la parte computazionale, esattamente come facciamo qui. \u00c8 il libro ideale per chi vuole capire la logica bayesiana prima di affrontare la teoria formale.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Abbiamo avuto modo di esaminare, nel corso dei precedenti articoli, l&#8217;inferenza statistica da una prospettiva precisa e coerente: formulare un&#8217;ipotesi, raccogliere dati, calcolare un p-value, costruire un intervallo di confidenza. Abbiamo condotto test delle ipotesi, confrontato varianti con l&#8217;A\/B testing, e visto con il Teorema del Limite Centrale perch\u00e9 tutto questo funziona anche quando i &hellip; <a href=\"https:\/\/www.gironi.it\/blog\/statistica-bayesiana\/\" class=\"more-link\">Leggi tutto<span class=\"screen-reader-text\"> &#8220;Statistica bayesiana: come imparare dai dati, un passo alla volta&#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-3407","post","type-post","status-publish","format-standard","hentry","category-statistica-it"],"lang":"it","translations":{"it":3407,"en":3426},"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":1,"uagb_excerpt":"Abbiamo avuto modo di esaminare, nel corso dei precedenti articoli, l&#8217;inferenza statistica da una prospettiva precisa e coerente: formulare un&#8217;ipotesi, raccogliere dati, calcolare un p-value, costruire un intervallo di confidenza. Abbiamo condotto test delle ipotesi, confrontato varianti con l&#8217;A\/B testing, e visto con il Teorema del Limite Centrale perch\u00e9 tutto questo funziona anche quando i&hellip;","_links":{"self":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3407","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=3407"}],"version-history":[{"count":3,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3407\/revisions"}],"predecessor-version":[{"id":3413,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/posts\/3407\/revisions\/3413"}],"wp:attachment":[{"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/media?parent=3407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/categories?post=3407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gironi.it\/blog\/wp-json\/wp\/v2\/tags?post=3407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}