  <?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>test adattamento &#8211; paologironi blog</title>
	<atom:link href="https://www.gironi.it/blog/tag/test-adattamento-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>Wed, 25 Feb 2026 08:22:52 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Il test del chi quadrato: bontà di adattamento e test di indipendenza.</title>
		<link>https://www.gironi.it/blog/il-test-del-chi-quadrato/</link>
					<comments>https://www.gironi.it/blog/il-test-del-chi-quadrato/#comments</comments>
		
		<dc:creator><![CDATA[paolo]]></dc:creator>
		<pubDate>Tue, 10 Dec 2019 14:05:14 +0000</pubDate>
				<category><![CDATA[statistica]]></category>
		<category><![CDATA[chi quadrato]]></category>
		<category><![CDATA[goodness of fit]]></category>
		<category><![CDATA[test adattamento]]></category>
		<category><![CDATA[test indipendenza]]></category>
		<guid isPermaLink="false">https://www.gironi.it/blog/?p=1516</guid>

					<description><![CDATA[Nei post precedenti abbiamo visto diversi tipi di test che possiamo utilizzare per analizzare i dati in nostro possesso e verificare delle ipotesi. Il test chi quadrato fu proposto da Karl Pearson nel 1900, e trova ampia applicazione per stimare quanto efficacemente la distribuzione di una variabile categorica rappresenti una distribuzione attesa (e allora parliamo &#8230; <a href="https://www.gironi.it/blog/il-test-del-chi-quadrato/" class="more-link">Leggi tutto<span class="screen-reader-text"> "Il test del chi quadrato: bontà di adattamento e test di indipendenza."</span></a>]]></description>
										<content:encoded><![CDATA[
<p>Nei post precedenti abbiamo visto diversi tipi di test che possiamo utilizzare per analizzare i dati in nostro possesso e verificare delle ipotesi.</p>



<p>Il test chi quadrato fu proposto da <a aria-label="Karl Pearson (apre in una nuova scheda)" href="https://it.wikipedia.org/wiki/Karl_Pearson" target="_blank" rel="noreferrer noopener">Karl Pearson</a> nel 1900, e trova ampia applicazione per stimare quanto efficacemente la distribuzione di una variabile categorica rappresenti una distribuzione attesa (e allora parliamo di &#8220;Test della bontà di adattamento&#8221; o &#8220;Goodness of fit test&#8221;) oppure per stimare quando due variabili categoriche sono indipendenti l&#8217;una dall&#8217;altra (e allora parliamo di &#8220;Test di indipendenza&#8221;).</p>



<p>Tale è l&#8217;importanza e la diffusione di questo test, da essere indicato dalla rivista <em>Scientific American</em> tra le 20 scoperte scientifiche più importanti del XX secolo.</p>



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


				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-690c4a1a wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-undefined uagb-block-c2442174     "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							Di cosa parleremo													<svg xmlns="https://www.w3.org/2000/svg" viewBox= "0 0 384 512"><path d="M192 384c-8.188 0-16.38-3.125-22.62-9.375l-160-160c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L192 306.8l137.4-137.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-160 160C208.4 380.9 200.2 384 192 384z"></path></svg>
																			</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#il-test-della-bontà-di-adattamento-goodness-of-fit" class="uagb-toc-link__trigger">Il Test della bontà di adattamento (Goodness of Fit)</a><li class="uagb-toc__list"><a href="#capire-attraverso-un-semplice-esempio" class="uagb-toc-link__trigger">Capire attraverso un semplice esempio</a><li class="uagb-toc__list"><a href="#mi-semplifico-la-vita-usando-una-calcolatrice-scientifica-casio" class="uagb-toc-link__trigger">Mi semplifico la vita usando una calcolatrice scientifica Casio</a><li class="uagb-toc__list"><a href="#uso-r-per-il-test-della-bontà-di-adattamento" class="uagb-toc-link__trigger">Uso R per il test della bontà di adattamento</a><li class="uagb-toc__list"><a href="#il-test-di-indipendenza" class="uagb-toc-link__trigger">Il Test di Indipendenza</a><li class="uagb-toc__list"><a href="#il-test-di-indipendenza-con-la-casio" class="uagb-toc-link__trigger">Il Test di indipendenza con la Casio</a><li class="uagb-toc__list"><a href="#il-test-di-indipendenza-con-r" class="uagb-toc-link__trigger">Il test di indipendenza con R</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#potrebbe-interessarti-anche" class="uagb-toc-link__trigger">Potrebbe interessarti anche</a></ul></ol>					</div>
									</div>
				</div>
			


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



<h2 class="wp-block-heading">Il Test della bontà di adattamento (<em>Goodness of Fit</em>)</h2>



<p>E&#8217; un utilissimo test, che concerne la distribuzione di una variabile categorica. Ci consente infatti di verificare se le frequenze osservate differiscono in misura significativa da quelle attese, quando gli esiti possibili sono più di due.</p>



<p>I prerequisiti per poter effettuare il test sono molto semplici:</p>



<ol class="wp-block-list">
<li>Il campione deve essere casuale;</li>



<li>Le osservazioni devono essere indipendenti per il campione (una osservazione per soggetto); </li>



<li>Nessun valore osservato in ciascuna classe inferiore a 5. <br>Questo ultimo punto suona piuttosto criptico e merita qualche parola in più. Quando la vc è continua o i caratteri non sono nominali e si dispone di osservazioni campionarie singole, un problema importante concerne la determinazione del numero di classi (chiamate anche &#8220;celle&#8221;) in cui articolare la distribuzione. Nella prassi è richiesto che le frequenze teoriche siano almeno uguali a 5; vale a dire che occorre verificare che il numero di elementi osservati in ciascuna classe non sia inferiore a una soglia minima.</li>
</ol>



<h2 class="wp-block-heading">Capire attraverso un semplice esempio</h2>



<p>Come al solito, per capire meglio di cosa stiamo parlando ci spiegheremo con un esempio super-semplificato (e, mi scuso, abbastanza ridicolo&#8230;).<br><br>Suppongo che sia stato condotto uno studio sugli hobbisti appassionati di elettronica che usano schede Arduino. Si è visto che i possessori di una sola scheda Arduino sono il 50%, quelli che hanno da 2 a 4 schede sono il 30%, chi ne possiede 5 o più è il 20%.</p>



<p>Immaginiamo che io abbia condotto un mio studio indipendente e abbia riscontrato questi dati: su 150 hobbisti ho trovato che 90 possedevano un solo Arduino, 30 da 2 a 4 schede, e 30 5 o più schede.<br><br>L&#8217;ipotesi nulla è che le proporzioni da me riscontrate siano in linea con quelle dello studio ufficiale.<br>L&#8217;ipotesi alternativa è ovviamente che i dati raccolti non confermino le proporzioni dello studio ufficiale.</p>



<p>Preparo la mia tabella inserendo i dati:</p>



<figure class="wp-block-table"><table><tbody><tr><td></td><td class="has-text-align-center" data-align="center"><b>Un solo Arduino</b></td><td class="has-text-align-center" data-align="center"><b>Da 2 a 4 schede</b></td><td class="has-text-align-center" data-align="center"><b>5 o più schede</b></td><td class="has-text-align-center" data-align="center"><b>Totale</b></td></tr><tr><td>Dati osservati</td><td class="has-text-align-center" data-align="center">90<br></td><td class="has-text-align-center" data-align="center">30</td><td class="has-text-align-center" data-align="center">30</td><td class="has-text-align-center" data-align="center">150</td></tr><tr><td>Dati attesi</td><td class="has-text-align-center" data-align="center">0.50 x 150 = 75</td><td class="has-text-align-center" data-align="center">0.30 x 150 = 45</td><td class="has-text-align-center" data-align="center"> 0.20 x 150 = 30 </td><td class="has-text-align-center" data-align="center">150</td></tr></tbody></table></figure>



<p>Per  accettare l&#8217;ipotesi nulla, occorre che la differenza tra le frequenze attese e quelle osservate sia attribuibile alla variabilità di campionamento al livello designato di significatività.</p>



<p>La statistica χ<sup>2</sup> calcolata dai dati campionari è data da:</p>



\(
\chi^2=\Sigma\frac{(f_0-f_e)^2}{f_e}\\ \\
\)
<p>
f<sub>0</sub>=frequenze osservate <br>
f<sub>e</sub>=frequenze attese <br>
</p>



<p>I gradi di libertà per i test di adattamento sono:</p>



\(
df=(r-1)(c-1)\\
\\ \\
\)
<p>
r = numero di righe della tabella di contingenza <br>
c = numero di colonne della tabella di contingenza
</p>



<p>Usiamo come linee guida il nostro esempio. Partiamo dalle ipotesi:</p>



\(
H_0=le\ frequenze\ sono\ 0.5\ 0.3\ 0.2\\
H_a=le\ frequenze\ non\ sono\ 0.5\ 0.3\ 0.2\\
\)



<p>Abbiamo:</p>
\(
n=150\\
df=(2-1)(3-1)=2\\ \\
\)
<p>Troviamo nelle tabelle il valore del χ<sup>2</sup> critico (df=2, α=0.05)<br>
Il valore risulta essere: <b>5.99</b>
</p>



<p>Ora calcolo il valore del χ<sup>2</sup> per i miei dati:</p>



\(
\chi^2=\frac{(90-75)^2}{75}+\frac{(30-45)^2}{45}+\frac{(30-30)^2}{30}=\\
=\frac{225}{75}+\frac{225}{45}+\frac{0}{30}=\\
=3+5\\
=8\\
\)



<p>Concludiamo allora (poichè il valore calcolato risulta <strong>superiore al valore critico</strong>) che <strong>possiamo rifiutare l&#8217;ipotesi nulla al livello di significatività del 5%</strong>. Cioè: possiamo rifiutare l&#8217;asserzione che le frequenze siano distribuite secondo la proporzione 50%,30%,20%.</p>



<h2 class="wp-block-heading">Mi semplifico la vita usando una calcolatrice scientifica Casio</h2>



<p>Con la mia calcolatrice fx mi basta scegliere da menù la voce &#8220;STAT&#8221; e inserire nel mio editor di tabella i valori osservati nella lista L1 e i valori attesi in L2.<br><br>Poi sceglierò: </p>



<pre class="wp-block-preformatted">[TEST]<br>[CHI]<br>[GoF]<br>Observed:List1<br>Expected:List2<br>df:2<br>[CALC]</pre>



<p>e otterrò sia il valore del chi quadrato, sia quello di p (in questo caso 0,01832 che è inferiore al valore di alpha 0.05 da me scelto, confermando la conclusione che posso rigettare l&#8217;ipotesi nulla e accogliere quella alternativa).</p>



<h2 class="wp-block-heading">Uso R per il test della bontà di adattamento</h2>



<p>In R l&#8217;esempio indicato risulta ancora più semplice da impostare:</p>



<pre class="wp-block-preformatted">osservati&lt;-c(90,30,30)
proporzione_attesa&lt;-c(0.5,0.3,0.2)
chisq.test(osservati,p=proporzione_attesa,correct=FALSE)

e il risultato sarà:

Chi-squared test for given probabilities
data:  osservati
X-squared = 8, df = 2, p-value = 0.01832</pre>



<h2 class="wp-block-heading">Il Test di Indipendenza</h2>



<p>E&#8217; comunemente usato per determinare se due fattori sono tra loro in relazione.</p>



<p>In genere, quello che vogliamo sapere è: &#8220;La variabile X è indipendente dalla variabile Y ?</p>



<p class="has-light-gray-background-color has-background">Attenzione: la risposta che otteniamo dal nostro test è <strong>solo</strong> questa, non <strong>come </strong>sono relate le variabili.</p>



<p>Nel caso del test della bontà di adattamento vi è <strong>una sola variabile </strong>in gioco: le frequenze osservate possono quindi essere elencate in un&#8217;unica riga, o colonna, di valori in una tabella.</p>



<p>I test di indipendenza, invece, implicano <strong>due variabili</strong> e l&#8217;<strong>oggetto del test</strong> è proprio l&#8217;<strong>assunzione che le due variabili siano statisticamente indipendenti</strong>.</p>



<p>Poichè due variabili sono implicate nel test, le frequenze osservate sono inserite in una <strong><a href="https://www.gironi.it/blog/tabelle-di-contingenza-e-probabilita-condizionata" target="_blank" rel="noreferrer noopener" aria-label="tavola di contingenza (apre in una nuova scheda)">tavola di contingenza</a></strong> del <strong>tipo riga x colonna</strong>. <br>Ad esempio, rappresento i dati relativi a età e sesso degli appassionati di un dato marchio commerciale:</p>



<table class="font-size:11px;"><tbody><tr><td><b>Età</b></td><td><b>Maschio</b></td><td><b>Femmina</b></td><td><b>Totale</b></td></tr><tr><td><b>&lt;35</b></td><td>66</td><td>54</td><td>120</td></tr><tr><td><b>&gt;=35</b></td><td>78</td><td>12</td><td>90</td></tr><tr><td><b>Totale</b></td><td>144</td><td>66</td><td>210</td></tr></tbody></table>



<p>Vogliamo testare l&#8217;ipotesi nulla che le due variabili<strong> qualitative</strong> sesso ed età siano indipendenti. Dunque, l&#8217;ipotesi alternativa prevede invece che esista una relazione tra le due variabili.</p>



<p>Se l&#8217;ipotesi di indipendenza è vera, fra la frequenza osservata di ciascuna casella e il totale delle frequenze osservate della riga e colonna in cui quella casella è inclusa, devono esserci le stesse proporzioni esistenti fra il totale di colonna e di riga e la dimensione totale del campione.</p>



\(
f_e=\frac{\Sigma_{riga}\ \Sigma_{colonna}}{n}\\
\\ \\
df=(r-1)(c-1)\\
\\ \\
\)



<p>A questo punto procedo con il mio esempio:</p>



\(
f_e=\frac{\Sigma_{riga}\ \Sigma_{colonna}}{n}=\frac{120\times 144}{210}=82,3\\
\)



<div style="height:14px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-light-gray-background-color has-background">Le 3 frequenze rimanenti possono essere facilmente ottenute per sottrazione dai totali di riga e di colonna. Infatti, <strong>una tabella 2&#215;2 ha df=1</strong>, cioè <strong>la frequenza di una sola casella è libera di variare</strong>.</p>



<p>Otterrò:</p>



<table style="font-size:11px;"><tbody><tr><td><b>Età</b></td><td><b>Maschi</b></td><td><b>Femmine</b></td><td><b>Totale</b></td></tr><tr><td>&lt;35</td><td>82</td><td>38</td><td>120</td></tr><tr><td>&gt;=35</td><td>62</td><td>28</td><td>90</td></tr><tr><td>Totale</td><td>144</td><td>66</td><td>210</td></tr></tbody></table>
<br>



<div style="height:16px" aria-hidden="true" class="wp-block-spacer"></div>



\(
H_0=sesso\ e\ anni\ sono\ indipendenti\\
H_a=esiste\ una\ relazione\ tra\ sesso\ e\ anni\\
\\ \\
df=(2-1)(2-1)=1
\)
<br>
<br>
<p>
Scelgo un livello α=0.01 di significatività
</p>



\(
\chi^2_{critico}=6.63\\
\)



<p>calcolo il valore del chi-quadro e trovo:</p>



\(
\chi^2=23.9\\
\)



<p>Si rifiuta allora l&#8217;ipotesi nulla di indipendenza al livello di significatività dell&#8217;1%. Le variabili età e sesso sono dipendenti.</p>



<h2 class="wp-block-heading">Il Test di indipendenza con la Casio</h2>



<p>Per risolvere il mio esempio in maniera molto semplice con la mia Casio avrei potuto fare così:</p>



<p>Carico i miei dati di tabella in una matrice, che chiamo A:</p>



<pre class="wp-block-preformatted">[[66,54][78,12]]→[OPTN][MAT][MAT][ALPHA][A]</pre>



<p id="block-bf13504e-9671-41f0-bff4-2df66f19200a">A questo punto mi sposto nelle funzioni statistiche:</p>



<pre class="wp-block-preformatted">[MENU][STAT]

[TEST][CHI][2WAY]

Observed:Mat A

Expected:Mat B

[CALC]</pre>



Il risultato sarà:
<br><br>
χ<sup>2</sup>=23.9299242<br>
p=9.9907e-07<br>
df=1<br>
<br>
Come si vede dal bassissimo valore di p, accolgo l&#8217;ipotesi alternativa e scarto l&#8217;ipotesi nulla.



<h2 class="wp-block-heading">Il test di indipendenza con R</h2>



<p>Costruisco la mia tabella di contingenza</p>



<pre class="wp-block-preformatted">appassionati &lt;- matrix(c(66,54,78,12),ncol=2,byrow=TRUE)
 rownames(appassionati) &lt;- c("meno di 35","35 o piu")
 colnames(appassionati) &lt;- c("maschio","femmina")
 appassionati &lt;- as.table(appassionati)
 appassionati

posso calcolare i totali di riga:
margin.table(appassionati,1)

e quelli di colonna:
margin.table(appassionati,2)

il gran totale è:
margin.table(appassionati)

guardo i valori attesi:
chisq.test(appassionati)$expected

e testo l'ipotesi con:
chisq.test(appassionati)</pre>



<p>il bassissimo valore di p risultante mi indica che posso rigettare l&#8217;ipotesi nulla dell&#8217;indipendenza delle due variabili.</p>


<!-- internal-links-section -->
<h3>Potrebbe interessarti anche</h3>
<ul>
<li><a href="https://www.gironi.it/blog/ab-testing/">A/B Testing: come condurre esperimenti statisticamente validi (e gli errori da evitare)</a></li>
</ul>]]></content:encoded>
					
					<wfw:commentRss>https://www.gironi.it/blog/il-test-del-chi-quadrato/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
