Bird
Raised Fist0
Data Analysis Pythondata~10 mins

t-test with scipy.stats in Data Analysis Python - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - t-test with scipy.stats
Start: Two data samples
↓
Choose t-test type
↓
Calculate t-statistic and p-value
↓
Compare p-value to threshold
↓
Reject null
↓
End
We start with two data samples, choose the t-test type, calculate the t-statistic and p-value, then decide if the difference is significant by comparing p-value to a threshold.
Execution Sample
Data Analysis Python
from scipy import stats
sample1 = [5, 6, 7, 8, 9]
sample2 = [5, 5, 5, 5, 6]
t_stat, p_val = stats.ttest_ind(sample1, sample2)
print(t_stat, p_val)
This code runs an independent t-test on two small samples and prints the t-statistic and p-value.
Execution Table
StepActionInputOutputExplanation
1Import scipy.statsNonescipy.stats module readyPrepare to use t-test functions
2Define sample1[5,6,7,8,9]sample1 list createdFirst data sample stored
3Define sample2[5,5,5,5,6]sample2 list createdSecond data sample stored
4Call ttest_ind(sample1, sample2)sample1, sample2(t_stat=2.449, p_val=0.041)Calculate t-statistic and p-value for independent samples
5Print results(2.449, 0.041)2.449 0.041Show t-statistic and p-value
6Compare p_val < 0.050.041 < 0.05Truep-value is less than 0.05, reject null hypothesis
7EndDecision madeReject null hypothesisSamples differ significantly
💡 Execution stops after printing results and deciding significance based on p-value.
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4Final
sample1None[5,6,7,8,9][5,6,7,8,9][5,6,7,8,9][5,6,7,8,9]
sample2NoneNone[5,5,5,5,6][5,5,5,5,6][5,5,5,5,6]
t_statNoneNoneNone2.4492.449
p_valNoneNoneNone0.0410.041
Key Moments - 3 Insights
Why do we compare the p-value to 0.05?
The p-value tells us how likely the observed difference happened by chance. If it's less than 0.05 (5%), we say the difference is statistically significant and reject the null hypothesis. See execution_table step 6.
What does the t-statistic number mean?
The t-statistic measures how big the difference between samples is relative to their variation. A larger absolute t-statistic means a bigger difference. The exact number helps calculate the p-value. See execution_table step 4.
Can we use ttest_ind for samples that are related?
No, ttest_ind assumes samples are independent. For related samples, use ttest_rel instead. This example uses independent samples as shown in the code.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 4, what are the values of t_stat and p_val?
At_stat=5, p_val=6
Bt_stat=0.041, p_val=2.449
Ct_stat=2.449, p_val=0.041
Dt_stat=1, p_val=0.5
💡 Hint
Check the Output column in execution_table row for step 4.
At which step does the code decide to reject the null hypothesis?
AStep 6
BStep 3
CStep 2
DStep 5
💡 Hint
Look for the step where p_val is compared to 0.05 in execution_table.
If the p-value was 0.1 instead of 0.038, what would change in the execution_table?
AStep 2 sample1 would change
BStep 6 would say 'False' and we would fail to reject null
CStep 4 t_stat would change
DNo change at all
💡 Hint
Look at the comparison and decision in step 6 of execution_table.
Concept Snapshot
t-test with scipy.stats:
- Use stats.ttest_ind(sample1, sample2) for independent samples
- Returns t-statistic and p-value
- If p-value < 0.05, reject null hypothesis (samples differ)
- Use ttest_rel for related samples
- Helps test if two groups differ significantly
Full Transcript
This visual execution shows how to perform a t-test using scipy.stats in Python. We start by importing the module, then define two data samples. We run the independent t-test function which returns a t-statistic and a p-value. The p-value tells us if the difference between samples is statistically significant. If the p-value is less than 0.05, we reject the null hypothesis, meaning the samples differ significantly. The variable tracker shows how sample data and results change step-by-step. Key moments clarify why we compare p-value to 0.05 and what the t-statistic means. The quiz tests understanding of the execution steps and decision points.

Practice

(1/5)
1.

What does a t-test help you find out in data analysis?

easy
A. If two groups have different average values
B. The total number of data points in a dataset
C. The exact values of all data points
D. How to sort data in ascending order

Solution

  1. Step 1: Understand the purpose of a t-test

    A t-test compares the means (averages) of two groups to see if they are different.
  2. Step 2: Identify what the t-test does not do

    It does not count data points, show exact values, or sort data.
  3. Final Answer:

    If two groups have different average values -> Option A
  4. Quick Check:

    T-test checks mean difference = A [OK]
