Tôi đang cố gắng tính toán chỉ số Gini trên bản phân phối danh tiếng SO bằng SO Data Explorer. Phương trình tôi đang cố thực hiện là: Trong đó: = số người dùng trên trang web; = id nối tiếp người dùng (1 - 1.225.000); = danh tiếng của người dùng .niyii
Đây là cách tôi triển khai nó (được sao chép từ đây ):
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
Kết quả của tôi là (hiện tại) -0,53, nhưng không có ý nghĩa gì: Tôi không chắc nó thậm chí có thể trở nên tiêu cực như thế nào, và thậm chí ở giá trị abs, tôi đã dự đoán sự bất bình đẳng sẽ gần hơn với 1, vì mức độ nổi tiếng càng phát triển bạn càng có nó.
Tôi có vô tình bỏ qua một số giả định về việc phân phối danh tiếng / người dùng không?
Tôi làm gì sai?