<?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>wilcoxon &#8211; paologironi blog</title>
	<atom:link href="https://www.gironi.it/blog/tag/wilcoxon-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>Sat, 18 Jul 2026 08:05:22 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Test non parametrici: il test di Wilcoxon per dati non normali (con esempi R)</title>
		<link>https://www.gironi.it/blog/il-test-di-wilcoxon/</link>
					<comments>https://www.gironi.it/blog/il-test-di-wilcoxon/#respond</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Mon, 02 Jan 2023 09:23:21 +0000</pubDate>
				<category><![CDATA[statistica]]></category>
		<category><![CDATA[test non parametrici]]></category>
		<category><![CDATA[wilcoxon]]></category>
		<guid isPermaLink="false">https://www.gironi.it/blog/?p=2655</guid>

					<description><![CDATA[Immagina di confrontare la durata delle sessioni tra due gruppi di pagine: quelle con featured snippet e quelle senza. Prendi i dati, esegui un test t di Student, e il p-value è 0,08. Non significativo, apparentemente. Ma guardando i dati, noti che le distribuzioni sono fortemente asimmetriche: poche pagine con durate lunghissime, molte con durate &#8230; <a href="https://www.gironi.it/blog/il-test-di-wilcoxon/" class="more-link">Leggi tutto<span class="screen-reader-text"> "Test non parametrici: il test di Wilcoxon per dati non normali (con esempi R)"</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Immagina di confrontare la durata delle sessioni tra due gruppi di pagine: quelle con <strong>featured snippet</strong> e quelle senza. Prendi i dati, esegui un <strong>test t di Student</strong>, e il p-value è 0,08. Non significativo, apparentemente. Ma guardando i dati, noti che le distribuzioni sono fortemente asimmetriche: poche pagine con durate lunghissime, molte con durate brevissime. Il test t assume la normalità della distribuzione, e qui siamo lontani anni luce.</p>



<p class="wp-block-paragraph">Il <strong>test di Wilcoxon</strong> è un <strong><a href="https://www.gironi.it/blog/test-statistici-parametrici-e-non-parametrici/" target="_blank" data-type="post" data-id="2306" rel="noreferrer noopener">test non parametrico</a></strong> che non richiede alcuna assunzione sulla forma della distribuzione. Lavora sui <strong>ranghi</strong>, non sui valori originali: ordina tutti i dati dal più piccolo al più grande e assegna un punteggio basato sulla posizione. Questo lo rende particolarmente utile in SEO, dove molti indicatori (sessioni, CTR, posizioni) sono tutto tranne che normali.</p>



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



<h2 class="wp-block-heading">Quando serve Wilcoxon</h2>



<p class="wp-block-paragraph">I test parametrici come il t-test presuppongono che i dati seguano una <strong>distribuzione normale</strong>. In SEO questa assunzione è quasi sempre violata:</p>



<ul class="wp-block-list">
<li>Le <strong>sessioni</strong> per pagina seguono una distribuzione asimmetrica (poche pagine fanno la parte del leone).</li>
<li>Il <strong>CTR</strong> è concentrato vicino allo zero con una coda lunga verso l&#8217;alto.</li>
<li>Le <strong>posizioni</strong> in classifica sono variabili ordinali, non continue.</li>
<li>I <strong>tempi di caricamento</strong> hanno una coda destra pesante.</li>
</ul>



<p class="wp-block-paragraph">Quando i dati non sono normali, il test t può dare risultati fuorvianti. Il test di Wilcoxon, basandosi sui ranghi, è <strong>robusto</strong> a queste violazioni.</p>



<h2 class="wp-block-heading">Due versioni del test di Wilcoxon</h2>



<p class="wp-block-paragraph">Il nome &#8220;test di Wilcoxon&#8221; copre in realtà due varianti distinte:</p>



<ul class="wp-block-list">
<li><strong>Wilcoxon-Mann-Whitney</strong> (o test U): per confrontare due campioni indipendenti. È l&#8217;alternativa non parametrica al t-test per due campioni.</li>
<li><strong>Wilcoxon signed-rank</strong>: per confrontare due campioni appaiati (misure prima/dopo sullo stesso gruppo). Alternativa al t-test paired.</li>
</ul>



<p class="wp-block-paragraph">Vediamo un esempio SEO con la versione per campioni indipendenti.</p>



<h2 class="wp-block-heading">Confronto due gruppi: un caso SEO</h2>



<p class="wp-block-paragraph">Supponiamo di voler confrontare la durata delle sessioni tra pagine con featured snippet e pagine senza. I dati reali di sessioni sono tipicamente asimmetrici: la maggior parte delle sessioni dura pochi secondi, ma alcune durano minuti. È esattamente lo scenario in cui Wilcoxon brilla.</p>



<p class="wp-block-paragraph">La figura seguente mostra due distribuzioni simulate simili a quelle che si osservano in un caso reale. Il t-test dà un p-value che potrebbe essere fuorviante, mentre Wilcoxon cattura correttamente la differenza tra le mediane.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1125" height="675" src="https://www.gironi.it/blog/wp-content/uploads/2026/07/wilcoxon-distribuzioni.png" alt="Confronto tra due distribuzioni asimmetriche di durata sessione con e senza featured snippet, con p-value del t-test e del test di Wilcoxon" class="wp-image-4391" srcset="https://www.gironi.it/blog/wp-content/uploads/2026/07/wilcoxon-distribuzioni.png 1125w, https://www.gironi.it/blog/wp-content/uploads/2026/07/wilcoxon-distribuzioni-300x180.png 300w, https://www.gironi.it/blog/wp-content/uploads/2026/07/wilcoxon-distribuzioni-1024x614.png 1024w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption class="wp-element-caption">Due distribuzioni asimmetriche di durata sessione: il t-test può fallire nel rilevare la differenza, Wilcoxon no.</figcaption></figure>



<p class="wp-block-paragraph">La ragione per cui Wilcoxon funziona meglio in questo scenario sta nel meccanismo dei <strong>ranghi</strong>. Invece di confrontare le medie (che sono sensibili ai valori estremi), trasforma ogni valore nel suo rango all&#8217;interno dell&#8217;unione dei due gruppi e confronta le somme dei ranghi.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1050" height="525" src="https://www.gironi.it/blog/wp-content/uploads/2026/07/wilcoxon-ranghi.png" alt="Conversione dei valori grezzi in ranghi per il test di Wilcoxon" class="wp-image-4392" srcset="https://www.gironi.it/blog/wp-content/uploads/2026/07/wilcoxon-ranghi.png 1050w, https://www.gironi.it/blog/wp-content/uploads/2026/07/wilcoxon-ranghi-300x150.png 300w, https://www.gironi.it/blog/wp-content/uploads/2026/07/wilcoxon-ranghi-1024x512.png 1024w" sizes="(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px" /><figcaption class="wp-element-caption">I valori grezzi vengono ordinati e convertiti in ranghi: si confrontano le somme dei ranghi, non i valori originali.</figcaption></figure>



<p class="wp-block-paragraph">Come si vede, dopo la conversione in ranghi si perde l&#8217;informazione sulla distanza tra i valori, ma si guadagna in robustezza: i valori estremi non distorcono più il risultato.</p>



<h2 class="wp-block-heading">Calcolo in R</h2>



<p class="wp-block-paragraph">Calcoliamo Wilcoxon sugli stessi dati della figura:</p>



<pre class="wp-block-code"><code>set.seed(20260718)
# Durata sessione in secondi, due gruppi
con_snippet &lt;- rlnorm(40, meanlog = 4.8, sdlog = 0.7)
senza_snippet &lt;- rlnorm(40, meanlog = 5.2, sdlog = 0.7)

# Test di Wilcoxon-Mann-Whitney
wilcox.test(con_snippet, senza_snippet)</code></pre>



<p class="wp-block-paragraph">L&#8217;output restituisce la statistica W (la somma dei ranghi del primo gruppo) e il p-value. Se il p-value è inferiore a 0,05, possiamo concludere che la differenza tra i due gruppi è statisticamente significativa.</p>



<p class="wp-block-paragraph">Per confrontare due campioni appaiati (stesse pagine prima e dopo un intervento), si usa la variante <strong>signed-rank</strong>:</p>



<pre class="wp-block-code"><code># Stesse pagine, prima e dopo ottimizzazione
prima &lt;- rlnorm(30, meanlog = 4.5, sdlog = 0.6)
dopo &lt;- prima + rnorm(30, mean = 15, sd = 25)
# alcuni valori negativi possibili (sessioni diminuite)

# Wilcoxon per campioni appaiati
wilcox.test(prima, dopo, paired = TRUE)</code></pre>



<p class="has-light-gray-background-color has-background wp-block-paragraph"><strong>Un errore comune</strong>: pensare che Wilcoxon confronti le mediane. Non è esatto. Wilcoxon verifica se le distribuzioni dei due gruppi sono spostate l&#8217;una rispetto all&#8217;altra (stocasticamente), non se le mediane sono diverse. In pratica, se le due distribuzioni hanno forme simili, si comporta come un test sulla mediana — ma non è la stessa cosa. Un secondo errore: usare Wilcoxon anche quando i dati sono normali. In quel caso il t-test ha più potenza statistica (riesce a rilevare differenze più piccole). La regola è: <strong>normale → t-test; non normale → Wilcoxon</strong>.</p>



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



<p class="wp-block-paragraph">Hai a disposizione i dati di sessioni di due gruppi di pagine (gruppo A: pagine con title ottimizzato; gruppo B: pagine senza).</p>



<pre class="wp-block-code"><code>gruppo_A &lt;- c(45, 132, 28, 67, 312, 54, 89, 43, 156, 78,
              92, 34, 201, 67, 88, 43, 156, 67, 234, 55)
gruppo_B &lt;- c(67, 156, 89, 123, 445, 98, 134, 67, 189, 102,
              145, 56, 267, 89, 123, 78, 198, 89, 312, 78)

# Domanda 1: esegui il test di Wilcoxon. Il p-value cosa suggerisce?<br># Domanda 2: esegui anche un t-test. I due test danno lo stesso risultato?<br># Domanda 3: cosa succede se aggiungi un outlier estremo a gruppo_A (valore 5000)?</code></pre>



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



<pre class="wp-block-code"><code>wilcox.test(gruppo_A, gruppo_B)
t.test(gruppo_A, gruppo_B)

# Con outlier
gruppo_A_out &lt;- c(gruppo_A, 5000)
wilcox.test(gruppo_A_out, gruppo_B)
t.test(gruppo_A_out, gruppo_B)</code></pre>



<p class="wp-block-paragraph">Noterai che il t-test cambia drasticamente con l&#8217;outlier, mentre Wilcoxon resta molto più stabile: ecco la potenza dei ranghi.</p>



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



<p class="wp-block-paragraph">Wilcoxon è il primo soccorso quando i dati non sono normali: funziona con campioni piccoli, non si fa influenzare dagli outlier, e in R basta una riga di codice. Ma ha un limite: confronta solo due gruppi. Quando ne abbiamo più di due e i dati restano non normali, ci serve un&#8217;estensione — l&#8217;<strong>analisi della varianza non parametrica</strong>. Ne parliamo nel prossimo articolo.</p>



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



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



<p class="wp-block-paragraph">Il test di Wilcoxon e gli altri test non parametrici sono trattati sistematicamente in <a href="https://www.amazon.it/dp/8891910651?tag=consulenzeinf-21" rel="nofollow sponsored noopener" target="_blank"><em>Statistica</em></a> di Newbold, Carlson e Thorne, con le condizioni che guidano la scelta tra alternative parametriche e non parametriche. Per un approccio più operativo con R, <a href="https://www.amazon.it/dp/8848141571?tag=consulenzeinf-21" rel="nofollow sponsored noopener" target="_blank"><em>Analisi dei dati con R</em></a> di D&#8217;Orazio è un ottimo riferimento con esempi pronti all&#8217;uso.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/il-test-di-wilcoxon/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
