Rata-rata dan median
Dua ringkasan yang paling sering dipakai di seluruh statistika masing-masing cukup satu pemanggilan fungsi:
mean() menjumlahkan semuanya lalu membaginya dengan banyaknya data. median() mengurutkan nilai-nilainya dan mengambil yang di tengah (atau merata-ratakan dua nilai tengah saat jumlah datanya genap). Untuk 32 mobil di mtcars, rata-rata efisiensi bahan bakarnya sekitar 20,1 mpg dan mediannya 19,2. Keduanya berdekatan, yang menandakan datanya tidak terlalu miring. Saat keduanya sangat berbeda, itu juga informasi; kita akan membahasnya di akhir.
Satu hal yang mengejutkan semua orang: kalau vector-nya berisi satu NA saja, kedua fungsi mengembalikan NA:
Itu disengaja: R menolak diam-diam berpura-pura nilai yang hilang itu tidak ada. na.rm = TRUE berarti "hitung dari nilai yang kamu punya." Hampir setiap fungsi ringkasan di artikel ini menerimanya. Cerita lengkap tentang bagaimana NA menyebar ada di nilai yang hilang.
Standar deviasi dan varians
sd() mengukur sebaran: kira-kira, seberapa jauh nilai yang umum berada dari rata-rata, dalam satuan yang sama dengan datanya. var() adalah kuadratnya:
Standar deviasi sekitar 6 mpg berarti mobil-mobil umumnya berada dalam jarak sekitar 6 mpg dari rata-rata 20,1. Karena sd() memakai satuan data itu sendiri, inilah yang kamu laporkan; var() lebih sering muncul di dalam rumus lain.
Inilah detail yang penting untuk tugas kuliah: sd() dan var() menghitung statistik sampel: keduanya membagi jumlah kuadrat simpangan dengan n − 1, bukan dengan n:
Kenapa n − 1? Karena kamu memperkirakan rata-rata dari data yang sama, simpangan di sekitar rata-rata perkiraan itu secara sistematis sedikit terlalu kecil; membagi dengan n − 1 mengoreksinya. Karena datamu hampir selalu berupa sampel dari sesuatu yang lebih besar, versi n − 1 itulah yang kamu inginkan. Kalau kamu benar-benar punya seluruh populasi (setiap siswa di kelas, setiap produk di katalog), kalikan: var(x) * (n - 1) / n.
Standard error dari rata-rata
Standar deviasi dan standard error terus-menerus tertukar, jadi pisahkan keduanya: sd menggambarkan data, SE menggambarkan perkiraanmu atas rata-rata. R tidak punya se() bawaan, tapi rumusnya cukup satu baris:
Standard error menyusut saat sampel bertambah besar (kumpulkan data empat kali lipat, maka SE menjadi setengahnya) karena sampel yang lebih besar menentukan rata-rata dengan lebih tepat. Standar deviasi tidak menyusut seiring ukuran sampel; mobil-mobil itu tetap sebervariasi apa adanya, berapa pun yang kamu ukur. SE adalah bahan dasar interval kepercayaan, dan di sanalah gunanya terasa.
summary(): gambaran umum dalam satu pemanggilan
summary() memberimu ringkasan lima angka plus rata-rata sekaligus, dan bisa dipakai pada seluruh data frame:
Saat dipanggil pada data frame, fungsi ini meringkas setiap kolom: kolom numerik mendapat min/kuartil/mean/max, dan factor mendapat hitungan per level. Inilah hal pertama yang dijalankan pada dataset apa pun yang baru kamu muat: nilai yang mustahil (umur negatif, nilai maksimum 9999) langsung terlihat.
Kuantil, rentang, dan IQR
quantile() memperluas median ke titik potong mana pun:
Tanpa argumen, fungsi ini mengembalikan nilai minimum, kuartil, dan maksimum. Berikan probs = untuk titik potong tertentu: persentil ke-10 dan ke-90 di atas mengapit tempat sebagian besar data berada. IQR() (jarak antara persentil ke-25 dan ke-75) adalah ukuran sebaran yang, tidak seperti sd(), tidak terseret oleh pencilan. range() mengembalikan nilai minimum dan maksimum sebagai pasangan.
Modus: mode() di R TIDAK melakukan ini
Yang satu ini menjebak semua orang tepat satu kali. R punya fungsi bernama mode(), dan fungsi itu tidak ada hubungannya dengan statistika: ia melaporkan tipe penyimpanan sebuah objek:
Idiom yang perlu diingat: table(x) menghitung seberapa sering setiap nilai muncul, which.max() mencari hitungan terbesar, dan names() mengambil nilainya. Perhatikan bahwa hasilnya berupa string character (nama table selalu begitu); bungkus dengan as.numeric() kalau kamu perlu menghitung dengannya. Kalau dua nilai seri, which.max() diam-diam hanya mengembalikan yang pertama, jadi periksa sendiri table-nya saat kemungkinan seri cukup besar.
Rata-rata vs median: mana yang dilaporkan
Rata-rata memakai setiap nilai, dan itulah kekuatan sekaligus kelemahannya: satu nilai ekstrem saja bisa menyeretnya. Median hanya peduli pada bagian tengah, jadi pencilan nyaris tidak menyentuhnya:
Satu nilai tambahan mendorong rata-rata dari sekitar 49.300 menjadi lebih dari 155.000, angka yang tidak menggambarkan siapa pun di dalam data, sementara median hanya bergeser dari 48.000 ke 49.500. Inilah sebabnya pendapatan, harga rumah, dan lama rawat inap dilaporkan sebagai median: data yang miring dengan ekor panjang membuat rata-rata menyesatkan. Untuk data yang kira-kira simetris, keduanya sepakat dan rata-rata sudah cukup baik (dan secara statistik lebih efisien). Histogram singkat memberi tahu situasi mana yang sedang kamu hadapi, dan membandingkan rata-rata dengan median itu sendiri sudah merupakan pemeriksaan kemiringan dalam satu baris.
Yang kamu bawa pulang
mean(x)danmedian(x); tambahkanna.rm = TRUEsaat ada nilai yang hilang.sd(x)danvar(x)menghitung statistik sampel (penyebutn − 1), dan itulah yang kamu inginkan.- Standard error adalah
sd(x) / sqrt(length(x)): mengukur seberapa baik kamu mengetahui rata-ratanya, bukan seberapa menyebar datanya. summary()pada data frame yang baru dimuat adalah pemeriksaan kewajaran tercepat di R.- Modus adalah
names(which.max(table(x)));mode()di R mengurus tipe penyimpanan. - Data miring atau ada pencilan: laporkan median. Data simetris: rata-rata sudah cukup.
Berikutnya: mengukur seberapa kompak dua variabel bergerak bersama, yaitu korelasi dengan cor() dan cor.test().
Pertanyaan yang sering diajukan
Bagaimana cara menghitung standar deviasi di R?
Dengan sd(x). Perhatikan bahwa fungsi ini menghitung standar deviasi sampel: ia membagi dengan n − 1, bukan n. Itulah yang kamu inginkan di hampir setiap analisis nyata, karena datamu hampir selalu berupa sampel, bukan seluruh populasi.
Bagaimana cara mencari rata-rata dan median di R?
mean(x) dan median(x). Kalau vector-nya berisi nilai yang hilang, keduanya mengembalikan NA; tambahkan na.rm = TRUE untuk menghitung dari nilai yang ada: mean(x, na.rm = TRUE).
Bagaimana cara mencari modus di R?
Bukan dengan mode(): fungsi itu mengembalikan tipe penyimpanan sebuah objek, bukan nilai yang paling sering muncul. Pakai idiom table sebagai gantinya: names(which.max(table(x))) mengembalikan nilai yang paling sering muncul.
Apa itu standard error di R?
Tidak ada fungsi bawaannya. Hitung sebagai sd(x) / sqrt(length(x)). Standar deviasi menggambarkan sebaran datamu; standard error menggambarkan seberapa tepat kamu memperkirakan rata-ratanya, dan nilainya menyusut saat sampel bertambah besar.