Saya sering menggunakan plot kepadatan kernel untuk menggambarkan distribusi. Ini mudah dan cepat untuk dibuat di R seperti:
set.seed(1)
draws <- rnorm(100)^2
dens <- density(draws)
plot(dens)
#or in one line like this: plot(density(rnorm(100)^2))
Yang memberi saya PDF kecil yang bagus ini:
Saya ingin menaungi area di bawah PDF dari persentil ke-75 hingga ke-95. Mudah untuk menghitung poin menggunakan quantile
fungsi:
q75 <- quantile(draws, .75)
q95 <- quantile(draws, .95)
Tapi bagaimana cara menaungi area antara q75
dan q95
?
Jawaban:
Dengan
polygon()
fungsinya, lihat halaman bantuannya dan saya yakin kami juga memiliki pertanyaan serupa di sini.Anda perlu mencari indeks dari nilai-nilai kuantil untuk mendapatkan
(x,y)
pasangan yang sebenarnya .Edit: Ini dia:
Output (ditambahkan oleh JDL)
sumber
demo(graphics)
sejak sebelum fajar tepat waktu sehingga orang datang sesekali. Ide yang sama untuk bayangan regresi NBER dll.Solusi lain:
Hasil:
sumber
Solusi yang diperluas:
Jika Anda ingin membuat bayangan pada kedua ekor (salin & tempel kode Dirk) dan gunakan nilai x yang diketahui:
Hasil:
sumber
Pertanyaan ini butuh
lattice
jawaban. Ini yang paling mendasar, cukup mengadaptasi metode yang digunakan oleh Dirk dan lainnya:sumber
Berikut
ggplot2
varian lain berdasarkan fungsi yang mendekati kepadatan kernel pada nilai data asli:Menggunakan data asli (daripada menghasilkan kerangka data baru dengan nilai x dan y perkiraan kepadatan) memiliki manfaat juga bekerja di plot segi di mana nilai-nilai kuantitatif bergantung pada variabel yang mengelompokkan data:
Kode digunakan
Dibuat pada 13-07-2018 oleh paket reprex (v0.2.0).
sumber