Pelajari cara mengukur variabilitas dalam data Anda menggunakan fungsi R sd(). Temukan contoh praktis dan teknik penting untuk menangani nilai hilang dan data berkelompok.
Simpangan baku adalah salah satu cara paling umum untuk merangkum seberapa menyebar data Anda. Di R, fungsi sd() memberi Anda cara cepat untuk menghitung ukuran variabilitas ini, baik saat Anda bekerja dengan vektor, data frame, maupun data berkelompok.
Dalam artikel ini, saya akan mengulas dasar-dasar penggunaan sd() di R, membahas cara menangani nilai hilang, dan menunjukkan cara menghitung simpangan baku lintas kelompok menggunakan fungsi seperti tapply() dan paket seperti dplyr.
Apa yang Dilakukan sd() di R?
Di R, fungsi sd() dari base R menghitung simpangan baku dari vektor numerik atau kolom data frame. Fungsi ini mengukur seberapa jauh nilai dalam data Anda menyimpang dari mean, sehingga memberi gambaran tentang variabilitas atau dispersi.
Jika Anda sudah familier dengan konsep varians, simpangan baku hanyalah akar kuadratnya dan, karena cara penghitungannya (mengambil akar kuadrat dari rata-rata deviasi kuadrat), simpangan baku tetap berada pada skala yang sama dengan data asli. Ini membuatnya lebih mudah diinterpretasikan secara praktis.
Contoh Sederhana sd()
Misalkan Anda memiliki sekumpulan angka dan ingin mengetahui seberapa besar penyimpangannya dari rata-rata.
Berikut cara melakukannya di R:
exam_scores <- c(75,80,85,90,95)
sd(exam_scores)Didukung oleh
Output memberi tahu Anda simpangan baku, yang mengkuantifikasi jarak rata-rata tiap nilai dari mean.
Anda dapat menggunakan sd() dengan vektor numerik apa pun, termasuk integer, double, atau hasil perhitungan. Anda mungkin tahu bahwa R memperlakukan vektor logika sebagai numerik (TRUE sebagai 1, FALSE sebagai 0), jadi fungsi sd() secara teknis dapat bekerja pada vektor logika (silakan coba jika ingin), tetapi konsep simpangan baku paling bermakna untuk data numerik kontinu.
Menangani Nilai Hilang dengan sd()
Dataset dunia nyata sering mengandung nilai hilang, jadi ini patut disebutkan: Jika data Anda memuat nilai NA, sd() akan mengembalikan NA secara bawaan.
Pertimbangkan contoh berikut:
heights <- c(170,175,NA,180,185)
sd(heights)Didukung oleh
Hasilnya adalah NA.
Untuk mengabaikan nilai hilang dan menghitung simpangan baku dari angka yang tersedia, gunakan argumen na.rm = TRUE. Atau, Anda dapat membersihkan nilai NA dari dataset Anda, tetapi saya menyarankan itu hanya jika memang masuk akal.
Sekarang Anda akan mendapatkan simpangan baku untuk 170, 175, 180, dan 185.
Menghitung Simpangan Baku untuk Data Frame di R
Anda dapat dengan mudah menghitung simpangan baku dari kolom tertentu dalam data frame menggunakan operator $. Misalkan Anda memiliki data frame bobot produk:
Ini memberi Anda simpangan baku dari kolom weight. Ingat, sd() dirancang untuk vektor numerik, bukan seluruh data frame. Selalu pilih kolom yang sesuai.
sd() dan Simpangan Baku Terkelompok
Sering kali, Anda ingin mengukur variabilitas dalam kelompok, seperti berdasarkan kategori, wilayah, atau faktor lainnya. R menyediakan beberapa cara untuk menghitung simpangan baku terkelompok. Saya akan menunjukkan tiga cara:
Menggunakan tapply() untuk simpangan baku terkelompok
Misalkan Anda memiliki data penjualan untuk berbagai wilayah dan menginginkan simpangan baku untuk tiap wilayah:
sales_amount <- c(200,220,210,250,240,230)
region <- c("North","North","South","South","North","South")
tapply(sales_amount, region, sd)Didukung oleh
tapply() menerapkan sd() ke setiap kelompok yang didefinisikan oleh wilayah.
Menggunakan aggregate() untuk simpangan baku terkelompok
Jika Anda lebih suka hasil dalam data frame yang rapi, aggregate() bisa digunakan:
sales_data <- data.frame( region = c("North","North","South","South","North","South"), amount = c(200,220,210,250,240,230))
aggregate(amount ~ region, data = sales_data, sd)Didukung oleh
Ini menghasilkan data frame ringkasan dengan simpangan baku untuk tiap wilayah.
Menggunakan dplyr untuk simpangan baku terkelompok
Dengan paket dplyr, perhitungan terkelompok menjadi lebih mudah dibaca. Gunakan summarize() setelah melakukan grouping:
library(dplyr)
sales_data %>%
group_by(region)%>%
summarize(sd_amount = sd(amount))Didukung oleh
Pendekatan ini sangat berguna untuk dataset yang lebih besar atau saat merantai beberapa transformasi data. (Atau jika Anda sekadar lebih suka menggunakan operator pipe, seperti saya.)
Kesalahan Umum dan Tips
Bahkan fungsi sederhana seperti sd() bisa menimbulkan masalah jika Anda tidak berhati-hati. Berikut beberapa jebakan umum:
Data non-numerik: sd() hanya bekerja dengan vektor numerik. Jika data Anda mencakup karakter atau faktor, Anda akan mendapat error. Gunakan is.numeric() untuk memeriksa data Anda.
Nilai hilang: Satu NA saja akan membuat sd() mengembalikan NA. Selalu gunakan na.rm = TRUE jika Anda ingin mengabaikan nilai hilang.
Ukuran sampel kecil: sd() menggunakan n-1 pada penyebut (simpangan baku sampel). Untuk vektor dengan panjang 1, sd() mengembalikan NA, bukan 0.
Khusus yang terakhir itu, menurut saya, menarik. Ini perbedaan yang kurang dikenal, dan bisa mengecoh jika Anda beralih dari Python ke R, karena Python membagi dengan simpangan baku populasi, bukan sampel.
Variasi Berguna dan Fungsi Terkait di R
R menawarkan beberapa fungsi terkait untuk mengukur variabilitas dan merangkum data:
var(): Menghitung varians, yaitu kuadrat dari simpangan baku.
apply(), sapply(), lapply(): Berguna untuk menerapkan sd() pada baris atau kolom matriks dan data frame.
mad(): Menghitung median absolute deviation, ukuran variabilitas lain yang menarik dan lebih robust.
Izinkan saya menunjukkan sd() yang digunakan dengan apply(), seperti yang saya sebutkan: Berikut cara menggunakan apply() untuk mendapatkan simpangan baku tiap kolom dalam matriks. Seperti sebelumnya, saya akan membuat matriksnya langsung.
measurement_matrix <- matrix(1:9, nrow =3)
apply(measurement_matrix,2, sd)Didukung oleh
Ini mengembalikan simpangan baku untuk tiap kolom, memberi Anda gambaran cepat tentang variabilitas di berbagai variabel.
Kesimpulan
Fungsi sd() di R relatif sederhana (hanya satu baris kode). Namun jika Anda sering menggunakannya untuk laporan atau presentasi dan merasa sedikit samar soal detailnya, daftarlah ke jalur karier Statistician in R kami. Ada banyak nuansa dalam statistik dan analisis data, jadi pastikan Anda benar-benar memahami dasarnya.
Penulis
Josef Waples
Saya penulis dan editor data science dengan kontribusi pada artikel riset di jurnal ilmiah. Saya sangat tertarik pada aljabar linear, statistika, R, dan sejenisnya. Saya juga cukup sering bermain catur!
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Simpangan baku adalah salah satu cara paling umum untuk merangkum seberapa menyebar data Anda. Di R, fungsi
sd()memberi Anda cara cepat untuk menghitung ukuran variabilitas ini, baik saat Anda bekerja dengan vektor, data frame, maupun data berkelompok.Dalam artikel ini, saya akan mengulas dasar-dasar penggunaan
sd()di R, membahas cara menangani nilai hilang, dan menunjukkan cara menghitung simpangan baku lintas kelompok menggunakan fungsi sepertitapply()dan paket sepertidplyr.Apa yang Dilakukan sd() di R?
Di R, fungsi
sd()dari base R menghitung simpangan baku dari vektor numerik atau kolom data frame. Fungsi ini mengukur seberapa jauh nilai dalam data Anda menyimpang dari mean, sehingga memberi gambaran tentang variabilitas atau dispersi.Jika Anda sudah familier dengan konsep varians, simpangan baku hanyalah akar kuadratnya dan, karena cara penghitungannya (mengambil akar kuadrat dari rata-rata deviasi kuadrat), simpangan baku tetap berada pada skala yang sama dengan data asli. Ini membuatnya lebih mudah diinterpretasikan secara praktis.
Contoh Sederhana sd()
Misalkan Anda memiliki sekumpulan angka dan ingin mengetahui seberapa besar penyimpangannya dari rata-rata.
Berikut cara melakukannya di R:
Output memberi tahu Anda simpangan baku, yang mengkuantifikasi jarak rata-rata tiap nilai dari mean.
Anda dapat menggunakan
sd()dengan vektor numerik apa pun, termasuk integer, double, atau hasil perhitungan. Anda mungkin tahu bahwa R memperlakukan vektor logika sebagai numerik (TRUEsebagai1,FALSEsebagai0), jadi fungsisd()secara teknis dapat bekerja pada vektor logika (silakan coba jika ingin), tetapi konsep simpangan baku paling bermakna untuk data numerik kontinu.Menangani Nilai Hilang dengan sd()
Dataset dunia nyata sering mengandung nilai hilang, jadi ini patut disebutkan: Jika data Anda memuat nilai
NA,sd()akan mengembalikanNAsecara bawaan.Pertimbangkan contoh berikut:
Hasilnya adalah
NA.Untuk mengabaikan nilai hilang dan menghitung simpangan baku dari angka yang tersedia, gunakan argumen
na.rm = TRUE. Atau, Anda dapat membersihkan nilaiNAdari dataset Anda, tetapi saya menyarankan itu hanya jika memang masuk akal.Sekarang Anda akan mendapatkan simpangan baku untuk 170, 175, 180, dan 185.
Menghitung Simpangan Baku untuk Data Frame di R
Anda dapat dengan mudah menghitung simpangan baku dari kolom tertentu dalam data frame menggunakan operator
$. Misalkan Anda memiliki data frame bobot produk:Ini memberi Anda simpangan baku dari kolom
weight. Ingat,sd()dirancang untuk vektor numerik, bukan seluruh data frame. Selalu pilih kolom yang sesuai.sd() dan Simpangan Baku Terkelompok
Sering kali, Anda ingin mengukur variabilitas dalam kelompok, seperti berdasarkan kategori, wilayah, atau faktor lainnya. R menyediakan beberapa cara untuk menghitung simpangan baku terkelompok. Saya akan menunjukkan tiga cara:
Menggunakan tapply() untuk simpangan baku terkelompok
Misalkan Anda memiliki data penjualan untuk berbagai wilayah dan menginginkan simpangan baku untuk tiap wilayah:
tapply()menerapkansd()ke setiap kelompok yang didefinisikan oleh wilayah.Menggunakan aggregate() untuk simpangan baku terkelompok
Jika Anda lebih suka hasil dalam data frame yang rapi,
aggregate()bisa digunakan:Ini menghasilkan data frame ringkasan dengan simpangan baku untuk tiap wilayah.
Menggunakan dplyr untuk simpangan baku terkelompok
Dengan paket
dplyr, perhitungan terkelompok menjadi lebih mudah dibaca. Gunakansummarize()setelah melakukan grouping:Pendekatan ini sangat berguna untuk dataset yang lebih besar atau saat merantai beberapa transformasi data. (Atau jika Anda sekadar lebih suka menggunakan operator pipe, seperti saya.)
Kesalahan Umum dan Tips
Bahkan fungsi sederhana seperti sd() bisa menimbulkan masalah jika Anda tidak berhati-hati. Berikut beberapa jebakan umum:
Data non-numerik:
sd()hanya bekerja dengan vektor numerik. Jika data Anda mencakup karakter atau faktor, Anda akan mendapat error. Gunakanis.numeric()untuk memeriksa data Anda.Nilai hilang: Satu
NAsaja akan membuatsd()mengembalikanNA. Selalu gunakanna.rm = TRUEjika Anda ingin mengabaikan nilai hilang.Ukuran sampel kecil:
sd()menggunakan n-1 pada penyebut (simpangan baku sampel). Untuk vektor dengan panjang 1,sd()mengembalikanNA, bukan0.Khusus yang terakhir itu, menurut saya, menarik. Ini perbedaan yang kurang dikenal, dan bisa mengecoh jika Anda beralih dari Python ke R, karena Python membagi dengan simpangan baku populasi, bukan sampel.
Variasi Berguna dan Fungsi Terkait di R
R menawarkan beberapa fungsi terkait untuk mengukur variabilitas dan merangkum data:
var(): Menghitung varians, yaitu kuadrat dari simpangan baku.apply(),sapply(),lapply(): Berguna untuk menerapkansd()pada baris atau kolom matriks dan data frame.mad(): Menghitung median absolute deviation, ukuran variabilitas lain yang menarik dan lebih robust.Izinkan saya menunjukkan
sd()yang digunakan denganapply(), seperti yang saya sebutkan: Berikut cara menggunakanapply()untuk mendapatkan simpangan baku tiap kolom dalam matriks. Seperti sebelumnya, saya akan membuat matriksnya langsung.Ini mengembalikan simpangan baku untuk tiap kolom, memberi Anda gambaran cepat tentang variabilitas di berbagai variabel.
Kesimpulan
Fungsi
sd()di R relatif sederhana (hanya satu baris kode). Namun jika Anda sering menggunakannya untuk laporan atau presentasi dan merasa sedikit samar soal detailnya, daftarlah ke jalur karier Statistician in R kami. Ada banyak nuansa dalam statistik dan analisis data, jadi pastikan Anda benar-benar memahami dasarnya.