0Pricing
Learn AI with Python · Lezione

Analisi univariata

Grafici delle distribuzioni, istogrammi, box plot e count plot per comprendere le singole feature.

Analisi univariata è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.

Che cos'è l'analisi univariata?

L'analisi univariata esamina una variabile alla volta per comprenderne la distribuzione: centro, dispersione, forma e valori insoliti.

Il grafico più adatto dipende dal tipo di variabile:

  • Numerica → istogramma, KDE, box plot, violin plot
  • Catgorica → count plot (grafico a barre delle frequenze)

Configurazione delle librerie per i grafici

Utilizziamo Matplotlib (plt) e Seaborn (sns). Seaborn si basa su Matplotlib e offre impostazioni predefinite più gradevoli per i grafici statistici.

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

sns.set_theme(style="whitegrid")
df = pd.read_csv("data.csv")

Istogrammi con plt.hist

Un istogramma suddivide i valori numerici in intervalli e conta quanti valori rientrano in ciascuno. Rivela la forma complessiva di una distribuzione.

L'argomento bins controlla la risoluzione: un numero troppo basso nasconde la struttura, mentre uno troppo alto aggiunge rumore.

plt.hist(df["age"], bins=30, edgecolor="black")
plt.xlabel("Age")
plt.ylabel("Count")
plt.title("Age Distribution")
plt.show()

Grafici KDE — Densità uniforme

Una stima della densità kernel (sns.kdeplot) traccia una curva uniforme che approssima la distribuzione; può essere più facile da leggere rispetto alle barre irregolari di un istogramma.

Combini i due grafici con sns.histplot(..., kde=True) per sovrapporre la curva uniforme alle barre.

sns.kdeplot(df["age"], fill=True)
plt.show()

sns.histplot(df["age"], bins=30, kde=True)
plt.show()

Individuazione dell'asimmetria

L'asimmetria misura la mancanza di simmetria. Una lunga coda verso destra indica un'asimmetria destra (positiva); una lunga coda verso sinistra indica un'asimmetria sinistra (negativa).

Redditi, prezzi e conteggi sono solitamente asimmetrici a destra. È possibile quantificare l'asimmetria con df[col].skew(): valori molto lontani da 0 indicano asimmetria.

print(df["income"].skew())   # e.g. 2.3 -> strong right skew
sns.histplot(df["income"], bins=40, kde=True)
plt.show()

Individuazione della bimodalità

Una distribuzione bi-modale presenta due picchi, spesso segno che due gruppi distinti sono stati mescolati (ad esempio due tipi di prodotto in un'unica colonna dei prezzi).

I grafici KDE rendono evidente la bimodalità: cerchi due gobbe. È un indizio del fatto che una variabile categorica nascosta potrebbe spiegare la suddivisione.

sns.kdeplot(df["price"], fill=True)
plt.title("Two peaks suggest two subpopulations")
plt.show()

Box plot con sns.boxplot

Un box plot mostra la mediana (la linea centrale), l'intervallo interquartile (IQR, il riquadro) e i baffi, che si estendono fino a circa 1.5x l'IQR. I punti oltre i baffi vengono segnalati come outlier.

sns.boxplot(x=df["income"])
plt.title("Income — box plot")
plt.show()

Outlier e regola dell'IQR

Il box plot utilizza la regola dell'IQR: un punto è un outlier se si trova al di sotto di Q1 - 1.5*IQR o al di sopra di Q3 + 1.5*IQR.

È possibile calcolare autonomamente i limiti per filtrare o limitare i valori estremi.

q1 = df["income"].quantile(0.25)
q3 = df["income"].quantile(0.75)
iqr = q3 - q1
low, high = q1 - 1.5*iqr, q3 + 1.5*iqr
outliers = df[(df["income"] < low) | (df["income"] > high)]
print(len(outliers), "outliers")

Violin plot con sns.violinplot

Un violin plot combina un box plot con una KDE speculare. La larghezza a ogni altezza mostra la densità, così è possibile vedere contemporaneamente la forma e le statistiche riassuntive.

I violin plot sono ottimi per evidenziare asimmetria o bimodalità che un semplice box plot nasconderebbe.

sns.violinplot(x=df["age"])
plt.title("Age — violin plot")
plt.show()

Count plot per le variabili categoriche

Per le colonne categoriche, utilizzi sns.countplot: un grafico a barre delle frequenze delle categorie. È la rappresentazione visiva di value_counts().

Per migliorare la leggibilità, ordini le barre in base alla frequenza con l'argomento order.

order = df["city"].value_counts().index
sns.countplot(y="city", data=df, order=order)
plt.title("Records per city")
plt.show()

Scelta del grafico univariato corretto

Guida rapida alla scelta:

  • Forma di una colonna numerica → istogramma o KDE
  • Outlier e quartili → box plot
  • Forma e riepilogo insieme → violin plot
  • Frequenze delle categorie → count plot

Verifica rapida: scelta del grafico

Si desidera visualizzare la mediana, i quartili e gli outlier di una singola colonna numerica.

Riepilogo: analisi univariata

Ha imparato a esaminare una variabile alla volta:

  • plt.hist e sns.kdeplot per la forma della distribuzione
  • .skew() per quantificare l'asimmetria; le gobbe della KDE per la bimodalità
  • sns.boxplot e la regola dell'IQR per gli outlier
  • sns.violinplot per combinare forma e riepilogo
  • sns.countplot per le frequenze delle variabili categoriche

Ora esamineremo le relazioni tra due o più variabili.

Domande Frequenti

La lezione «Analisi univariata» è gratuita?

Sì — il testo completo di «Analisi univariata» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.

Cosa imparerò in «Analisi univariata»?

Grafici delle distribuzioni, istogrammi, box plot e count plot per comprendere le singole feature. Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Analisi univariata»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?

Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Workflow EDA e profilazione dei dati
  2. Analisi univariata
  3. Analisi bivariata e multivariata
  4. Distribuzione delle feature e analisi del target
← Torna a Learn AI with Python