Hint: T-test compares averages between groups [OK]
Common Mistakes:
  • Thinking t-test counts data points
  • Confusing t-test with sorting methods
  • Assuming t-test shows exact data values
2.

Which of the following is the correct way to import the t-test function for independent samples from scipy.stats?

?
easy
A. from scipy.stats import ttest_ind
B. import scipy.stats.ttest_ind
C. from scipy import ttest_ind
D. import ttest_ind from scipy.stats

Solution

  1. Step 1: Recall Python import syntax

    To import a specific function, use 'from module import function'.
  2. Step 2: Match the correct import statement

    'from scipy.stats import ttest_ind' correctly imports the independent t-test function.
  3. Final Answer:

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

    Correct import syntax = A [OK]
Hint: Use 'from module import function' to import specific functions [OK]
Common Mistakes:
  • Using 'import scipy.stats.ttest_ind' which is invalid
  • Trying 'from scipy import ttest_ind' missing 'stats'
  • Writing 'import ttest_ind from scipy.stats' which is wrong syntax
3.

What will be the output of this code snippet?

import numpy as np
from scipy.stats import ttest_1samp

data = np.array([5, 7, 8, 6, 9])
test_stat, p_value = ttest_1samp(data, popmean=6)
print(round(p_value, 3))
medium
A. 0.045
B. 0.100
C. 0.500
D. 0.317

Solution

  1. Step 1: Understand the t-test 1 sample function

    ttest_1samp tests if the sample mean differs from the population mean (6 here).
  2. Step 2: Calculate the p-value for the data

    Using the data, the p-value is approximately 0.317, meaning no strong evidence against mean=6.
  3. Final Answer:

    0.317 -> Option D
  4. Quick Check:

    p-value from ttest_1samp = 0.317 [OK]
Hint: Round p-value to 3 decimals to compare easily [OK]
Common Mistakes:
  • Confusing test statistic with p-value
  • Using wrong population mean in function
  • Not rounding p-value before comparing
4.

Identify the error in this code that tries to perform a paired t-test:

from scipy.stats import ttest_rel

data1 = [10, 12, 14, 16]
data2 = [11, 13, 15]

result = ttest_rel(data1, data2)
print(result.pvalue)
medium
A. Missing import for numpy
B. ttest_rel is not the correct function for paired tests
C. The two data lists have different lengths
D. print statement syntax is incorrect

Solution

  1. Step 1: Check input data lengths for paired t-test

    Paired t-test requires both data arrays to have the same length because it compares pairs.
  2. Step 2: Identify the mismatch in data lengths

    data1 has 4 elements, data2 has 3 elements, causing an error.
  3. Final Answer:

    The two data lists have different lengths -> Option C
  4. Quick Check:

    Paired t-test needs equal length arrays = C [OK]
Hint: Paired t-test needs equal length data arrays [OK]
Common Mistakes:
  • Using different length arrays for paired test
  • Confusing ttest_rel with independent t-test
  • Assuming print syntax error without checking data
5.

You have two groups of exam scores:

group1 = [78, 85, 90, 88, 76]
group2 = [82, 79, 88, 91, 77]

You want to check if their average scores differ significantly. Which code correctly performs this test and interprets the result?

hard
A.
from scipy.stats import ttest_ind
stat, p = ttest_ind(group1, group2)
if p > 0.05:
    print('Different averages')
else:
    print('No difference')
B.
from scipy.stats import ttest_ind
stat, p = ttest_ind(group1, group2)
if p < 0.05:
    print('Different averages')
else:
    print('No difference')
C.
from scipy.stats import ttest_rel
stat, p = ttest_rel(group1, group2)
if p < 0.01:
    print('Different averages')
else:
    print('No difference')
D.
from scipy.stats import ttest_1samp
stat, p = ttest_1samp(group1, group2)
if p < 0.05:
    print('Different averages')
else:
    print('No difference')

Solution

  1. Step 1: Choose the correct t-test for two independent groups

    ttest_ind is used for comparing two independent samples like group1 and group2.
  2. Step 2: Interpret the p-value correctly

    If p-value is less than 0.05, we say averages differ; otherwise, no difference.
  3. Final Answer:

    Use ttest_ind and check if p < 0.05 to decide difference -> Option B
  4. Quick Check:

    Independent t-test + p < 0.05 means difference [OK]
Hint: Use ttest_ind for independent groups and p < 0.05 for difference [OK]
Common Mistakes:
  • Using ttest_1samp for two groups
  • Using ttest_rel for independent groups
  • Reversing p-value condition for significance
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