📖 Scenario: You are a data analyst working with two sets of data representing customer ratings from two different stores. You want to check if these two sets of ratings come from the same distribution or not.
🎯 Goal: Build a Python program that uses the Kolmogorov-Smirnov test from SciPy to compare two data samples and print the test statistic and p-value.
📋 What You'll Learn
Create two lists of customer ratings with exact values
Import the ks_2samp function from scipy.stats
Use ks_2samp to compare the two lists
Print the test statistic and p-value exactly as shown
💡 Why This Matters
🌍 Real World
The Kolmogorov-Smirnov test helps compare two sets of data to check if they come from the same distribution, useful in quality control and customer feedback analysis.
💼 Career
Data scientists and analysts use this test to validate assumptions about data distributions before building models or making decisions.
Progress0 / 4 steps
1
Create two lists of customer ratings
Create two lists called ratings_store1 and ratings_store2 with these exact values: ratings_store1 = [4, 5, 3, 4, 5, 4, 3, 4] and ratings_store2 = [5, 5, 4, 4, 5, 5, 4, 5].
SciPy
Hint
Use square brackets to create lists and separate numbers with commas.
2
Import the Kolmogorov-Smirnov test function
Import the function ks_2samp from the module scipy.stats.
SciPy
Hint
Use the from ... import ... syntax to import ks_2samp.
3
Apply the Kolmogorov-Smirnov test
Use the function ks_2samp with ratings_store1 and ratings_store2 as inputs and save the result in a variable called ks_result.
SciPy
Hint
Call ks_2samp with the two lists as arguments and assign it to ks_result.
4
Print the test statistic and p-value
Print the test statistic and p-value from ks_result using print(f"KS statistic: {ks_result.statistic}") and print(f"p-value: {ks_result.pvalue}").
SciPy
Hint
Use print with f-strings to show the statistic and pvalue attributes of ks_result.
Practice
(1/5)
1. What is the main purpose of the scipy.stats.ks_2samp function in data analysis?
easy
A. To generate random numbers from a normal distribution
B. To calculate the mean of a dataset
C. To perform linear regression between two variables
D. To compare two samples and check if they come from the same distribution
Solution
Step 1: Understand the function purpose
ks_2samp is designed to compare two independent samples.
Step 2: Identify what it tests
It tests if the two samples come from the same continuous distribution.
Final Answer:
To compare two samples and check if they come from the same distribution -> Option D
Quick Check:
Kolmogorov-Smirnov test compares distributions [OK]
Hint: Remember KS test compares distributions, not means or regressions [OK]
Common Mistakes:
Confusing KS test with mean calculation
Thinking KS test performs regression
Assuming KS test generates random data
2. Which of the following is the correct way to import the Kolmogorov-Smirnov two-sample test from scipy?
easy
A. import ks_2samp from scipy.stats
B. import scipy.ks_2samp
C. from scipy.stats import ks_2samp
D. from scipy import ks_2samp
Solution
Step 1: Recall correct import syntax
Functions inside scipy.stats are imported using from scipy.stats import function_name.
Step 2: Match the function name
The function for KS two-sample test is ks_2samp, so the correct import is from scipy.stats import ks_2samp.
Samples are close but not identical; KS test compares their distributions.
Step 2: Run the KS test and check p-value
Running the code shows p-value approximately 0.999, indicating no strong evidence to reject similarity.
Final Answer:
0.999 -> Option A
Quick Check:
Close samples give very high p-value ~0.999 [OK]
Hint: Close samples usually yield high p-values, not moderate or low [OK]
Common Mistakes:
Assuming p-value is always very small for different samples
Confusing p-value with test statistic
Rounding errors leading to wrong choice
4. Identify the error in this code snippet that attempts to perform a KS test:
from scipy.stats import ks_2samp
sample1 = [1, 2, 3]
sample2 = [4, 5, 6]
result = ks_2samp(sample1)
print(result.statistic)
medium
A. Incorrect import statement for ks_2samp
B. Missing second sample argument in ks_2samp call
C. Using print instead of return to show result
D. Samples contain integers instead of floats
Solution
Step 1: Check function call parameters
ks_2samp requires two sample arguments, but only one is given.
Step 2: Identify the error cause
Missing second sample causes a TypeError because the function expects two inputs.
Final Answer:
Missing second sample argument in ks_2samp call -> Option B
Quick Check:
ks_2samp needs two samples [OK]
Hint: ks_2samp always needs two sample inputs [OK]
Common Mistakes:
Forgetting the second sample argument
Thinking print causes error
Assuming integer samples cause error
5. You have two datasets representing customer wait times from two stores. You want to check if their wait times differ significantly. Which approach using scipy is best?
hard
A. Use ks_2samp to compare the two samples' distributions
B. Calculate the mean wait time of each and compare with subtraction
C. Use linear regression to predict wait times from store ID
D. Use ttest_ind to compare the two samples assuming normality
Solution
Step 1: Understand the data and goal
We want to check if two samples (wait times) differ in distribution, not just means.
Step 2: Choose appropriate test
ks_2samp compares full distributions without assuming normality, ideal for wait times.
Step 3: Evaluate other options
Mean subtraction ignores distribution shape; regression is unrelated; ttest_ind assumes normality which may not hold.
Final Answer:
Use ks_2samp to compare the two samples' distributions -> Option A
Quick Check:
KS test compares distributions best for this case [OK]
Hint: KS test compares distributions without normality assumptions [OK]
Common Mistakes:
Using mean difference which ignores distribution shape
Applying t-test without checking normality
Using regression for distribution comparison
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.