Mengembangkan PP Plot untuk Analisis Distribusi

Mengembangkan PP Plot untuk Analisis Distribusi

Karena plot QQ dan PP setara untuk distribusi uniform, kita akan beralih ke plot PP untuk menunjukkan interface.

Differencing

Biasanya dalam plot PP, probabilitas yang diharapkan dipplot pada sumbu x dan probabilitas teoritis dipplot pada sumbu y. Namun, dalam plot ini sangat sulit untuk melihat apa pun karena titik-titik individu terlalu kecil dan besar deviasi dari distribusi referensi tidak terlalu besar.

Namun, jika kita plot probabilitas yang diharapkan pada sumbu x dan probabilitas observasi minus probabilitas yang diharapkan pada sumbu y dengan mengatur parameter perbedaan menjadi TRUE, maka hal-hal akan jauh lebih mudah dilihat:

pp_conf_plot(
 obs = sample, 
 distribution = punif,
 points_params = list(cex=.1),
 difference = TRUE, # Atur sumbu y menjadi differenced
 ylim = c(-.0225, .0225)
)

Skala Logaritma

Sekaligus, kita mungkin hanya tertarik pada deviasi contoh dari sisi satu-sisi distribusi referensi. Contohnya, jika kita memiliki contoh p-value sebanyak n yang ingin kita bandingkan dengan distribusi U(0, 1) untuk tujuan testing hipotesis global, maka kita hanya tertarik pada nilai p-value yang kecil. Dalam kasus ini, terutama ketika n sangat besar, dapat membantu jika kita transformasi nilai probabilitas menjadi skala -log10.

Untuk menunjukkan hal ini, kita akan menghasilkan 10,000 titik dari campuran distribusi Beta(.25, 1) dan U(0, 1) dan tes contoh terhadap distribusi referensi U(0, 1).

mix <- distr::UnivarMixingDistribution(
 distr::Beta(shape1 = .25, shape2 = 1), 
 distr::Unif(),
 mixCoeff=c(.01, .99)
)

sampler <- distr::r(mix)

sample <- sampler(10000)

Kembali, jika kita membuat plot PP standar, bagian yang relevan dari plot sangat sulit untuk dilihat.

pp_conf_plot(
 obs = sample, 
 distribution = punif,
 points_params = list(cex=.1)
)

Namun, jika kita atur perbedaan menjadi TRUE, masih sangat sulit untuk melihat sisi kiri distribusi.

pp_conf_plot(
 obs = sample, 
 distribution = punif,
 points_params = list(cex=.1),
 difference = TRUE
)

Namun, jika kita atur log10 menjadi TRUE, maka plot akan jauh lebih mudah dilihat.

pp_conf_plot(
 obs = sample, 
 distribution = punif,
 points_params = list(cex=.1),
 log10 = TRUE
)

Catatan bahwa jika kita ingin mempertegas sisi kanan distribusi sebagai lawan sisi kiri, maka kita dapat atur log10 menjadi TRUE dan parameter right_tail menjadi TRUE. Hal ini akan menghasilkan plot dengan data transformasi ke skala logaritma bukan -log10.

Testing Bounds Generations

Selain interface plotting yang dijelaskan di atas, qqconf juga menyediakan fungsi untuk langsung menghasilkan batas testing yang dihasilkan oleh metode level lokal sama. Fungsi-fungsi ini tersedia untuk testing dua-sisi dan satu-sisi. Untuk informasi tentang generasi batas testing menggunakan level lokal sama, silakan lihat bagian 2 dari paper kita.

Testing Dua-Sisi

Dengan memiliki tingkat kesalahan global (\alpha) yang diinginkan dan ukuran contoh n, kita dapat menghasilkan batas dua-sisi menggunakan fungsi get_bounds_two_sided. Berikut, kita menghasilkan batas-batas untuk n = 100 dan (\alpha) = .05:

bounds <- get_bounds_two_sided(alpha = .05, n = 100)

Dalam kasus ini, objek bounds adalah sebuah list dengan beberapa objek (untuk informasi lebih lanjut, lihat dokumentasi), tetapi batas bawah dapat diekstrak melalui bounds$lower_bounds dan batas atas melalui bounds$upper_bounds.

Testing Satu-Sisi

Selain testing dua-sisi, qqconf juga menyediakan fungsi-fungsi untuk testing satu-sisi. Dengan memiliki tingkat kesalahan global (\alpha) yang diinginkan dan ukuran contoh n, kita dapat menghasilkan batas satu-sisi menggunakan fungsi get_bounds_one_sided. Berikut, kita menghasilkan batas-batas untuk n = 100 dan (\alpha) = .05:

bounds <- get_bounds_one_sided(alpha = .05, n = 100)

Dalam kasus ini, objek bounds adalah sebuah list dengan beberapa objek (untuk informasi lebih lanjut, lihat dokumentasi), tetapi batas bawah dapat diekstrak melalui bounds$lower_bounds dan batas atas melalui bounds$upper_bounds.