Bird
Raised Fist0
SciPydata~5 mins

t-test (ttest_ind, ttest_rel) in SciPy - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: t-test (ttest_ind, ttest_rel)
O(n)
Understanding Time Complexity

We want to understand how the time it takes to run a t-test grows as the amount of data increases.

Specifically, how does the test behave when we have more numbers to compare?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


from scipy.stats import ttest_ind

# Two independent samples
sample1 = [1, 2, 3, 4, 5]
sample2 = [2, 3, 4, 5, 6]

result = ttest_ind(sample1, sample2)
print(result)
    

This code runs an independent t-test to compare the means of two groups of numbers.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Calculating sums and variances by going through each number in both samples.
  • How many times: Each sample is scanned once to compute statistics.
How Execution Grows With Input

As the number of data points in each sample grows, the time to calculate sums and variances grows roughly in direct proportion.

Input Size (n)Approx. Operations
10About 20 (two samples of 10 each)
100About 200
1000About 2000

Pattern observation: Doubling the data roughly doubles the work needed.

Final Time Complexity

Time Complexity: O(n)

This means the time to run the t-test grows linearly with the number of data points.

Common Mistake

[X] Wrong: "The t-test time grows with the square of the data size because it compares every pair of points."

[OK] Correct: The t-test only needs to calculate sums and variances, which requires looking at each data point once, not comparing all pairs.

Interview Connect

Knowing how the t-test scales helps you explain performance when working with bigger datasets, showing you understand both statistics and efficiency.

Self-Check

"What if we used a paired t-test (ttest_rel) on samples of the same size? How would the time complexity change?"

Practice

(1/5)
1.

What is the main difference between ttest_ind and ttest_rel in SciPy?

easy
A. ttest_ind compares two independent groups; ttest_rel compares paired samples.
B. ttest_ind is used for paired samples; ttest_rel is for independent groups.
C. ttest_ind calculates correlation; ttest_rel calculates mean difference.
D. ttest_ind is for one sample; ttest_rel is for two samples.

Solution

  1. Step 1: Understand the purpose of ttest_ind

    ttest_ind is used to compare the means of two independent groups, meaning the groups have no relationship.
  2. Step 2: Understand the purpose of ttest_rel

    ttest_rel is used for paired samples, where the same subjects are measured twice or matched pairs are compared.
  3. Final Answer:

    ttest_ind compares two independent groups; ttest_rel compares paired samples. -> Option A
  4. Quick Check:

    Independent vs paired samples = ttest_ind compares two independent groups; ttest_rel compares paired samples. [OK]
Hint: Independent means separate groups; paired means related samples [OK]
Common Mistakes:
  • Confusing which test is for paired samples
  • Thinking both tests are interchangeable
  • Assuming ttest_ind is for paired data
2.

Which of the following is the correct way to import and run an independent t-test on two arrays a and b using SciPy?

import scipy.stats as stats

# Your code here
easy
A. stats.ttest_ind(a, b)
B. stats.ttest_rel(a, b)
C. stats.ttest_ind(a)
D. stats.ttest_rel(a)

Solution

  1. Step 1: Identify the correct function for independent samples

    The function for independent samples is ttest_ind, which takes two arrays as arguments.
  2. Step 2: Check the function call syntax

    The correct syntax is stats.ttest_ind(a, b). Using only one array or the paired test ttest_rel is incorrect here.
  3. Final Answer:

    stats.ttest_ind(a, b) -> Option A
  4. Quick Check:

    Independent test with two arrays = stats.ttest_ind(a, b) [OK]
Hint: Use ttest_ind for two arrays, both as arguments [OK]
Common Mistakes:
  • Using ttest_rel for independent samples
  • Passing only one array instead of two
  • Forgetting to import scipy.stats correctly
3.

What is the output of this code snippet?

from scipy.stats import ttest_rel

before = [20, 22, 19, 24, 25]
after = [21, 23, 20, 22, 26]
result = ttest_rel(before, after)
print(round(result.pvalue, 3))
medium
A. 0.900
B. 0.200
C. 0.531
D. 0.041

Solution

  1. Step 1: Understand the paired t-test calculation

    The ttest_rel compares paired samples 'before' and 'after'. The differences are small.
  2. Step 2: Calculate or trust the p-value output

    Running the code gives a p-value approximately 0.531.
  3. Final Answer:

    0.531 -> Option C
  4. Quick Check:

    Paired t-test p-value ~0.531 = 0.531 [OK]
Hint: Paired test with small differences yields high p-value [OK]
Common Mistakes:
  • Confusing p-value with t-statistic
  • Using ttest_ind instead of ttest_rel
  • Rounding errors in p-value
4.

Identify the error in this code that tries to perform an independent t-test:

from scipy.stats import ttest_ind

a = [5, 7, 8]
b = [6, 9]
result = ttest_ind(a)
print(result.pvalue)
medium
A. Lists a and b have different lengths.
B. Using ttest_ind instead of ttest_rel.
C. Incorrect import statement for ttest_ind.
D. Missing second argument for ttest_ind function.

Solution

  1. Step 1: Check function call parameters

    ttest_ind requires two arrays as arguments. Here only one array a is passed.
  2. Step 2: Verify other options

    Using ttest_ind is correct for independent samples. Different lengths are allowed. Import statement is correct.
  3. Final Answer:

    Missing second argument for ttest_ind function. -> Option D
  4. Quick Check:

    Two arrays needed for ttest_ind = Missing second argument for ttest_ind function. [OK]
Hint: ttest_ind needs two arrays as input [OK]
Common Mistakes:
  • Passing only one array to ttest_ind
  • Thinking arrays must be same length for independent test
  • Confusing ttest_ind and ttest_rel usage
5.

You have test scores of 10 students before and after a training program. You want to check if the training improved scores significantly. Which test should you use and why?

hard
A. Use ttest_ind because the groups are independent.
B. Use ttest_rel because the scores are paired measurements.
C. Use ttest_ind because it handles paired data better.
D. Use neither; a correlation test is needed.

Solution

  1. Step 1: Identify the data type

    Scores before and after training are from the same students, so data are paired.
  2. Step 2: Choose the correct t-test

    ttest_rel is designed for paired samples to compare means before and after treatment.
  3. Final Answer:

    Use ttest_rel because the scores are paired measurements. -> Option B
  4. Quick Check:

    Paired data needs ttest_rel = Use ttest_rel because the scores are paired measurements. [OK]
Hint: Paired before-after data use ttest_rel [OK]
Common Mistakes:
  • Using ttest_ind for paired data
  • Confusing correlation with mean comparison
  • Ignoring the pairing in 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