ฉันพยายามคำนวณดัชนี Gini ในการกระจายชื่อเสียง SO โดยใช้ SO Data Explorer สมการที่ฉันพยายามนำมาใช้คือ: โดยที่: = จำนวนผู้ใช้บนไซต์; = หมายเลขประจำตัวผู้ใช้ (1 - 1,225,000); = ชื่อเสียงของผู้ใช้ฉันniyii
นี่คือวิธีที่ฉันใช้มัน (คัดลอกมาจากที่นี่ ):
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 มากเพียงใดเนื่องจากชื่อเสียง เติบโตยิ่งคุณมีมัน
ฉันไม่สนใจสมมติฐานบางประการเกี่ยวกับการเผยแพร่ชื่อเสียง / ผู้ใช้หรือไม่?
ฉันทำอะไรผิด