Bird
Raised Fist0
SciPydata~10 mins

Chi-squared 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 chi2_contingency function from scipy.stats.

SciPy
from scipy.stats import [1]
Drag options to blanks, or click blank then click option'
Achi2_contingency
Bchi_square
Ccontingency_test
Dchi2_test
Attempts:
3 left
💡 Hint
Common Mistakes
Using a non-existent function like chi_square or chi2_test.
Trying to import from the wrong module.
2fill in blank
medium

Complete the code to create a 2x2 contingency table using a list of lists.

SciPy
table = [[20, 15], [[1], 30]]
Drag options to blanks, or click blank then click option'
A10
B35
C40
D25
Attempts:
3 left
💡 Hint
Common Mistakes
Using a number that makes the table invalid or unbalanced.
Using a non-integer value.
3fill in blank
hard

Fix the error in the code to perform the chi-squared test on the table.

SciPy
chi2, p, dof, expected = [1](table)
Drag options to blanks, or click blank then click option'
Achi_square
Bchi2_contingency
Ccontingency_chi2
Dchi_test
Attempts:
3 left
💡 Hint
Common Mistakes
Using a function name that does not exist in scipy.stats.
Misspelling the function name.
4fill in blank
hard

Fill both blanks to create a dictionary comprehension that maps each category to its expected count if the expected count is greater than 20.

SciPy
result = {category: expected.flatten()[[1]] for [2], category in enumerate(['A', 'B', 'C', 'D']) if expected.flatten()[[1]] > 20}
Drag options to blanks, or click blank then click option'
Ai
Bcategory
Cj
Dindex
Attempts:
3 left
💡 Hint
Common Mistakes
Using the category name as an index.
Using different variables for the two blanks.
5fill in blank
hard

Fill all three blanks to create a dictionary comprehension that maps each category name in uppercase to its expected count if the count is less than 25.

SciPy
filtered = {category[1](): expected.flatten()[[2]] for [3], category in enumerate(['A', 'B', 'C', 'D']) if expected.flatten()[[2]] < 25}
Drag options to blanks, or click blank then click option'
A.upper
Bi
Cindex
D.lower
Attempts:
3 left
💡 Hint
Common Mistakes
Using .lower() instead of .upper().
Using different variables for the index in the comprehension.

Practice

(1/5)
1.

What does the Chi-squared test mainly check in data?

easy
A. If two categorical variables are related
B. If the mean of a dataset is zero
C. If data follows a normal distribution
D. If two numerical variables have a linear relationship

Solution

  1. Step 1: Understand the purpose of the Chi-squared test

    The Chi-squared test is used to check if there is a relationship between two categorical variables by comparing observed and expected counts.
  2. Step 2: Compare options with the test purpose

    Only If two categorical variables are related correctly describes this purpose. Options B, C, and D describe other statistical tests or concepts.
  3. Final Answer:

    If two categorical variables are related -> Option A
  4. Quick Check:

    Chi-squared test = relationship between categories [OK]
Hint: Chi-squared tests category links, not means or correlations [OK]
Common Mistakes:
  • Confusing Chi-squared with tests for means
  • Thinking it tests numerical correlations
  • Mixing it up with normality tests
2.

Which of the following is the correct way to import the Chi-squared test function from scipy.stats?

easy
A. from scipy.stats import chi2_contingency
B. import scipy.stats.chi2_contingency
C. from scipy import chi2_contingency
D. import chi2_contingency from scipy.stats

Solution

  1. Step 1: Recall correct Python import syntax

    To import a specific function from a module, use from module import function. Here, the function is chi2_contingency from scipy.stats.
  2. Step 2: Check each option's syntax

    from scipy.stats import chi2_contingency uses the correct syntax. import scipy.stats.chi2_contingency tries to import a submodule as a whole which is invalid. from scipy import chi2_contingency imports from the wrong module. import chi2_contingency from scipy.stats uses incorrect import order.
  3. Final Answer:

    from scipy.stats import chi2_contingency -> Option A
  4. Quick Check:

    Correct import = from scipy.stats import chi2_contingency [OK]
Hint: Use 'from module import function' for specific imports [OK]
Common Mistakes:
  • Using dot notation in import incorrectly
  • Importing from wrong module
  • Wrong import order syntax
3.

What is the output of this code snippet?

import numpy as np
from scipy.stats import chi2_contingency

# Observed data in a 2x2 table
observed = np.array([[10, 20], [20, 40]])
chi2, p, dof, expected = chi2_contingency(observed)
print("{:.3f}".format(p))
medium
A. 1.000
B. 0.045
C. 0.158
D. 0.500

Solution

  1. Step 1: Run the chi2_contingency on the observed table

    The observed counts are [[10, 20], [20, 40]]. The function calculates the Chi-squared statistic and p-value testing independence.
  2. Step 2: Interpret the p-value output

    Running the code gives a p-value of approximately 0.158, meaning there is no strong evidence against independence.
  3. Final Answer:

    0.158 -> Option C
  4. Quick Check:

    p-value from chi2_contingency ≈ 0.158 [OK]
Hint: Run chi2_contingency and check p-value for independence [OK]
Common Mistakes:
  • Confusing chi2 statistic with p-value
  • Rounding incorrectly
  • Misreading output order
4.

Identify the error in this code that tries to perform a Chi-squared test:

import numpy as np
from scipy.stats import chi2_contingency

observed = [[15, 25], [35, 25]]
chi2, p, dof, expected = chi2_contingency(observed)
print(p)
medium
A. Observed data must be a NumPy array, not a list
B. No error, code runs correctly
C. chi2_contingency requires 1D data, not 2D
D. Missing import for chi2_contingency

Solution

  1. Step 1: Check data type requirements for chi2_contingency

    The function accepts array-like input, including lists of lists, so the observed data as a list of lists is valid.
  2. Step 2: Verify imports and function usage

    The import is correct, and the function call matches the expected signature. The code will run and print the p-value.
  3. Final Answer:

    No error, code runs correctly -> Option B
  4. Quick Check:

    chi2_contingency accepts lists; code runs fine [OK]
Hint: chi2_contingency accepts lists or arrays for observed data [OK]
Common Mistakes:
  • Thinking lists are invalid input
  • Assuming 1D data only
  • Forgetting to import function
5.

You have this observed frequency table for two groups and two outcomes:

observed = [[30, 10], [20, 40]]

You want to test if the groups differ in outcome distribution. Which step is NOT part of the Chi-squared test process using scipy.stats.chi2_contingency?

hard
A. Calculate expected frequencies assuming independence
B. Compute the Chi-squared statistic comparing observed and expected
C. Check if the p-value is less than your significance level
D. Normalize the observed data to sum to 1 before testing

Solution

  1. Step 1: Understand the Chi-squared test steps

    The test calculates expected counts assuming independence, then computes the Chi-squared statistic and p-value, and finally compares p-value to significance level.
  2. Step 2: Identify the incorrect step

    Normalizing observed data to sum to 1 is not part of the Chi-squared test. The test uses raw counts, not proportions.
  3. Final Answer:

    Normalize the observed data to sum to 1 before testing -> Option D
  4. Quick Check:

    Chi-squared uses counts, not normalized data [OK]
Hint: Chi-squared test uses counts, not proportions [OK]
Common Mistakes:
  • Normalizing data before test
  • Confusing proportions with counts
  • Ignoring p-value significance check
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