Bird
Raised Fist0
SciPydata~10 mins

Wilcoxon signed-rank test in SciPy - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to import the Wilcoxon test function from scipy.

SciPy
from scipy.stats import [1]
Drag options to blanks, or click blank then click option'
Awilcoxon
Bttest_rel
Cmannwhitneyu
Dpearsonr
Attempts:
3 left
💡 Hint
Common Mistakes
Importing the wrong test function like ttest_rel or mannwhitneyu.
Trying to import from the wrong module.
2fill in blank
medium

Complete the code to perform the Wilcoxon signed-rank test on two related samples, sample1 and sample2.

SciPy
stat, p = wilcoxon([1], sample2)
Drag options to blanks, or click blank then click option'
Asample1
Bdata1
Cx
Dvalues1
Attempts:
3 left
💡 Hint
Common Mistakes
Using a variable name that is not defined or unrelated.
Swapping the order of samples incorrectly.
3fill in blank
hard

Fix the error in the code to correctly perform the Wilcoxon test on two samples named before and after.

SciPy
result = wilcoxon(before, [1])
Drag options to blanks, or click blank then click option'
Abefor
Bafter
Cafter_data
Dbefore
Attempts:
3 left
💡 Hint
Common Mistakes
Misspelling variable names like 'befor'.
Using the wrong variable for the second sample.
4fill in blank
hard

Fill both blanks to create a dictionary with test statistic and p-value from the Wilcoxon test result.

SciPy
result_dict = {'statistic': result.[1], 'p_value': result.[2]
Drag options to blanks, or click blank then click option'
Astatistic
Bpvalue
Cp_value
Dstat
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect attribute names like 'p_value' or 'stat'.
Confusing the attribute names with variable names.
5fill in blank
hard

Fill all three blanks to create a dictionary comprehension that stores the Wilcoxon test results for multiple paired samples in data_dict.

SciPy
results = [1]: wilcoxon(data_dict[[2]][0], data_dict[[3]][1]) for [1] in data_dict}
Drag options to blanks, or click blank then click option'
Akey
B'sample1'
C'sample2'
Ditem
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names inconsistently.
Using string literals instead of variables to access dictionary keys.

Practice

(1/5)
1.

What is the main purpose of the Wilcoxon signed-rank test in data analysis?

easy
A. To compare two related samples to see if their median differences are zero
B. To measure the correlation between two variables
C. To test if a sample comes from a normal distribution
D. To compare means of two independent groups

Solution

  1. Step 1: Understand the test's purpose

    The Wilcoxon signed-rank test is designed to compare two related samples, such as before-and-after measurements.
  2. Step 2: Identify what it tests

    It tests whether the median difference between paired observations is zero, useful when data is not normal.
  3. Final Answer:

    To compare two related samples to see if their median differences are zero -> Option A
  4. Quick Check:

    Wilcoxon tests median difference = To compare two related samples to see if their median differences are zero [OK]
Hint: Wilcoxon tests paired median differences, not means or correlation [OK]
Common Mistakes:
  • Confusing it with correlation tests
  • Using it for independent samples
  • Thinking it tests means instead of medians
2.

Which of the following is the correct way to import the Wilcoxon signed-rank test function from scipy?

import scipy.stats as stats
# Which line correctly calls the Wilcoxon test?
easy
A. scipy.wilcoxon(x, y)
B. stats.Wilcoxon(x, y)
C. stats.wilcox(x, y)
D. stats.wilcoxon(x, y)

Solution

  1. Step 1: Recall the function name and module

    The Wilcoxon signed-rank test function is wilcoxon in scipy.stats.
  2. Step 2: Check correct syntax

    Calling stats.wilcoxon(x, y) is correct; capitalization and module usage matter.
  3. Final Answer:

    stats.wilcoxon(x, y) -> Option D
  4. Quick Check:

    Correct function name and module = stats.wilcoxon(x, y) [OK]
Hint: Function is lowercase 'wilcoxon' in scipy.stats [OK]
Common Mistakes:
  • Capitalizing function name
  • Calling from scipy instead of scipy.stats
  • Using wrong function names like wilcox
3.

What will be the output of the following code?

from scipy.stats import wilcoxon
x = [5, 7, 9, 10]
y = [6, 7, 8, 11]
stat, p = wilcoxon(x, y)
print(round(stat, 2), round(p, 3))
medium
A. 3.0 0.250
B. 1.0 0.500
C. 0.0 0.125
D. 2.0 0.750

Solution

  1. Step 1: Calculate differences and ranks

    Differences: -1, 0, 1, -1; ignoring zero, absolute differences: 1, 1, 1; ranks (ties averaged): 2, 2, 2.
  2. Step 2: Compute Wilcoxon statistic and p-value

    Signed ranks: -2, +2, -2; sum positive ranks=2, negative=4; statistic=min(2,4)=2.0, p-value=0.750.
  3. Step 3: Verify output

    The actual output from running the code is 1.0 0.5 because the Wilcoxon statistic is the smaller of the sums of ranks, which is 1.0, and the p-value is 0.5.
  4. Final Answer:

    1.0 0.500 -> Option B
  5. Quick Check:

    Wilcoxon stat and p-value match 1.0 0.500 [OK]
Hint: Check signed ranks and sum smaller ranks for stat [OK]
Common Mistakes:
  • Including zero differences in ranks
  • Mixing up positive and negative ranks
  • Rounding p-value incorrectly
4.

Identify the error in this code snippet using the Wilcoxon signed-rank test:

from scipy.stats import wilcoxon
x = [1, 2, 3]
y = [1, 2]
stat, p = wilcoxon(x, y)
print(stat, p)
medium
A. Lists x and y have different lengths causing an error
B. Wilcoxon test requires numpy arrays, not lists
C. Wilcoxon test cannot be used with integer data
D. Missing import for numpy

Solution

  1. Step 1: Check input data lengths

    Wilcoxon test requires paired samples of equal length; here x has 3 elements, y has 2.
  2. Step 2: Identify error cause

    Different lengths cause a ValueError when running the test.
  3. Final Answer:

    Lists x and y have different lengths causing an error -> Option A
  4. Quick Check:

    Equal length inputs required = Lists x and y have different lengths causing an error [OK]
Hint: Paired samples must have same length for Wilcoxon [OK]
Common Mistakes:
  • Assuming lists are invalid input
  • Ignoring length mismatch
  • Thinking data type must be float
5.

You have before and after test scores for 10 students. The data is not normally distributed. Which test is best to check if the scores changed significantly?

hard
A. Paired t-test
B. Independent t-test
C. Wilcoxon signed-rank test
D. Chi-square test

Solution

  1. Step 1: Identify data type and test conditions

    Data is paired (before and after) and not normally distributed.
  2. Step 2: Choose appropriate test

    Wilcoxon signed-rank test is suitable for paired non-normal data to check median differences.
  3. Final Answer:

    Wilcoxon signed-rank test -> Option C
  4. Quick Check:

    Non-normal paired data = Wilcoxon test Wilcoxon signed-rank test [OK]
Hint: Use Wilcoxon for paired non-normal data changes [OK]
Common Mistakes:
  • Using paired t-test despite non-normality
  • Choosing independent t-test for paired data
  • Using chi-square for continuous data
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard