Saya mencoba menghitung indeks Gini pada distribusi reputasi SO menggunakan SO Data Explorer. Persamaan yang saya coba terapkan adalah ini: Di mana: = jumlah pengguna di situs; = nomor seri pengguna (1 - 1.225.000); = reputasi pengguna .niyii
Inilah cara saya mengimplementasikannya (disalin dari sini ):
DECLARE @numUsers int
SELECT @numUsers = COUNT(*) FROM Users
DECLARE @totalRep float
SELECT @totalRep = SUM(Users.Reputation) FROM Users
DECLARE @giniNominator float
SELECT @giniNominator = SUM( (@numUsers + 1 - CAST(Users.Id as Float)) *
CAST(Users.Reputation as Float)) FROM Users
DECLARE @giniCalc float
SELECT @giniCalc = (@numUsers + 1 - 2*(@giniNominator / @totalRep)) / @numUsers
SELECT @giniCalc
Hasil saya (saat ini) -0,53, tetapi tidak masuk akal: Saya tidak yakin bagaimana itu bisa menjadi negatif, dan bahkan dalam nilai abs, saya akan mengharapkan ketidaksetaraan lebih dekat ke 1, mengingat bagaimana reputasi tumbuh semakin Anda memilikinya.
Apakah saya tanpa sadar mengabaikan beberapa asumsi tentang distribusi reputasi / pengguna?
Apa yang saya lakukan salah?
Jawaban:
Berikut ini cara menghitungnya dengan SQL:
Penjelasan di sini https://medium.com/@medvedev1088/calculating-gini-coefisien-in-bigquery-3bc162c82168
sumber
Saya tidak dapat membaca
SQL
kode dengan sangat mudah, tetapi jika ini membantu, jika saya akan menghitung koefisien Gini, inilah yang akan saya lakukan (dalam bahasa Inggris).Saya mengambil langkah-langkah tersebut dari kode yang sangat lurus ke depan dalam
R
fungsi (dalam paket inqq ) untuk menghitung koefisien Gini. Sebagai catatan, ini kode itu:Tampaknya agak mirip dengan
SQL
kode Anda , tetapi seperti yang saya katakan, saya tidak bisa benar-benar membacanya dengan mudah!sumber
Saya percaya, ada empat formulasi setara dari indeks Gini. Bagi saya, yang paling alami adalah statistik-U: di mana adalah rata-rata . Anda dapat memeriksa ulang perhitungan Anda dengan rumus ini. Jelas, hasilnya pasti tidak negatif. Untuk apa yang saya ketahui tentang indeks Gini, distribusi reputasi di CV harus memiliki indeks Gini di atas 0,9; apakah 0.98 masuk akal atau tidak, saya tidak bisa mengatakannya.μx
sumber
Menambah jawaban @smillig, berdasarkan persamaan yang disediakan:
Memberi saya pada set tes saya:
0.45503253636587840
Yang sama dengan perpustakaan R's ineq Gini (x)
sumber