SOデータエクスプローラーを使用してSOレピュテーション分布のGiniインデックスを計算しようとしています。私が実装しようとしている方程式はこれです: ここで:n=サイト上のユーザー数。i=ユーザーのシリアルID(1-1,225,000); yi=ユーザーiの評判。
これは私がそれを実装した方法です(ここからコピーされます):
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ですが、意味がありません。それがどのようにマイナスになる可能性があるのかさえわかりません。また、abs値でさえ、不平等は1に非常に近いと予想されていました。あなたがそれを持っているほど成長します。
知らず知らずのうちに、レピュテーション/ユーザーの分布に関するいくつかの仮定を無視していますか?
何が悪いのでしょうか?