Course contentsShow
← Databases & SQL
Lesson 388 of 1,9534. Advanced Data AggregationFree lesson

Chi-Squared Independence Testing

Determine if two categorical variables are related within a provided dataset.

Chi-Squared Independence Testing

In this lesson, you will learn how to determine if two categorical variables are statistically related using the Chi-Squared Independence Test.

When you have a dataset with categorical columns—like "Customer Segment" and "Preferred Payment Method"—you often want to know if these variables are independent or if one influences the other. A Chi-Squared Test compares your observed data (what you actually see in your tables) against the expected data (what you would see if there were absolutely no relationship between the categories).

The Core Logic

To perform this test in SQL, you follow a three-step aggregation process:

  1. Observed Counts: Aggregate your data into a contingency table (a matrix of counts).
  2. Expected Counts: Calculate what the counts should be if the variables were independent, using the formula: (Row Total * Column Total) / Grand Total.
  3. The Statistic: Calculate the Chi-Squared value using the formula: Σ((Observed - Expected)² / Expected).

If the resulting sum is high, it suggests that your variables are likely dependent.

SQL Implementation

Let’s say we want to test if payment_method is independent of region:

WITH Totals AS (
    SELECT 
        payment_method, 
        region, 
        COUNT(*) as observed,
        SUM(COUNT(*)) OVER(PARTITION BY payment_method) as row_total,
        SUM(COUNT(*)) OVER(PARTITION BY region) as col_total,
        SUM(COUNT(*)) OVER() as grand_total
    FROM transactions
    GROUP BY payment_method, region
)
SELECT 
    SUM(POWER(observed - (row_total * col_total / grand_total), 2) / 
       (row_total * col_total / grand_total)) as chi_squared_stat
FROM Totals;

In this snippet, we use WINDOW FUNCTIONS to compute the totals required for the expected frequency calculation. By grouping the observations into a matrix, we transform row-level transaction data into a statistical summary. A large chi_squared_stat indicates that the distribution of payment methods significantly changes depending on the region, which is a key insight for business analysts moving beyond simple frequency distributions.

Key Takeaway: The Chi-Squared test quantifies the difference between observed categorical frequencies and the values expected under total independence, allowing you to prove if two categorical variables have a statistically significant relationship.