Saya tidak tahu apa sebutan seperti itu dan karena itu saya hanya memberi judul yang bodoh pada pertanyaan ini.
Katakanlah saya memiliki dataset yang dipesan sebagai berikut
4253 4262 4270 4383 4394 4476 4635 ...
Setiap angka sesuai dengan jumlah posting yang dikontribusikan pengguna tertentu ke situs web. Saya secara empiris menyelidiki fenomena "ketidaksetaraan partisipasi" sebagaimana didefinisikan di sini .
Untuk membuatnya mudah dipahami, saya ingin membuat plot yang memungkinkan pembaca dengan cepat menyimpulkan pernyataan seperti "10% dari pengguna berkontribusi 50% dari data". Seharusnya terlihat mirip dengan sketsa cat yang diakui buruk ini:
Saya tidak tahu bagaimana ini disebut sehingga saya tidak tahu harus mencari ke mana. Juga, jika seseorang memiliki implementasi R
, itu akan luar biasa.
sumber
ecdf
inR
untuk memulai. Istilah ini adalah "fungsi distribusi kumulatif empiris." Anda mungkin juga tertarik pada "plot peluang" dan "plot QQ" juga: mereka adalah versi ECDF yang menunjukkan data pada skala (nonlinier) yang berbeda.ecdf
dan telah menggunakannya sebelumnya, tetapi dengan cara "klasik" bahwa sumbu x menunjukkan jumlah posting dan sumbu y probabilitas mereka. Saya tidak tahu bagaimana melakukan sesuatu seperti di atas.Jawaban:
Jika Anda ingin melakukannya hanya dengan
R
perintah dasar , maka kode berikut dapat membantu.Pada awalnya Anda membaca data.
Kemudian Anda dapat melihat kontribusi dari setiap pengguna.
Anda juga dapat melihat berapa kontribusi dua, tiga, empat, ..., tujuh orang pertama.
Akhirnya Anda bisa mendapatkan plot yang Anda inginkan (dalam proporsi di kedua sumbu) dengan perintah berikut:
Saya telah memberi label kapak seperti yang Anda inginkan. Ini dapat memberi Anda pandangan yang jelas tentang berapa banyak persentase data yang dikontribusikan oleh proporsi orang tertentu.
sumber
Saya menemukan cara untuk dengan cepat memvisualisasikan kurva Lorenz
ggplot2
, menghasilkan grafik yang lebih estetis dan lebih mudah diinterpretasikan. Untuk alasan yang terakhir ini, saya mencerminkan kurva Lorenz pada garis diagonal yang menghasilkan bentuk yang lebih intuitif, jika Anda bertanya kepada saya. Ini juga berisi garis anotasi yang harus memfasilitasi penjelasan plot (mis. "Pengguna berkontribusi 5% merupakan 50% dari data"). Perhatian: Menemukan tempat yang tepat untuk garis anotasi menggunakan heuristik yang sangat bodoh dan mungkin tidak bekerja dengan kumpulan data yang lebih kecil.Contoh data:
Kode:
sumber
Dua cara lagi untuk melakukan ini karena saya baru-baru ini mengerjakan ini untuk uji klinis vaksin:
1.Gunakan Hmisc Ecdf. Ini lurus ke depan dan plot meskipun agak sulit untuk mencari tahu detail tentang mengubah berbagai elemen grafik.
2. Hitung distribusi kumulatif dan kemudian 1-kumulatif adalah kumulatif terbalik. Plot kebalikannya menggunakan ggplot2 menggunakan geom_step jika Anda suka fungsi langkah dalam grafik. Fungsi di bawah ini akan menggunakan ecdf dari basis r untuk memberikan Anda distribusi kumulatif dan kemudian 1-kumulatif:
dalam rcdf di atas adalah fungsi yang ditentukan pengguna yang didefinisikan menggunakan ecdf.
sumber