Perancangan Pertanyaan Analisis

Merumuskan pertanyaan data yang layak dijawab dan metrik keberhasilannya.

Daftar isi

Kualitas sebuah analisis data ditentukan sejak pertanyaannya dirumuskan, jauh sebelum baris kode pertama dijalankan. Topik ini membuka proyek penutup jalur dengan tahap perancangan, yaitu menajamkan rasa penasaran menjadi pertanyaan yang layak dijawab data, menetapkan variabel respons beserta kelompok pembandingnya, lalu menyiapkan satu berkas data untuk seluruh proyek. Skenario yang dipakai adalah perbandingan durasi tidur mahasiswa kelas pagi dan kelas malam. Setelah tahap ini selesai, proyek memiliki pertanyaan analisis, hipotesis kerja, serta berkas data-tidur.csv yang dipakai bersama oleh semua topik pada modul ini.

Dari rasa penasaran ke pertanyaan yang terukur#

Rasa penasaran biasanya tiba dalam bentuk yang masih luas, misalnya kesan bahwa mahasiswa yang kuliah pada malam hari kelihatan lebih segar. Kesan semacam itu belum dapat dianalisis karena tidak menyebut siapa dibandingkan dengan siapa, apa yang diukur, dan seberapa besar bedanya. Tugas tahap perancangan adalah menyempitkan kesan itu menjadi pertanyaan yang setiap katanya dapat diperiksa pada data.

Sebuah pertanyaan layak dianalisis apabila memenuhi empat kriteria berikut.

  • Terukur, yaitu besaran yang ditanyakan memiliki satuan jelas sehingga nilainya dapat dicatat, misalnya durasi tidur dalam jam.
  • Berpembanding, yaitu pertanyaan memuat dua kelompok atau kondisi yang disandingkan, sebab kalimat seperti “berapa durasi tidur mahasiswa” tidak memiliki tolok hitung.
  • Datanya dapat dikumpulkan, yaitu alat ukur dan akses ke respondennya tersedia dengan usaha yang wajar.
  • Jawabannya berguna, yaitu jawaban yang diperoleh mengubah keputusan atau pemahaman, bukan sekadar mengisi laporan.

Keempat kriteria menyaring pertanyaan secara bertahap, dari yang luas menuju yang siap diuji. Diagram berikut merangkum alur penyempitan tersebut. Setiap tingkatan mengurangi ruang tafsir sehingga sisa pertanyaannya dapat dijawab dengan angka.

1Rasa penasaranpengamatansehari-hari2Pertanyaan analisisterukur danberpembanding3Variabel terukurdurasi tidur (jam)dua kelompok kelas4Hipotesis kerjaselisih rata-ratatidak sama dengan nol
Corong perancangan dari rasa penasaran menuju hipotesis kerja

Pada proyek ini, kesan awal tentang mahasiswa kelas malam disempitkan menjadi satu pertanyaan analisis, yaitu apakah durasi tidur rata-rata mahasiswa kelas malam berbeda dari mahasiswa kelas pagi. Pertanyaan itu terukur karena menyebut durasi tidur dalam jam, berpembanding karena menyandingkan dua kelompok kelas, dan datanya dapat dikumpulkan melalui kuesioner sederhana. Jawabannya berguna bagi perencanaan jadwal kuliah maupun edukasi pola tidur mahasiswa.

Variabel respons, pembanding, dan hipotesis kerja#

Pertanyaan analisis diturunkan menjadi penetapan variabel yang tidak boleh berubah selama proyek berjalan. Satu variabel respons diukur pada setiap responden, dan satu pembanding membagi responden menjadi dua kelompok. Penetapan lengkapnya dirangkum pada tabel berikut.

PeranPilihan pada proyek ini
Variabel responsDurasi tidur satu hari dalam jam
Kelompok pembandingKelas pagi dan kelas malam
Ukuran per kelompok30 mahasiswa
Hipotesis kerjaKelas malam tidur lebih lama daripada kelas pagi

Hipotesis kerja menyatakan arah yang diperkirakan, tetapi pengujian formalnya ditulis dua arah agar hasil yang melawan dugaan tetap terdeteksi. Pernyataan formalnya berpasangan antara hipotesis nol (null hypothesis) dan hipotesis alternatif (alternative hypothesis) sebagai berikut, dengan μ\mu sebagai rata-rata populasi durasi tidur tiap kelompok.

