Phân tích lực kiểm định: cỡ mẫu và độ lớn hiệu ứng

Thiết kế thí nghiệm với Python

James Chapman

Curriculum Manager, DataCamp

Nhập môn về độ lớn hiệu ứng

 

  • Độ lớn hiệu ứng: Định lượng mức chênh lệch giữa hai nhóm

 

  • Cohen's d: Thước đo chuẩn cho độ lớn hiệu ứng

Hai cây được bón hai loại phân khác nhau có chiều cao khác nhau. Mũi tên chỉ độ chênh lệch chiều cao để minh họa độ lớn hiệu ứng.

Thiết kế thí nghiệm với Python

Bộ dữ liệu: mức độ hứng thú với trò chơi điện tử

  • 60 người tham gia
    • 30 người được gán ngẫu nhiên vào Action
    • 30 người được gán ngẫu nhiên vào Puzzle
video_game_data.head()
   Game_Genre  Engagement_Time
0      Action              5.1
1      Puzzle              4.4
2      Action              7.2
3      Action              5.3
4      Puzzle              2.7
Thiết kế thí nghiệm với Python

Tổng quan cách tính lực kiểm định

  • Lực kiểm định (Power): xác suất bác bỏ đúng giả thuyết rỗng sai: ($1 - \beta$)

    • Dao động giữa 01 (mức chắc chắn trong khả năng phát hiện hiệu ứng thật)
  • Giả sử effect_size=1 từ dữ liệu lịch sử

from statsmodels.stats.power import TTestIndPower
power_analysis = TTestIndPower()

power = power_analysis.solve_power(effect_size=1, nobs1=30, alpha=0.05) print(power)
0.9677082519951168
Thiết kế thí nghiệm với Python

Công thức Cohen's d

def cohens_d(group1, group2):

diff = group1.mean() - group2.mean() n1, n2 = len(group1), len(group2) var1, var2 = group1.var(), group2.var()
pooled_std = np.sqrt(((n1 - 1) * var1 + (n2 - 1) * var2) / (n1 + n2 - 2))
d = diff / pooled_std return d

Độ lệch chuẩn gộp: $\sigma_{p} = \sqrt{\frac{(n_1 - 1) \times \text{var}_1 + (n_2 - 1) \times \text{var}_2}{n_1 + n_2 - 2}}$

Thiết kế thí nghiệm với Python

Cohen's d cho dữ liệu trò chơi điện tử

action_times = video_game_data[video_game_data['Game_Genre'] == 'Action']['Engagement_Time']
puzzle_times = video_game_data[video_game_data['Game_Genre'] == 'Puzzle']['Engagement_Time']

d = cohens_d(action_times, puzzle_times) print(f"Cohen's d: {d}")
Cohen's d: 1.161524633221452
Thiết kế thí nghiệm với Python

Hiểu về cỡ mẫu và lực kiểm định

  • Đánh đổi giữa lực kiểm định và cỡ mẫu
  • Mẫu lớn hơn làm tăng lực kiểm định

Cỡ mẫu so với Lực kiểm định.png

1 https://grabngoinfo.com/power-analysis-for-sample-size-using-python/
Thiết kế thí nghiệm với Python

Tính cỡ mẫu trong ngữ cảnh

  • Biến phản hồi: engagement_time
from statsmodels.stats.power import TTestIndPower
power_analysis = TTestIndPower()
required_n = power_analysis.solve_power(effect_size=d, alpha=0.05, 
                                        power=0.99, ratio=1)
print(required_n)
28.237827708942007
Thiết kế thí nghiệm với Python

Trực quan hóa yêu cầu cỡ mẫu

import numpy as np
import matplotlib.pyplot as plt
effect_sizes = np.linspace(0.1, 0.8, 8)
sample_sizes = [power_analysis.solve_power(effect_size=es, alpha=0.05, power=0.99, 
                                           ratio=1) for es in effect_sizes]

plt.figure(figsize=(10, 6))
plt.plot(effect_sizes, sample_sizes, 'o-')
plt.title('Effect Size vs. Required Sample Size')
plt.xlabel('Effect Size (Cohen\'s d)')
plt.ylabel('Required Sample Size')
plt.grid(True)
plt.show()
Thiết kế thí nghiệm với Python

Trực quan hóa yêu cầu cỡ mẫu

Độ lớn hiệu ứng so với Cỡ mẫu yêu cầu.png

Thiết kế thí nghiệm với Python

Cùng luyện tập nào!

Thiết kế thí nghiệm với Python

Preparing Video For Download...