SO Data Explorer를 사용하여 SO 평판 분포에서 Gini 지수를 계산하려고합니다. 내가 구현하려는 방정식은 다음과 같습니다 여기서, = 사이트의 사용자 수; = 사용자 일련 ID (1-1,225,000); = 사용자 평판 .
이것이 내가 구현 한 방법입니다 ( 여기 에서 복사 ).
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
내 결과는 (현재) -0.53이지만 이해가되지 않습니다. 어떻게 부정적 일 수 있었는지 확실하지 않으며 절대 가치에도 불구하고 평판이 어떻습니까? 불평등이 1에 훨씬 가까울 것으로 예상했을 것입니다. 당신이 그것을 더 많이 성장합니다.
평판 / 사용자 배포에 대한 일부 가정을 모르고 무시하고 있습니까?
내가 뭘 잘못 했니?