Comparison and How to Choose
Side-by-side comparison
| Feature | Univariate | Bivariate | Multivariate |
|---|---|---|---|
| Variables | One | Two | More than two |
| Objective | Describe a single variable | Examine the relationship between two variables | Understand relationships among many variables |
| Dependency | No dependent variable | One dependent variable (usually) | One or more dependent variables |
| Techniques | Descriptive statistics, histogram | Correlation, scatter plot, simple regression | Multiple regression, PCA, MANOVA, clustering |
| Visualisation | Histogram, box plot, bar chart | Scatter plot, regression line, grouped box plot | Pair plot, heatmap, 3D plot, biplot |
| Example | Height of students | Temperature vs ice-cream sales | Ad type, gender and click rate |
| Complexity | Low | Moderate | High |
A recommended order of exploration
- Univariate first. Check every variable alone: distribution, outliers, missing values.
- Then bivariate. Check every feature against the target, and important features against each other.
- Finally multivariate. Look at interactions, redundancy and structure using heatmaps, PCA and clustering.
Skipping step 1 is the most common beginner error: a single unnoticed outlier can create a fake "strong correlation" in step 2.
Decision guide
| Your question | Approach |
|---|---|
| "What is the typical salary in this company?" | Univariate |
| "Do people with more experience earn more?" | Bivariate |
| "How do experience, education, city and role together determine salary?" | Multivariate |
| "Which columns can I drop because they say the same thing?" | Bivariate correlation then multivariate (VIF / PCA) |
Quick example on one dataset
# Univariate
df["alcohol"].describe()
# Bivariate
df[["alcohol", "quality"]].corr()
# Multivariate
sns.pairplot(df[["alcohol", "sulphates", "density", "quality"]])
The same dataset is explored three ways, each answering a deeper question than the one before.
Summary
- More variables = richer insight, but also more complexity and a bigger need for data.
- Simple methods are not "worse"; they are the base on which complex methods stand.
- Always match the method to the question, not the other way round.