Estou tentando calcular o índice Gini na distribuição de reputação do SO usando o SO Data Explorer. A equação que estou tentando implementar é a seguinte: Onde: = número de usuários no site; = ID de série do usuário (1 - 1.225.000); = reputação do usuário .niyii
É assim que eu o implementei (copiado daqui ):
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
Meu resultado é (atualmente) -0,53, mas não faz sentido: não sei ao certo como isso pode ter se tornado negativo, e mesmo com o valor abs, eu esperava que a desigualdade estivesse muito mais próxima de 1, considerando a reputação cresce quanto mais você tem.
Ignoro, sem saber, algumas suposições sobre a distribuição da reputação / usuários?
O que eu faço de errado?