SO Data Explorer kullanarak SO itibar dağıtım Gini dizini hesaplamak çalışıyorum. Uygulamaya çalıştığım denklem şudur: Burada: = sitedeki kullanıcı sayısı; = kullanıcı seri kimliği (1 - 1,225,000); = kullanıcısının itibarı .niyii
Ben bu şekilde ( buradan kopyalanan ) uyguladım :
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
Benim sonucum (şu anda) -0.53, ama mantıklı değil: Nasıl olumsuz olabileceğinden bile emin değilim ve abs değerinde bile, itibarın nasıl olduğu göz önüne alındığında eşitsizliğin 1'e çok daha yakın olmasını beklerdim. ne kadar çok büyürse.
Ünün / kullanıcıların dağılımı ile ilgili bazı varsayımları bilmeden yok sayıyor muyum?
Neyi yanlış yapıyorum?