Analisis daya: ukuran sampel dan efek

Perancangan Eksperimen dengan Python

James Chapman

Curriculum Manager, DataCamp

Pengantar singkat ukuran efek

 

  • Ukuran efek: Mengukur perbedaan antara dua grup

 

  • Cohen's d: Ukuran baku untuk ukuran efek

Dua tanaman diberi pupuk berbeda tumbuh dengan tinggi berbeda. Ada panah yang menunjukkan selisih tinggi untuk merepresentasikan ukuran efek.

Perancangan Eksperimen dengan Python

Dataset: keterlibatan gim video

  • 60 partisipan
    • 30 diacak ke Action
    • 30 diacak ke 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
Perancangan Eksperimen dengan Python

Gambaran perhitungan daya

  • Daya (power): peluang menolak hipotesis nol yang salah: ($1 - \beta$)

    • Berkisar antara 0 dan 1 (keyakinan dalam mendeteksi efek nyata)
  • Asumsikan effect_size=1 dari data historis

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
Perancangan Eksperimen dengan Python

Formulasi 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

Simpangan baku gabungan: $\sigma_{p} = \sqrt{\frac{(n_1 - 1) \times \text{var}_1 + (n_2 - 1) \times \text{var}_2}{n_1 + n_2 - 2}}$

Perancangan Eksperimen dengan Python

Cohen's d untuk data gim video

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
Perancangan Eksperimen dengan Python

Memahami ukuran sampel dan daya

  • Trade-off antara daya dan ukuran sampel
  • Sampel lebih besar meningkatkan daya studi

Ukuran sampel vs. Daya Statistik.png

1 https://grabngoinfo.com/power-analysis-for-sample-size-using-python/
Perancangan Eksperimen dengan Python

Perhitungan ukuran sampel dalam konteks

  • Variabel respons: 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
Perancangan Eksperimen dengan Python

Memvisualisasikan kebutuhan ukuran sampel

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()
Perancangan Eksperimen dengan Python

Memvisualisasikan kebutuhan ukuran sampel

Ukuran Efek vs. Ukuran Sampel yang Diperlukan.png

Perancangan Eksperimen dengan Python

Ayo berlatih!

Perancangan Eksperimen dengan Python

Preparing Video For Download...