H0:μmalam−μpagi=0,H1:μmalam−μpagi≠0 H_0: \mu_{\text{malam}} - \mu_{\text{pagi}} = 0, \qquad H_1: \mu_{\text{malam}} - \mu_{\text{pagi}} \neq 0

Hipotesis nol menyatakan tidak ada perbedaan rata-rata antara kedua populasi, sedangkan hipotesis alternatif menyatakan sebaliknya. Faktor lain seperti beban kuliah dan jadwal kerja sampingan tidak dikendalikan pada rancangan ini, sehingga catatan tentang faktor pengganggu disimpan untuk bagian keterbatasan pada laporan. Kedisiplinan menahan klaim sejak perancangan membuat kesimpulan akhir tidak melebihi apa yang sanggup didukung data.

Membangkitkan berkas data proyek#

Pada proyek sungguhan, data dikumpulkan melalui kuesioner dan pencatatan manual. Proyek terpandu ini mengganti langkah pengumpulan dengan pembangkitan data simulasi yang deterministik, sehingga setiap angka pada seluruh modul dapat direproduksi dan ketiga topik memakai satu berkas yang persis sama. Data dibangkitkan untuk dua kelompok berisi 30 mahasiswa dari model normal dengan rata-rata 7.0 dan 7.6 jam. Sebagai bagian dari realisme, dua pencilan (outlier) ditanam pada data, yaitu satu nilai 9.8 jam dan satu nilai 4.6 jam. Pembulatan satu desimal meniru gaya pencatatan manual dalam jam.

python bangkit-tidur.py
import numpy as np

rng = np.random.default_rng(42)

n = 30
pagi = rng.normal(loc=7.0, scale=1.0, size=n)
malam = rng.normal(loc=7.6, scale=1.1, size=n)

# Dua pencilan alami: satu mahasiswa tidur sangat lama, satu sangat sedikit
pagi[7] = 9.8
malam[21] = 4.6

# Pembulatan satu desimal meniru pencatatan manual dalam jam
pagi = np.round(pagi, 1)
malam = np.round(malam, 1)

with open("data-tidur.csv", "w", encoding="utf-8") as berkas:
    berkas.write("kelompok,durasi_jam\n")
    for nilai in pagi:
        berkas.write(f"pagi,{nilai:.1f}\n")
    for nilai in malam:
        berkas.write(f"malam,{nilai:.1f}\n")

print(f"Jumlah baris data    : {pagi.size + malam.size}")
print(f"Rata-rata kelas pagi : {pagi.mean():.2f} jam")
print(f"Rata-rata kelas malam: {malam.mean():.2f} jam")
text Keluaran
Jumlah baris data    : 60
Rata-rata kelas pagi : 7.12 jam
Rata-rata kelas malam: 7.60 jam

Skrip di atas menulis berkas data-tidur.csv berisi 60 baris data ditambah satu baris kepala. Isi lengkapnya ditampilkan berikut ini agar struktur berkasnya dapat diperiksa secara utuh.

csv data-tidur.csv
kelompok,durasi_jam
pagi,7.3
pagi,6.0
pagi,7.8
pagi,7.9
pagi,5.0
pagi,5.7
pagi,7.1
pagi,9.8
pagi,7.0
pagi,6.1
pagi,7.9
pagi,7.8
pagi,7.1
pagi,8.1
pagi,7.5
pagi,6.1
pagi,7.4
pagi,6.0
pagi,7.9
pagi,7.0
pagi,6.8
pagi,6.3
pagi,8.2
pagi,6.8
pagi,6.6
pagi,6.6
pagi,7.5
pagi,7.4
pagi,7.4
pagi,7.4
malam,10.0
malam,7.2
malam,7.0
malam,6.7
malam,8.3
malam,8.8
malam,7.5
malam,6.7
malam,6.7
malam,8.3
malam,8.4
malam,8.2
malam,6.9
malam,7.9
malam,7.7
malam,7.8
malam,8.6
malam,7.8
malam,8.3
malam,7.7
malam,7.9
malam,4.6
malam,6.0
malam,7.2
malam,7.1
malam,6.9
malam,7.3
malam,9.2
malam,6.6
malam,8.7

