Bird
Raised Fist0
SciPydata~10 mins

t-test (ttest_ind, ttest_rel) in SciPy - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - t-test (ttest_ind, ttest_rel)
Start: Two Data Samples
↓
Choose Test Type
↓
Independent
↓
Calculate t-statistic and p-value
↓
Compare p-value to alpha
↓
Reject H0
↓
Conclude groups differ
Start with two data samples, choose independent or related t-test, calculate statistics, then decide if groups differ based on p-value.
Execution Sample
SciPy
from scipy.stats import ttest_ind, ttest_rel

# Sample data
sample1 = [5, 7, 8, 6, 9]
sample2 = [6, 9, 7, 10, 8]

# Independent t-test
result = ttest_ind(sample1, sample2)
print(result)
This code runs an independent t-test on two samples and prints the t-statistic and p-value.
Execution Table
StepActionCalculation/ConditionResult
1Input samplessample1 = [5,7,8,6,9], sample2 = [6,9,7,10,8]Samples ready
2Choose testIndependent samples testttest_ind selected
3Calculate meansmean1=7.0, mean2=8.0Means computed
4Calculate variancesvar1=2.5, var2=2.5Variances computed
5Calculate t-statistict = (7.0-8.0)/sqrt(2.5/5 + 2.5/5) = -1.0t = -1.0
6Calculate degrees of freedomdf = 8df = 8
7Calculate p-valuep ≈ 0.34p ≈ 0.34
8Compare p-value to alpha=0.050.34 > 0.05Fail to reject H0
9ConclusionNo evidence groups differEnd
💡 p-value is greater than 0.05, so we fail to reject the null hypothesis.
Variable Tracker
VariableStartAfter Step 3After Step 4After Step 5After Step 7Final
sample1[5,7,8,6,9][5,7,8,6,9][5,7,8,6,9][5,7,8,6,9][5,7,8,6,9][5,7,8,6,9]
sample2[6,9,7,10,8][6,9,7,10,8][6,9,7,10,8][6,9,7,10,8][6,9,7,10,8][6,9,7,10,8]
mean1N/A7.07.07.07.07.0
mean2N/A8.08.08.08.08.0
var1N/AN/A2.52.52.52.5
var2N/AN/A2.52.52.52.5
t-statisticN/AN/AN/A-1.0-1.0-1.0
p-valueN/AN/AN/AN/A0.340.34
Key Moments - 3 Insights
Why do we choose between independent and related t-tests?
Because independent t-tests compare two separate groups, while related t-tests compare paired or matched samples. This choice affects how the test calculates differences, as shown in Step 2 of the execution_table.
What does the p-value tell us in the t-test?
The p-value shows the chance of seeing the data if the groups are actually the same. If p is less than 0.05 (Step 8), we say groups differ; otherwise, we say no evidence of difference.
Why do we calculate degrees of freedom (df)?
Degrees of freedom help determine the shape of the t-distribution used to find the p-value. It depends on sample sizes and is calculated in Step 6.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at Step 5, what is the approximate t-statistic value?
A-1.0
B0.707
C-1.5
D1.5
💡 Hint
Check the 'Result' column in Step 5 of the execution_table.
At which step does the test decide to fail to reject the null hypothesis?
AStep 7
BStep 8
CStep 6
DStep 9
💡 Hint
Look for the comparison of p-value to alpha in the execution_table.
If sample sizes increased, how would the degrees of freedom change in the execution_table?
ADegrees of freedom would decrease
BDegrees of freedom would stay the same
CDegrees of freedom would increase
DDegrees of freedom would become zero
💡 Hint
Degrees of freedom depend on sample sizes, see Step 6 in execution_table.
Concept Snapshot
t-test compares means of two samples.
Use ttest_ind for independent groups.
Use ttest_rel for paired samples.
Calculate t-statistic and p-value.
If p < 0.05, groups differ significantly.
Otherwise, no evidence of difference.
Full Transcript
A t-test compares two groups to see if their averages differ. We start with two data samples. We pick the test type: independent if groups are separate, related if paired. Then we calculate the t-statistic, which measures difference size relative to variation. We find the p-value, which tells us how likely the difference is by chance. If p-value is less than 0.05, we say the groups differ. Otherwise, we say there is no evidence they differ. This process helps us make decisions about data differences.

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