Univariate analyse
Verdelingsgrafieken, histogrammen, boxplots en countplots om afzonderlijke features te begrijpen.
Univariate analyse is een gratis Leer AI met Python-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.
Wat is univariate analyse?
Univariate analyse onderzoekt telkens één variabele om de verdeling ervan te begrijpen: het centrum, de spreiding, de vorm en ongebruikelijke waarden.
De juiste grafiek hangt af van het type variabele:
- Numeriek → histogram, KDE, boxplot, vioolplot
- Categorisch → frequentiegrafiek (staafdiagram van frequenties)
De tekenbibliotheken instellen
We gebruiken Matplotlib (plt) en Seaborn (sns). Seaborn is gebouwd op Matplotlib en heeft prettigere standaardinstellingen voor statistische grafieken.
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
sns.set_theme(style="whitegrid")
df = pd.read_csv("data.csv")Histogrammen met plt.hist
Een histogram verdeelt numerieke waarden over intervallen en telt hoeveel waarden in elk interval vallen. Zo zie je de algemene vorm van een verdeling.
Het argument bins bepaalt de resolutie — te weinig intervallen verbergen de structuur, te veel voegen ruis toe.
plt.hist(df["age"], bins=30, edgecolor="black")
plt.xlabel("Age")
plt.ylabel("Count")
plt.title("Age Distribution")
plt.show()KDE-grafieken — vloeiende dichtheid
Een kerneldichtheidsschatting (sns.kdeplot) tekent een vloeiende curve die de verdeling benadert. Die kan gemakkelijker te lezen zijn dan gekartelde histogramstaven.
Combineer beide met sns.histplot(..., kde=True) om de vloeiende curve over de staven heen te leggen.
sns.kdeplot(df["age"], fill=True)
plt.show()
sns.histplot(df["age"], bins=30, kde=True)
plt.show()Scheefheid herkennen
Scheefheid meet asymmetrie. Een lange staart naar rechts is rechts- (positief) scheef; een lange staart naar links is links- (negatief) scheef.
Inkomens, prijzen en aantallen zijn meestal rechts-scheef. Je kunt de scheefheid kwantificeren met df[col].skew() — waarden die ver van 0 liggen, wijzen op scheefheid.
print(df["income"].skew()) # e.g. 2.3 -> strong right skew
sns.histplot(df["income"], bins=40, kde=True)
plt.show()Bimodaliteit herkennen
Een bimodale verdeling heeft twee pieken. Dat wijst er vaak op dat twee afzonderlijke groepen door elkaar staan, bijvoorbeeld twee producttypen in één prijskolom.
KDE-grafieken maken bimodaliteit duidelijk zichtbaar — let op twee bulten. Dat kan erop wijzen dat een verborgen categorische variabele de splitsing verklaart.
sns.kdeplot(df["price"], fill=True)
plt.title("Two peaks suggest two subpopulations")
plt.show()Boxplots met sns.boxplot
Een boxplot toont de mediaan (de middelste lijn), het interkwartielbereik (IQR, de box) en snorren die doorlopen tot ongeveer 1,5 keer de IQR. Punten buiten de snorren worden als uitschieters gemarkeerd.
sns.boxplot(x=df["income"])
plt.title("Income — box plot")
plt.show()Uitschieters en de IQR-regel
De boxplot gebruikt de IQR-regel: een punt is een uitschieter als het onder Q1 - 1.5*IQR of boven Q3 + 1.5*IQR ligt.
Je kunt de grenzen zelf berekenen om extreme waarden te filteren of af te kappen.
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")Vioolplots met sns.violinplot
Een vioolplot combineert een boxplot met een gespiegeld KDE. De breedte op elke hoogte toont de dichtheid, zodat je zowel de vorm als de samenvattende statistieken tegelijk ziet.
Vioolplots zijn zeer geschikt om scheefheid of bimodaliteit zichtbaar te maken die een gewone boxplot zou verbergen.
sns.violinplot(x=df["age"])
plt.title("Age — violin plot")
plt.show()Frequentiegrafieken voor categorische variabelen
Gebruik voor categorische kolommen sns.countplot — een staafdiagram van de categoriefrequenties. Dit is de visuele vorm van value_counts().
Sorteer de staven op frequentie voor een betere leesbaarheid met het argument order.
order = df["city"].value_counts().index
sns.countplot(y="city", data=df, order=order)
plt.title("Records per city")
plt.show()De juiste univariate grafiek kiezen
Snelle keuzehulp:
- Vorm van een numerieke kolom → histogram of KDE
- Uitschieters en kwartielen → boxplot
- Vorm en samenvatting samen → vioolplot
- Categoriefrequenties → frequentiegrafiek
Snelle controle: de juiste grafiek kiezen
Je wilt de mediaan, kwartielen en uitschieters van één numerieke kolom zien.
Samenvatting: univariate analyse
Je hebt geleerd om telkens één variabele te inspecteren:
plt.histensns.kdeplotvoor de vorm van een verdeling.skew()om asymmetrie te kwantificeren; KDE-bulten voor bimodaliteitsns.boxploten de IQR-regel voor uitschieterssns.violinplotvoor vorm en samenvatting samensns.countplotvoor categoriefrequenties
Vervolgens bekijken we relaties tussen twee of meer variabelen.
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 53
- Lessen
- 225
Veelgestelde vragen
Is de les “Univariate analyse” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “Univariate analyse”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.
Wat leer ik in “Univariate analyse”?
Verdelingsgrafieken, histogrammen, boxplots en countplots om afzonderlijke features te begrijpen. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Leer AI met Python te beginnen?
Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Univariate analyse”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?
Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- EDA-workflow en dataprofielen
- Univariate analyse
- Bivariate en multivariate analyse
- Featureverdeling en doelvariabele analyseren