Berkas tersebut memuat dua kolom, yaitu kelompok berisi label pagi atau malam dan durasi_jam berisi durasi tidur. Nilai 9.8 pada kelompok pagi dan 4.6 pada kelompok malam adalah dua pencilan yang ditanam sejak awal. Pencilan semacam ini lazim dijumpai pada data tidur nyata, misalnya mahasiswa yang begadang atau yang tidur jauh lebih lama pada hari libur.

Pratinjau ringkas sebelum analisis#

Langkah terakhir tahap perancangan adalah membuka kembali berkas yang baru dibuat untuk memastikan strukturnya benar. Pratinjau ini memeriksa hal yang paling murah namun paling sering salah, yaitu ukuran tiap kelompok dan keterbacaan kolomnya. Perhatikan bahwa pratinjau bukan analisis, sehingga tidak ada keputusan statistik yang diambil dari angkanya.

python pratinjau-tidur.py
import numpy as np

data = np.genfromtxt("data-tidur.csv", delimiter=",", names=True,
                     dtype=None, encoding="utf-8")
pagi = data["durasi_jam"][data["kelompok"] == "pagi"]
malam = data["durasi_jam"][data["kelompok"] == "malam"]

print(f"Ukuran kelas pagi : {pagi.size} mahasiswa")
print(f"Ukuran kelas malam: {malam.size} mahasiswa")
print(f"Rata-rata awal kelas pagi : {pagi.mean():.2f} jam")
print(f"Rata-rata awal kelas malam: {malam.mean():.2f} jam")
print(f"Selisih rata-rata (malam - pagi): {malam.mean() - pagi.mean():.2f} jam")
text Keluaran
Ukuran kelas pagi : 30 mahasiswa
Ukuran kelas malam: 30 mahasiswa
Rata-rata awal kelas pagi : 7.12 jam
Rata-rata awal kelas malam: 7.60 jam
Selisih rata-rata (malam - pagi): 0.48 jam

Kedua kelompok terbaca lengkap berisi 30 mahasiswa, dan selisih rata-rata awalnya 0.48 jam. Selisih awal ini belum boleh dipercaya sepenuhnya karena rata-rata mudah tergeser oleh pencilan, sedangkan variasi pensampelan selalu membawa fluktuasi. Keputusan formal mengenai selisih tersebut ditunda hingga tahap analisis yang mengerjakan berkas yang sama ini.

Kesalahan umum#

Tiga kesalahan berikut paling sering muncul pada tahap perancangan.

  1. Pertanyaan yang dirumuskan masih menuntut penjelasan sebab-akibat, misalnya mengapa pola tidur mahasiswa berbeda-beda. Data observasional sederhana tidak sanggup menjawab kata mengapa. Perbaikannya adalah menyempitkan pertanyaan menjadi perbandingan ukuran yang terukur antara dua kelompok.
  2. Data dikumpulkan tanpa kelompok pembanding sehingga angkanya tidak memiliki tolok hitung. Nilai rata-rata 7.4 jam tidak bermakna tanpa tahu dibandingkan dengan apa. Perbaikannya adalah menetapkan pembanding sejak perancangan, bukan mencarinya setelah data terkumpul.
  3. Data dibangkitkan ulang dengan urutan pemanggilan generator acak yang berubah sehingga angka antartahap tidak cocok. Perbaikannya adalah membuat generator dengan seed tetap, pada proyek ini np.random.default_rng(42), lalu tidak menyisipkan pemanggilan acak lain sebelum data selesai ditulis.

Ringkasan#

  • Pertanyaan analisis yang layak bersifat terukur, berpembanding, dapat dikumpulkan datanya, dan jawabannya berguna.
  • Proyek ini membandingkan durasi tidur dua kelompok 30 mahasiswa dengan hipotesis kerja kelas malam tidur lebih lama.
  • Data proyek tersimpan pada data-tidur.csv berisi 60 baris yang dibangkitkan dengan seed 42, lengkap dengan dua pencilan alami.
  • Pratinjau awal menunjukkan selisih rata-rata 0.48 jam, angka yang pengujian formalnya ditunda hingga tahap analisis.

Referensi#