Menyiapkan eksperimen

Perancangan Eksperimen dengan Python

James Chapman

Curriculum Manager, DataCamp

Definisi Experimental Design

 

  • Suatu proses
  • Cara yang obyektif dan terkendali
  • Menarik kesimpulan spesifik
    • Mengacu pada hipotesis

experimental-design.png

1 https://www.sciencedirect.com/topics/earth-and-planetary-sciences/experimental-design
Perancangan Eksperimen dengan Python

Menyusun pernyataan yang kuat

X mungkin berdampak pada Y. Ada kemungkinan kecil terjadi kesalahan

 

  • Bahasa presisi dan terkuantifikasi

Analisis p-value menunjukkan X berdampak pada Y dengan risiko 10% galat Tipe I

  • Galat Tipe I: menolak hipotesis nol secara keliru

 

  • Tujuan: experimental design dan analisis statistik
Perancangan Eksperimen dengan Python

Mengapa experimental design?

 

Berguna di banyak bidang:

  • Riset medis
  • Pemasaran
  • Analitik produk
  • Pertanian
  • Kebijakan pemerintah

why.png

Perancangan Eksperimen dengan Python

Beberapa istilah...

     

  • Subjek = apa yang kita uji (orang, karyawan, pengguna, dll.)

Seorang subjek: dalam hal ini, seorang manusia.

Perancangan Eksperimen dengan Python

Beberapa istilah...

     

  • Subjek = apa yang kita uji (orang, karyawan, pengguna, dll.)
  • Perlakuan (treatment) = perubahan yang diberikan ke satu kelompok

Sebuah perlakuan diterapkan pada sekelompok subjek.

Perancangan Eksperimen dengan Python

Beberapa istilah...

     

  • Subjek = apa yang kita uji (orang, karyawan, pengguna, dll.)
  • Perlakuan (treatment) = perubahan yang diberikan ke satu kelompok

Perlakuan diterapkan pada kelompok perlakuan.

Perancangan Eksperimen dengan Python

Beberapa istilah...

     

  • Subjek = apa yang kita uji (orang, karyawan, pengguna, dll.)
  • Perlakuan (treatment) = perubahan yang diberikan ke satu kelompok
  • Kontrol = kelompok tanpa perubahan

Subjek dibagi ke kelompok perlakuan dan kontrol.

Perancangan Eksperimen dengan Python

Menetapkan subjek ke kelompok

     

  • Bagaimana menetapkan subjek ke kelompok?
    • Opsi 1 - non-acak ('membagi' DataFrame)
    • Opsi 2 - penetapan acak

     

  • Contoh: 200 tinggi badan subjek di DataFrame heights
    id  height
0    0  177.98
1    1  174.17
2    2  178.89
Perancangan Eksperimen dengan Python

Penetapan non-acak

 

Penetapan dengan slicing DataFrame

group1_nonrandom = heights.iloc[0:100,:]
group2_nonrandom = heights.iloc[100:,:]

compare_df = pd.concat( [group1_nonrandom['height'].describe(), group2_nonrandom['height'].describe()], axis=1) compare_df.columns = ['group1', 'group2'] print(compare_df)
  • Sangat berbeda! (Rata-rata terpaut 9 cm)

 

 

       group1  group2
count  100.00  100.00
mean   170.32  179.19 <--
std      3.28    3.50
min    159.28  175.03
25%    168.06  176.57
50%    170.75  178.03
75%    173.09  180.79
max    174.92  191.32
Perancangan Eksperimen dengan Python

Penetapan acak

     

  • Gunakan .sample()
    • n atau frac (fraksi 0-1)
group1 = heights.sample(frac=0.5,
                        replace=False,
                        random_state=42)

group2 = heights.drop(group1.index)
print(compare_df)
  • Jauh lebih dekat! (<1 cm)

 

       group1  group2
count  100.00  100.00
mean   175.10  174.41 <--
std      5.39    5.78
min    163.07  159.28
25%    171.32  170.17
50%    175.22  174.86
75%    178.32  177.85
max    189.78  191.32
Perancangan Eksperimen dengan Python

Ringkasan penetapan

 

  • Subjek harus ditetapkan ke kelompok secara acak
    • Perubahan yang diamati diatribusikan dengan benar

 

  • Penetapan subjek acak: .sample()
  • Verifikasi perbedaan: .describe()

Subjek ditetapkan secara acak ke kelompok perlakuan dan kontrol.

Perancangan Eksperimen dengan Python

Ayo berlatih!

Perancangan Eksperimen dengan Python

Preparing Video For Download...