📖 Scenario: You are a data analyst working with two groups of patients. You want to check if the two groups have different distributions of recovery times without assuming the data follows a normal distribution.
🎯 Goal: Perform the Mann-Whitney U test using SciPy to compare recovery times between two patient groups and interpret the test result.
📋 What You'll Learn
Create two lists of recovery times for two patient groups
Set a significance level variable
Use SciPy's mannwhitneyu function to perform the test
Print the U statistic and p-value
💡 Why This Matters
🌍 Real World
The Mann-Whitney U test is used in medical research, social sciences, and other fields to compare two groups when data is not normally distributed.
💼 Career
Data analysts and scientists use this test to make decisions about differences between groups without relying on assumptions of normality.
Progress0 / 4 steps
1
Create recovery time data for two patient groups
Create two lists called group1 and group2 with these exact recovery times: group1 = [5, 7, 8, 6, 9] and group2 = [10, 12, 9, 11, 13].
SciPy
Hint
Use square brackets to create lists and separate numbers with commas.
2
Set the significance level
Create a variable called alpha and set it to 0.05 to represent the significance level for the test.
SciPy
Hint
Use a simple assignment to create the variable alpha.
3
Perform the Mann-Whitney U test
Import mannwhitneyu from scipy.stats and use it to perform the test on group1 and group2. Store the results in variables u_statistic and p_value.
SciPy
Hint
Use alternative='two-sided' to test for difference in either direction.
4
Print the test results
Print the values of u_statistic and p_value using two separate print statements.
SciPy
Hint
Use print(u_statistic) and print(p_value) to show the results.
Practice
(1/5)
1. What is the main purpose of the Mann-Whitney U test in data analysis?
easy
A. To test if a single sample mean equals a known value
B. To compare two independent groups without assuming normal distribution
C. To measure the correlation between two variables
D. To analyze the variance among multiple groups
Solution
Step 1: Understand the test purpose
The Mann-Whitney U test is a non-parametric test used to compare two independent groups.
Step 2: Identify the key feature
It does not assume the data follows a normal distribution, unlike t-tests.
Final Answer:
To compare two independent groups without assuming normal distribution -> Option B
Quick Check:
Non-parametric comparison = C [OK]
Hint: Remember: Mann-Whitney compares two groups without normality [OK]
Common Mistakes:
Confusing it with correlation tests
Assuming it compares means only
Using it for more than two groups
2. Which of the following is the correct way to import the Mann-Whitney U test function from scipy?
easy
A. import scipy.mannwhitneyu as mw
B. import mannwhitneyu from scipy.stats
C. from scipy import mann_whitney_u_test
D. from scipy.stats import mannwhitneyu
Solution
Step 1: Recall scipy.stats module functions
The Mann-Whitney U test function is named mannwhitneyu and is inside scipy.stats.
Step 2: Check correct import syntax
The correct Python import syntax is from scipy.stats import mannwhitneyu.
Final Answer:
from scipy.stats import mannwhitneyu -> Option D
Quick Check:
Correct import syntax = B [OK]
Hint: Use 'from scipy.stats import mannwhitneyu' to import [OK]
Common Mistakes:
Using wrong module or function name
Incorrect import syntax
Trying to import with 'import ... as' incorrectly
3. What will be the output of the following code snippet?
from scipy.stats import mannwhitneyu
x = [1, 3, 5]
y = [2, 4, 6]
stat, p = mannwhitneyu(x, y)
print(round(stat, 2), round(p, 3))
medium
A. 3.0 0.5
B. 4.5 0.25
C. 6.0 0.05
D. 0.0 1.0
Solution
Step 1: Understand the data and test
Lists x and y have values [1,3,5] and [2,4,6]. Mann-Whitney U test compares ranks between these two groups.
Step 2: Calculate Mann-Whitney U statistic and p-value
Using scipy, the U statistic is 3.0 and p-value is 0.5 (two-sided test by default).
Final Answer:
3.0 0.5 -> Option A
Quick Check:
U=3.0, p=0.5 from scipy output [OK]
Hint: Run code to get exact U and p values quickly [OK]
Common Mistakes:
Mixing up U statistic with p-value
Rounding incorrectly
Assuming p-value is always small
4. Identify the error in this Mann-Whitney U test code and select the fix:
from scipy.stats import mannwhitneyu
x = [1, 2, 3]
y = [4, 5, 6]
stat, p = mannwhitneyu(x, y, alternative='greater')
print(stat, p)
medium
A. Replace mannwhitneyu with mann_whitney_u
B. Change 'alternative' to 'two-sided'
C. No error; code runs correctly
D. Use 'alternative="greater"' with capital G
Solution
Step 1: Check function parameters
The mannwhitneyu function accepts an alternative parameter with values 'two-sided', 'less', or 'greater'.
Step 2: Verify code correctness
Using alternative='greater' is valid and the function call is correct.
Final Answer:
No error; code runs correctly -> Option C
Quick Check:
Correct parameter usage = D [OK]
Hint: Check scipy docs for valid 'alternative' values [OK]
Common Mistakes:
Using wrong alternative string case
Trying to use non-existent function names
Assuming default alternative is 'greater'
5. You have two small samples with skewed data: a = [2, 3, 5, 7] and b = [1, 4, 6, 8]. You want to test if sample a tends to have higher values than b. Which scipy Mann-Whitney U test call is correct?
hard
A. mannwhitneyu(a, b, alternative='greater')
B. mannwhitneyu(a, b, alternative='less')
C. mannwhitneyu(a, b, alternative='two-sided')
D. mannwhitneyu(b, a, alternative='greater')
Solution
Step 1: Define the hypothesis direction
We want to test if a tends to have higher values than b, so the alternative hypothesis is 'greater'.
Step 2: Choose correct function call
The call should be mannwhitneyu(a, b, alternative='greater') to test if a is stochastically greater than b.
Final Answer:
mannwhitneyu(a, b, alternative='greater') -> Option A
Quick Check:
Test if a > b = A [OK]
Hint: Use 'alternative="greater"' when testing if first sample is larger [OK]
Common Mistakes:
Swapping sample order and alternative incorrectly
Using 'less' when testing for greater
Choosing 'two-sided' when direction matters
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.