multiple qq plots in r

multiple qq plots in r

Silakan tulis artikel dalam bahasa Indonesia dengan panjang lebih dari 1000 kata:

Membuat Plot Q-Q untuk Data Kimia dengan Bilangan Variabel dan Observasi yang Tidak Dikenal

Dalam analisis data kimia, plot Q-Q (Quantile-Quantile) adalah salah satu cara untuk memvisualkan distribusi variabel. Namun, dalam beberapa kasus, kita mungkin memiliki data dengan bilangan variabel dan observasi yang tidak diketahui sebelumnya. Dalam hal ini, kita perlu membuat script yang dapat menghasilkan plot Q-Q untuk setiap variabel secara terpisah.

Pertama-tama, kita akan membuat data frame (df) dari data kimia yang telah diimport dari Excel. Data df memiliki tiga variabel, yaitu As, Ba, dan Cu, dengan bilangan observasi yang berbeda untuk setiap variabel.

As <- c(10, 20, 10, 12, 7, 14, 6, 9, 11, 15)
Ba <- c(110, 120, 210, 112, 97, 214, 116, 211, 115, NA)
Cu <- c(1, 1, 2, 11, 9, 21, 16, 19, NA, NA )
df <- data.frame(As, Ba, Cu)

Kemudian, kita akan menggunakan fungsi pivot_longer dari library tidyr untuk membagi variabel menjadi dua kolom, yaitu name dan value.

library(tidyverse)
df_l <- pivot_longer(df, cols = everything())

Selanjutnya, kita akan membuat plot Q-Q menggunakan fungsi ggplot2. Kita akan menggunakan sintaks yang sama untuk semua variabel, sehingga kita dapat memvisualkan distribusi setiap variabel secara terpisah.

qqplot <- ggplot(data = df_l, mapping = aes(sample = value)) +
 stat_qq_band(alpha=0.5) +
 stat_qq_line() +
 stat_qq_point() +
 facet_wrap(~ name, scales = "free") +
 labs(x = "Theoretical Quantiles", y = "Sample Quantiles")
qqplot

Namun, dalam beberapa kasus, kita mungkin memiliki lebih dari tiga variabel. Dalam hal ini, kita perlu membuat script yang dapat menghasilkan plot Q-Q untuk setiap variabel secara terpisah dan memungkinkan kita untuk menyimpan plot tersebut sebagai objek yang dapat diakses kemudian.

Salah satu cara untuk melakukan hal itu adalah dengan menggunakan loop for dan fungsi ggplot. Kita akan membuat script yang dapat menghasilkan plot Q-Q untuk setiap variabel dan menyimpan plot tersebut sebagai objek yang berformat qqplot1, qqplot2, dst.

plots <- list()
for (i in 1:ncol(df[, 1:ncol(df) - 0 ])){ 
 temp_df <- df_l %>% filter(name == names(df)[i])
 plot_temp <- ggplot(data = temp_df, mapping = aes(sample = value)) +
 stat_qq_band(alpha=0.5) +
 stat_qq_line() +
 stat_qq_point() +
 labs(x = "Theoretical Quantiles", y = "Sample Quantiles")
 plots[[paste0("qqplot", i)]] <- plot_temp
}

# Contoh penggunaan objek plot Q-Q:
print(plots[[1]])

Dalam script di atas, kita menggunakan loop for untuk menghasilkan plot Q-Q untuk setiap variabel. Kita juga menggunakan fungsi filter untuk membagi data menjadi bagian yang sesuai dengan variabel yang ingin dipplot. Setiap plot Q-Q kemudian disimpan sebagai objek yang berformat qqplot1, qqplot2, dst, sehingga kita dapat memvisualkan distribusi setiap variabel secara terpisah dan memungkinkan kita untuk menyimpan plot tersebut sebagai bagian dari laporan HTML atau PDF.

Namun, jika Anda memiliki lebih dari 20-50 variabel, maka Anda perlu menggunakan cara lain untuk menghasilkan plot Q-Q. Salah satu cara adalah dengan menggunakan fungsi purrr untuk membuat loop yang dapat menghasilkan plot Q-Q untuk setiap variabel secara terpisah. Contoh scriptnya sebagai berikut:

library(purrr)
plots <- map(1:ncol(df[, 1:ncol(df) - 0 ]), function(i){
 temp_df <- df_l %>% filter(name == names(df)[i])
 ggplot(data = temp_df, mapping = aes(sample = value)) +
 stat_qq_band(alpha=0.5) +
 stat_qq_line() +
 stat_qq_point() +
 labs(x = "Theoretical Quantiles", y = "Sample Quantiles")
}) -> plots

# Contoh penggunaan objek plot Q-Q:
print(plots[[1]])

Dalam script di atas, kita menggunakan fungsi map dari library purrr untuk membuat loop yang dapat menghasilkan plot Q-Q untuk setiap variabel secara terpisah. Setiap plot Q-Q kemudian disimpan sebagai objek yang berformat qqplot1, qqplot2, dst, sehingga kita dapat memvisualkan distribusi setiap variabel secara terpisah dan memungkinkan kita untuk menyimpan plot tersebut sebagai bagian dari laporan HTML atau PDF.

Dalam beberapa kasus, Anda mungkin memiliki lebih dari 20-50 variabel, maka Anda perlu menggunakan cara lain untuk menghasilkan plot Q-Q. Salah satu cara adalah dengan menggunakan fungsi future untuk membuat script yang dapat dijalankan secara paralel dan menghasilkan plot Q-Q untuk setiap variabel secara terpisah.

Dalam artikel ini, kita telah membahas tentang bagaimana membuat plot Q-Q untuk data kimia dengan bilangan variabel dan observasi yang tidak diketahui sebelumnya. Kita juga telah membahas tentang cara-cara untuk menghasilkan plot Q-Q secara efektif dan efisien.