<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>t-test &#8211; paologironi blog</title>
	<atom:link href="https://www.gironi.it/blog/tag/t-test-it/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.gironi.it/blog</link>
	<description>Appunti sparsi di (retro) informatica, analisi dei dati, statistica, seo, e cose che cambiano</description>
	<lastBuildDate>Sun, 12 Jul 2026 19:16:13 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Il t-test per due campioni: quando confrontare due gruppi (e non sbagliare)</title>
		<link>https://www.gironi.it/blog/il-t-test-per-due-campioni-testare-una-ipotesi-per-campioni-dipendenti-o-indipendenti/</link>
					<comments>https://www.gironi.it/blog/il-t-test-per-due-campioni-testare-una-ipotesi-per-campioni-dipendenti-o-indipendenti/#comments</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Tue, 03 Dec 2019 17:34:16 +0000</pubDate>
				<category><![CDATA[statistica]]></category>
		<category><![CDATA[pre-post test]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[t-test]]></category>
		<guid isPermaLink="false">https://www.gironi.it/blog/?p=1411</guid>

					<description><![CDATA[Abbiamo avuto modo di vedere, nel post sul test delle ipotesi, come verificare se la media di un campione sia compatibile con una certa ipotesi sulla popolazione. Ma nella pratica il caso più comune è confrontare due gruppi. Un farmaco abbassa davvero la pressione più del placebo? Un corso di formazione migliora i punteggi? Una &#8230; <a href="https://www.gironi.it/blog/il-t-test-per-due-campioni-testare-una-ipotesi-per-campioni-dipendenti-o-indipendenti/" class="more-link">Leggi tutto<span class="screen-reader-text"> "Il t-test per due campioni: quando confrontare due gruppi (e non sbagliare)"</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Abbiamo avuto modo di vedere, nel <a href="/blog/il-test-delle-ipotesi/">post sul test delle ipotesi</a>, come verificare se la media di un campione sia compatibile con una certa ipotesi sulla popolazione. Ma nella pratica il caso più comune è confrontare <em>due</em> gruppi.</p>



<p class="wp-block-paragraph">Un farmaco abbassa davvero la pressione più del placebo? Un corso di formazione migliora i punteggi? Una nuova landing page produce un CTR più alto? In tutti questi casi abbiamo due gruppi (trattamento vs controllo, prima vs dopo, variante A vs B) e vogliamo capire se le medie sono diverse. Lo strumento giusto è il <strong>t-test per due campioni</strong>.</p>



<span id="more-1411"></span>



<p class="wp-block-paragraph">Per orientarci subito:</p>



<figure class="wp-block-table"><table><thead><tr><th>Situazione</th><th>Test</th></tr></thead><tbody><tr><td>Due gruppi diversi (es. uomini vs donne)</td><td>t-test per campioni indipendenti</td></tr><tr><td>Prima e dopo sullo stesso soggetto</td><td>t-test appaiato (paired)</td></tr><tr><td>Due varianti di pagina web (A/B test)</td><td>t-test per campioni indipendenti</td></tr><tr><td>Pressione prima e dopo una terapia</td><td>t-test appaiato</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">La scelta tra i due test non è tecnica: è <strong>concettuale</strong>. Se i dati sono appaiati e usiamo un test indipendente, perdiamo potenza perché buttiamo via l&#8217;informazione sull&#8217;accoppiamento. Se usiamo un test appaiato su dati indipendenti, violiamo l&#8217;assunzione di indipendenza e rischiamo di trovare significatività dove non c&#8217;è.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="campioni-indipendenti">Quando usare il t-test per campioni indipendenti?</h2>



<h3 class="wp-block-heading">Condizioni di validità</h3>



<p class="wp-block-paragraph">Perché il test sia valido, servono alcune condizioni:</p>



<ul class="wp-block-list"><li>Un campione casuale per ciascuna popolazione</li><li>Le osservazioni all&#8217;interno di ciascun campione sono indipendenti</li><li>I due campioni sono indipendenti tra loro</li><li>Le osservazioni provengono da popolazioni approssimativamente normali, oppure la numerosità campionaria è sufficientemente grande</li></ul>



<p class="wp-block-paragraph">Il t-test è piuttosto robusto a moderate deviazioni dalla normalità, soprattutto quando il campione è numeroso (n ≥ 30 per gruppo). Diventa invece problematico con campioni molto piccoli e distribuzioni fortemente asimmetriche.</p>



<p class="wp-block-paragraph">Ipotesi:</p>



\( H_0 : \mu_1 = \mu_2 \\ \)



\( H_a : \mu_1 \neq \mu_2 \\ \)



<p class="wp-block-paragraph">In altri termini: $\( H_0 : \mu_1 &#8211; \mu_2 = 0 \)\( , \)\( H_a : \mu_1 &#8211; \mu_2 \neq 0 \)$</p>



<h3 class="wp-block-heading">La statistica test</h3>



<p class="wp-block-paragraph">Tutto parte dalla differenza tra le medie osservate. Calcoliamo il valore di t:</p>



\( t = \frac{(\bar{x}_1 &#8211; \bar{x}_2) &#8211; (\mu_1 &#8211; \mu_2)}{SE_{(\bar{x}_1 &#8211; \bar{x}_2)}} \\ \)



<p class="wp-block-paragraph">Dove:</p>



<ul class="wp-block-list"><li>$\( \bar{x}_1 &#8211; \bar{x}_2 \)$ è la differenza osservata tra le medie campionarie</li><li>$\( \mu_1 &#8211; \mu_2 \)$ è la differenza ipotizzata sotto H₀ (zero)</li><li>$\( SE_{(\bar{x}_1 &#8211; \bar{x}_2)} \)$ è l&#8217;errore standard della differenza</li></ul>



<p class="wp-block-paragraph">L&#8217;errore standard si calcola così — e qui arriva il primo punto importante:</p>



\( SE_{(\bar{x}_1 &#8211; \bar{x}_2)} = \sqrt{\frac{s^2_1}{n_1} + \frac{s^2_2}{n_2}} \\ \)



<p class="wp-block-paragraph"><strong>N.B.: questa è la formula di Welch</strong> — non assume varianze uguali tra i due gruppi, ed è più robusta quando i campioni hanno numerosità o variabilità diverse. Per impostazione predefinita, <code>t.test()</code> in R usa il test di Welch, non il t-test classico di Student. È la scelta più prudente nella pratica: se non c&#8217;è un motivo forte per assumere varianze uguali, Welch è preferibile.</p>



<p class="wp-block-paragraph">Se invece sappiamo per certo che le varianze sono simili (campioni bilanciati con varianze vicine), possiamo usare l&#8217;argomento <code>var.equal = TRUE</code>, che corrisponde al t-test classico con varianza pooled (&#8220;varianze unite&#8221;). Per un confronto più sistematico tra i due approcci, rimando alla <a href="/blog/guida-ai-test-statistici-per-analisi-a-b/">Guida ai Test Statistici</a>.</p>



<p class="wp-block-paragraph">I gradi di libertà? Li lascio calcolare a R (usa l&#8217;approssimazione di Welch-Satterthwaite, un po&#8217; complessa a mano). In alternativa, approccio conservativo: df = min(n₁, n₂) − 1.</p>



<h3 class="wp-block-heading">Verifica delle assunzioni in R</h3>



<p class="wp-block-paragraph">Prima di eseguire il test, verifichiamo la normalità:</p>



<pre class="wp-block-code"><code># Test di Shapiro-Wilk per ciascun gruppo
shapiro.test(varA)
shapiro.test(varB)

# Q-Q plot per ispezione visiva
par(mfrow = c(1, 2))
qqnorm(varA, main = "Gruppo A")
qqline(varA)
qqnorm(varB, main = "Gruppo B")
qqline(varB)</code></pre>



<p class="wp-block-paragraph">Se il p-value dello Shapiro-Wilk è maggiore di 0,05, non abbiamo evidenze sufficienti per rifiutare l&#8217;ipotesi di normalità.</p>



<h3 class="wp-block-heading">Un esempio con dati reali</h3>



<p class="wp-block-paragraph">Facciamo un esempio al volo. Supponiamo di avere due varianti di landing page per una campagna SEO: la versione A (quella attuale, il controllo) e la versione B (con un nuovo titolo e CTA). Vogliamo sapere se la nuova versione produce un CTR medio più alto. Prendiamo 10 giorni di traffico per ciascuna variante e misuriamo il CTR percentuale:</p>



<pre class="wp-block-code"><code>varA &lt;- c(2.8, 3.1, 3.5, 2.9, 3.3, 3.0, 2.7, 3.2, 3.4, 3.1)
varB &lt;- c(3.2, 3.8, 3.5, 4.1, 3.6, 3.9, 3.3, 3.7, 4.0, 3.4)

t.test(varA, varB)</code></pre>



<pre class="wp-block-code"><code>	Welch Two Sample t-test

data:  varA and varB
t = -3.092, df = 17.6, p-value = 0.006297
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -0.831 -0.157
sample estimates:
mean of x mean of y
     3.10      3.65</code></pre>



<figure class="wp-block-image size-large"><img decoding="async" class="wp-image-4144" src="https://www.gironi.it/blog/wp-content/uploads/2026/07/test-due-campioni-regioni.png" alt="Distribuzione t con regione critica per l'esempio del test a due campioni"/><figcaption class="wp-element-caption">Distribuzione t con regione critica per l&#8217;esempio del test a due campioni</figcaption></figure>



<p class="wp-block-paragraph">Interpretiamo l&#8217;output. La differenza media è di 0,55 punti percentuali (3,65 − 3,10), con un p-value di 0,0063 — ben sotto la soglia di 0,05. L&#8217;intervallo di confidenza al 95% va da −0,83 a −0,16: non contiene zero. <strong>Abbiamo evidenza statistica sufficiente per rifiutare H₀ a favore dell&#8217;ipotesi alternativa: il CTR medio della variante B è diverso da quello della variante A.</strong></p>



<div class="wp-block-group has-background" style="background-color:#f5f7f9;margin-top:2.5rem;margin-bottom:2.5rem;padding-top:1.5rem;padding-right:1.5rem;padding-bottom:1.5rem;padding-left:1.5rem"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p>Attenzione: il p-value ci dice <em>se</em> c&#8217;è una differenza. Non ci dice <em>quanto</em> è grande. Con campioni grandi, qualsiasi differenza — anche trascurabile — diventa &#8220;significativa&#8221;. Per questo serve una misura della dimensione dell&#8217;effetto.</p>
</div></div>



<h3 class="wp-block-heading">Effect size: Cohen&#8217;s d</h3>



<p class="wp-block-paragraph">Il <strong>Cohen&#8217;s d</strong> standardizza la differenza dividendo per la deviazione standard pooled:</p>



\( d = \frac{\bar{x}_1 &#8211; \bar{x}_2}{s_{pooled}} \\ \)



\( s_{pooled} = \sqrt{\frac{(n_1 &#8211; 1)s^2_1 + (n_2 &#8211; 1)s^2_2}{n_1 + n_2 &#8211; 2}} \\ \)



<p class="wp-block-paragraph">Calcoliamo in R:</p>



<pre class="wp-block-code"><code>n1 &lt;- length(varA); n2 &lt;- length(varB)
pooled_sd &lt;- sqrt(((n1-1)*sd(varA)^2 + (n2-1)*sd(varB)^2) / (n1+n2-2))
d &lt;- (mean(varB) - mean(varA)) / pooled_sd
d</code></pre>



<pre class="wp-block-code"><code>[1] 1.38</code></pre>



<p class="wp-block-paragraph">Regola pratica: d ≈ 0,2 è piccolo, 0,5 medio, 0,8 grande. Il nostro d = 1,38 è un effetto grande — la differenza non è solo statisticamente significativa, è anche sostanziale.</p>



<h3 class="wp-block-heading">Potenza del test</h3>



<p class="wp-block-paragraph">Se non troviamo una differenza significativa, è perché non c&#8217;è o perché il campione era troppo piccolo? La <strong>potenza</strong> (1 − β) è la probabilità di rilevare un effetto di data grandezza, se esiste.</p>



<p class="wp-block-paragraph">Calcoliamo in R la numerosità necessaria per rilevare un effetto grande con l&#8217;80% di potenza:</p>



<pre class="wp-block-code"><code>library(pwr)
pwr.t.test(d = 0.8, power = 0.80, sig.level = 0.05,
           type = "two.sample", alternative = "two.sided")</code></pre>



<pre class="wp-block-code"><code>     Two-sample t test power calculation

              n = 25.52
              d = 0.8
      sig.level = 0.05
          power = 0.8
    alternative = two.sided</code></pre>



<p class="wp-block-paragraph">Servono circa 26 osservazioni per gruppo per avere l&#8217;80% di probabilità di rilevare un effetto grande. Con le nostre 10 osservazioni per gruppo, la potenza è molto più bassa — il fatto di aver trovato comunque significatività è un segnale che l&#8217;effetto è davvero marcato.</p>



<h2 class="wp-block-heading" id="campioni-dipendenti">Quando usare il t-test per campioni dipendenti (appaiati)?</h2>



<p class="wp-block-paragraph">Quando gli stessi soggetti vengono misurati prima e dopo un intervento, abbiamo <strong>dati appaiati</strong> (paired data). Il test non confronta le medie dei due gruppi, ma <strong>la media delle differenze</strong> tra prima e dopo.</p>



<h3 class="wp-block-heading">Condizioni di validità</h3>



<ul class="wp-block-list"><li>Il campione delle differenze è casuale</li><li>Le differenze sono indipendenti tra loro</li><li>Le differenze provengono da una popolazione approssimativamente normale (o n sufficientemente grande)</li></ul>



<p class="wp-block-paragraph">Ipotesi:</p>



\( H_0 : \delta = 0 \\ \)



\( H_a : \delta \neq 0 \\ \)



<p class="wp-block-paragraph">dove δ è la media delle differenze nella popolazione.</p>



<p class="wp-block-paragraph">La formula è analoga a quella del test a un campione, applicata alle differenze:</p>



\( t = \frac{\bar{d} &#8211; \delta}{SE_{\bar{d}}} \\ \)



<p class="wp-block-paragraph">dove $\( \bar{d} \)\( è la media delle differenze campionarie e \)\( SE_{\bar{d}} = \frac{s_d}{\sqrt{n}} \)$ è l&#8217;errore standard.</p>



<p class="wp-block-paragraph">La deviazione standard delle differenze:</p>



\( s_d = \sqrt{\frac{\Sigma(d &#8211; \bar{d})^2}{n &#8211; 1}} \\ \)



<h3 class="wp-block-heading">Verifica delle assunzioni in R</h3>



<pre class="wp-block-code"><code>diff &lt;- dopo - prima
shapiro.test(diff)

# Ispezione visiva
qqnorm(diff)
qqline(diff)</code></pre>



<h3 class="wp-block-heading">Un esempio con dati reali</h3>



<p class="wp-block-paragraph">Immaginiamo questo scenario: un docente di SEO vuole valutare l&#8217;efficacia del suo corso intensivo. Somministra un test di 100 punti ai partecipanti il primo giorno (pre) e lo stesso test alla fine del corso (post). Gli stessi studenti — non due gruppi diversi — vengono misurati due volte. Ecco i punteggi:</p>



<pre class="wp-block-code"><code>pre  &lt;- c(68, 75, 82, 71, 79, 65, 73, 77, 70, 74)
post &lt;- c(72, 78, 85, 76, 82, 70, 75, 80, 74, 79)

diff &lt;- post - pre
diff</code></pre>



<pre class="wp-block-code"><code>[1] 4 3 3 5 3 5 2 3 4 5</code></pre>



<figure class="wp-block-image size-large"><img decoding="async" class="wp-image-4145" src="https://www.gironi.it/blog/wp-content/uploads/2026/07/test-due-campioni-paired.png" alt="Istogramma delle differenze paired con curva normale sovrapposta"/><figcaption class="wp-element-caption">Istogramma delle differenze paired con curva normale sovrapposta</figcaption></figure>



<p class="wp-block-paragraph">Verifichiamo la normalità delle differenze:</p>



<pre class="wp-block-code"><code>shapiro.test(diff)</code></pre>



<pre class="wp-block-code"><code>	Shapiro-Wilk normality test

data:  diff
W = 0.905, p-value = 0.248</code></pre>



<p class="wp-block-paragraph">p &gt; 0,05 → non rifiutiamo l&#8217;ipotesi di normalità. Procediamo:</p>



<pre class="wp-block-code"><code>t.test(pre, post, paired = TRUE)</code></pre>



<pre class="wp-block-code"><code>	Paired t-test

data:  pre and post
t = -7.746, df = 9, p-value = 2.86e-05
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
 -4.171 -2.029
sample estimates:
mean difference
         -3.1</code></pre>



<p class="wp-block-paragraph">La differenza media è di 3,1 punti in positivo, con p &lt; 0,001. L&#8217;intervallo di confidenza al 95% va da −4,17 a −2,03 punti: non contiene zero. Esiste evidenza statistica a favore di un miglioramento significativo dopo il corso.</p>



<h3 class="wp-block-heading">Effect size per dati appaiati</h3>



<pre class="wp-block-code"><code>d_paired &lt;- mean(diff) / sd(diff)
d_paired</code></pre>



<pre class="wp-block-code"><code>[1] 2.45</code></pre>



<div class="wp-block-group has-background" style="background-color:#f5f7f9;margin-top:2.5rem;margin-bottom:2.5rem;padding-top:1.5rem;padding-right:1.5rem;padding-bottom:1.5rem;padding-left:1.5rem"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p>Attenzione: il Cohen&#8217;s d per dati appaiati tende a essere molto più grande rispetto al caso indipendente, perché la variabilità tra soggetti viene rimossa dal confronto entro-soggetti. È fisiologico, non un errore.</p>
</div></div>



<h2 class="wp-block-heading" id="diagramma-decisionale">Diagramma decisionale</h2>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1200" height="1040" class="wp-image-4146" src="https://www.gironi.it/blog/wp-content/uploads/2026/07/scelta-test-t-flowchart.png" alt="Diagramma di flusso per la scelta del test t appropriato" srcset="https://www.gironi.it/blog/wp-content/uploads/2026/07/scelta-test-t-flowchart.png 1200w, https://www.gironi.it/blog/wp-content/uploads/2026/07/scelta-test-t-flowchart-300x260.png 300w, https://www.gironi.it/blog/wp-content/uploads/2026/07/scelta-test-t-flowchart-1024x887.png 1024w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption class="wp-element-caption">Diagramma di flusso per la scelta del test t appropriato</figcaption></figure>



<p class="wp-block-paragraph">Una versione testuale del ragionamento:</p>



<ol class="wp-block-list"><li><strong>Stessi soggetti misurati due volte?</strong> → t-test appaiato</li><li><strong>Due gruppi indipendenti?</strong> → t-test di Welch (default)</li><li><strong>Dati non normali e campione piccolo?</strong> → test non parametrico (Mann-Whitney o Wilcoxon)</li></ol>



<h2 class="wp-block-heading" id="quando-non-usare">Quando NON usare il t-test</h2>



<p class="wp-block-paragraph">Il t-test è uno strumento potente, ma non universale:</p>



<ul class="wp-block-list"><li><strong>Distribuzioni fortemente asimmetriche con campioni piccoli</strong> (n &lt; 15 per gruppo): il t-test perde affidabilità. Meglio il test di Mann-Whitney (wilcox.test in R) per campioni indipendenti, o il test di Wilcoxon signed-rank per dati appaiati.</li><li><strong>Più di due gruppi</strong>: serve l&#8217;analisi della varianza (ANOVA), di cui parleremo in un prossimo articolo.</li><li><strong>Dati ordinali</strong>: il t-test lavora su medie, che presuppongono dati almeno su scala a intervalli. Per ranking o scale Likert, meglio i test non parametrici.</li></ul>



<h2 class="wp-block-heading" id="faq">FAQ</h2>



<p class="wp-block-paragraph"><strong>Qual è la differenza tra t-test appaiato e indipendente?</strong><br> Nel t-test appaiato confrontiamo la media delle differenze <em>entro</em> ciascun soggetto (prima/dopo). In quello indipendente confrontiamo le medie di due gruppi separati. La scelta dipende dal disegno sperimentale, non dalla nostra preferenza.</p>



<p class="wp-block-paragraph"><strong>Quando usare Welch invece del t-test classico?</strong><br> Sempre, per default. Welch non assume varianze uguali ed è più robusto. Usa <code>var.equal = TRUE</code> solo se hai un motivo solido per credere che le varianze siano simili (campioni bilanciati con varianze vicine).</p>



<p class="wp-block-paragraph"><strong>Il t-test funziona con campioni piccoli?</strong><br> Sì, purché i dati siano approssimativamente normali. Con n &lt; 15 per gruppo, verifica sempre la normalità con <code>shapiro.test()</code>.</p>



<p class="wp-block-paragraph"><strong>Cosa fare se i dati non sono normali?</strong><br> Usa <code>wilcox.test()</code> in R: per campioni indipendenti (Mann-Whitney) o con paired = TRUE per dati appaiati (Wilcoxon signed-rank).</p>



<h2 class="wp-block-heading">Prova tu</h2>



<p class="wp-block-paragraph">Prendi i dati dell&#8217;esempio indipendente e calcola:</p>



<ol class="wp-block-list"><li>Il test a una coda: la variante B ha un CTR <em>maggiore</em> della A? (alternative = &#8220;greater&#8221;)</li><li>Quale numerosità servirebbe per rilevare un effetto medio (d = 0,5) con potenza 0,80?</li></ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">Abbiamo visto due strumenti fondamentali per confrontare gruppi: il <strong>t-test per campioni indipendenti</strong>, cavallo di battaglia degli A/B test, e il <strong>t-test appaiato</strong>, insostituibile nei disegni pre/post. In entrambi i casi il p-value da solo non basta: effect size, potenza e intervalli di confidenza completano il quadro. Nel prossimo articolo affronteremo il caso di tre o più gruppi — e lì entrerà in scena l&#8217;<strong>analisi della varianza (ANOVA)</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">Per approfondire</h3>



<p class="wp-block-paragraph">Per tutti i dettagli formali sul confronto tra campioni — pooled vs Welch, campioni appaiati, verifica delle assunzioni — <em>Statistica</em> di Newbold, Carlson e Thorne resta il riferimento più completo in italiano. <a href="https://www.amazon.it/dp/8891910651?tag=consulenzeinf-21&amp;ascsubtag=il-t-test-per-due-campioni-testare-una-ipotesi-per-campioni-dipendenti-o-indipendenti" rel="nofollow sponsored noopener" target="_blank">Amazon</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/il-t-test-per-due-campioni-testare-una-ipotesi-per-campioni-dipendenti-o-indipendenti/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
