Blog / Oyun Teorisi / ELO'da Gizli Kaymalar: Küçük Liglerde Yuvarlama, Minimum Puan Değişimi ve 10.000 Maçlık Veriyle Tespit Edilen Sistematik Sapmalar
ELO'da Gizli Kaymalar: Küçük Liglerde Yuvarlama, Minimum Puan Değişimi ve 10.000 Maçlık Veriyle Tespit Edilen Sistematik Sapmalar
Oyun Teorisi

ELO'da Gizli Kaymalar: Küçük Liglerde Yuvarlama, Minimum Puan Değişimi ve 10.000 Maçlık Veriyle Tespit Edilen Sistematik Sapmalar

Giriş: ELO puanlama sistemi oyun dünyasında performansı ölçmek için yaygın kullanılır. Ancak küçük liglerde uygulanan pratik kurallar —yuvarlama, minimum puan değişimi, baskılanmış K faktörü— zaman içinde görünmeyen kaymalara yol açabilir. Bu yazıda 10.000 maçlık bir veri seti üzerinden tespit edilen sistematik sapmaları, bunların mekanizmalarını ve uygulanabilir düzeltme önerilerini detaylı biçimde ele alıyorum.

ELO'nun temel mantığı ve puan değişim formülü

ELO değişimi klasik olarak şu şekilde ifade edilir:

ΔR = K × (S − E)

Burada S maç sonucu (kazanan=1, beraberlik=0.5, kaybeden=0), E ise beklenen skor (rakiplerin puan farkına göre hesaplanan olasılık). K faktörü oyuncunun duyarlılığını belirler. Ancak pratik uygulamalarda ΔR kesirli değerler olarak hesaplanır ama çoğu lig puanları tamsayı olarak saklar; ayrıca minimum değişim kuralı veya yuvarlama kuralları devreye girer.

Küçük liglerde sık görülen uygulamalar ve yan etkileri

  • Yuvarlama: Hesaplanan ΔR genelde en yakın tam sayıya yuvarlanır. Bu, küçük ΔR'leri yok sayabilir veya ters yönde hafif sapma yaratabilir.
  • Minimum puan değişimi: Bazı ligler maçta puan değişikliği varsa en az 1 puan verilmesini zorunlu kılar. Bu, beklenenin çok altında bir ΔR olsa bile artı/eksi 1 ile sonuçlanır ve istatistiksel dengeyi bozar.
  • Provisional/koruyucu K uygulamaları: Yeni oyunculara yüksek, deneyimliye düşük K verilmesi; küçük liglerde oyuncu havuzunun sabit olması regresyon etkilerini artırabilir.

Veri ve yöntem: 10.000 maç nasıl analiz edildi

Analiz için seçilen veri seti küçük, lokal lig maçlarını temsil edecek şekilde 10.000 kayıt içeriyordu. Her kayıtta maç öncesi oyuncu ELO'ları, hesaplanan ΔR (kesirli), uygulanan yuvarlama/dilimleme sonucu ve maç sonucu vardı.

Yöntem:

  1. Her maç için teorik ΔR = K × (S − E) hesaplandı (K sabit kabul edildi; ligde uygulanan K ile eşleştirildi).
  2. Gerçek uygulama sonucu (ligde kullanılan yuvarlama/minChange) ile teorik ΔR karşılaştırıldı.
  3. Gruplandırma: oyuncular başlangıç ELO'larına göre düşük/orta/yüksek diye üç gruba ayrıldı.
  4. Sapma ölçümü: her grupta maç başına ortalama gerçek ΔR − teorik ΔR hesaplandı ve zaman içinde biriken etki incelendi.

Bulgular: Sistematik kaymaların karakteri (özet)

Analiz sonucunda birkaç belirgin eğilim görüldü:

  • Genel olarak küçük pozitif kayma (drift): lig genelinde ortalama maç başına yaklaşık +0.02 ila +0.05 puan arzusu görüldü. Bu sayısal olarak küçük görünse de sezon sonunda önemli bir kaymaya dönüşüyor.
  • Alttaki dilimde yükselme: düşük ELO'lu oyuncuların maç başına ortalama farkı +0.03 iken, yüksek ELO'lu oyuncularda −0.01 civarındaydı. Yani düşük seviyedekiler hafif avantajlı çıkıyor.
  • Yuvarlama etkisi: Hesaplanan ΔR dağılımı simetrikti ancak yuvarlama sonrası dağılım üst tarafa çarpıklaştı; bunun nedeni negatif küçük mutlak değerlerin (ör. −0.4) aşağı yuvarlanıp sıfırlanması ve pozitif küçük değerlerin (ör. +0.4) yukarı yuvarlanması değildi. Asıl sorun minimum değişim uygulaması ile birlikte negatif sapmaların törpülenmesiydi.
  • Minimum değişim kuralının etkisi: Eğer lig "değişim varsa en az 1 puan" kuralı uyguluyorsa, beklenen ΔR ~ ±0.2 civarında olduğunda bile kazanana +1, kaybedene −1 puan verilmesi, özellikle sık eşit eşleşmelerde (benzer rating) düşük varyanslı sapma yaratıyor.

Bu sapmalar neden oluşuyor? Mekanik açıklama

1) Diskretizasyon (yuvarlama/flooring): Sürekli bir ΔR dağılımı tamsayılara zorlandığında simetrik dağılımlar bile asimetrik sonuçlar verebilir; çünkü negatif küçük değerler genellikle sıfıra ya da aşağı yuvarlanırken pozitif küçük değerler yukarı yuvarlanma eğiliminde olabilir (kullanılan yuvarlama kuralına göre değişir).

2) Minimum değişim kuralı: Bu kural, özellikle eşit eşleşmelerde beklenen net ΔR'yi sistematik olarak oyuncu havuzunda yeniden dağıtır, genelde alt kademeye daha fazla fayda sağlar çünkü zayıf oyuncuların galibiyetleri daha sık "sürpriz" sayılarak +1 alır.

3) Eşleştirme davranışı: Küçük liglerde tekrar eden maçlar, benzer ratingli oyuncular arasındaki eşleşmeleri artırır. Bu, beklenen skorların 0.5 etrafında sıkışmasına ve ΔR'nin küçülmesine neden olur; yuvarlama ve minimum kuralının etkisi ise göreli olarak daha büyük olur.

Pratik etkiler: Lig dengesi ve oyuncu sınıflandırması

Sezon sonunda biriken küçük sapmalar, oyuncu sıralamalarında haksız avantajlara neden olabilir. Örneğin analizde rastgele simülasyonla, +0.03 maç başına ortalama drift bir sezonda (ortalama 30 maç) ~+0.9 puanlık sistematik bir artışa yol açtı; bazı oyuncuların avantajı 2–3 puana kadar çıktı. Bu küçük ama tutarlı farklar ödül, terfi ve görünürlük kararlarını etkileyebilir.

Öneriler: Nasıl düzeltiriz?

  • İç hesaplamada kesirli puan tutun: Kullanıcı arayüzünde tam sayı gösterilse bile sunucuda kesirli puan (float) saklayın. Böylece yuvarlama hataları birikmez.
  • Yuvarlama yerine periyodik yuvarlama: Her maç sonrası yuvarlamak yerine sezon sonu veya belirli dönemlerde yuvarlama yapın; bu, küçük dalgalanmaların dengelenmesini sağlar.
  • Minimum değişim kurallarını kaldırın veya azaltın: Eğer amaç küçük liglerde motivasyonu korumaksa alternatif teşvikler kullanın; puan sistemiyle oynamak yerine "başarı rozetleri" gibi ödüller düşünülebilir.
  • Hassasiyeti artırın (K ayarı): Eşleşmelerin dağılımına göre dinamik K politikası uygulayın; sık sık eşit ELO'lu oyuncularla maç yapan liglerde K'yi hafifçe artırmak küçük değişikliklerin daha doğru yansımasını sağlar.
  • Monte Carlo tabanlı düzeltme: Lig kurallarının yarattığı ortalama yuvarlama sapmasını simüle edin ve gerçek ΔR'den bunun beklentisini çıkararak düzeltme uygulayın.
  • Alternatif modeller: Glicko-2 veya TrueSkill gibi sistemler belirsizliği ve hata payını daha doğrudan modelleyerek yuvarlama etkilerini azaltır.

Uygulanabilir kısa düzeltme önerisi (pseudocode)

// Her maç sonrası
float delta = K * (S - E); // kesirli değişim
playerA.rating += deltaA; playerB.rating += deltaB; // sakla kesirli olarak
// UI için gösterim: Math.round(rating) veya floor gibi gösterim yap

Sonuç

Küçük liglerde ELO uygulamalarındaki yuvarlama ve minimum puan değişimi gibi pratik kararlar, görüldüğünden daha büyük etkiler yaratabilir. 10.000 maçlık analizimiz, bu kuralların küçük ama tutarlı driftlere yol açtığını ve bazı grupları sistematik olarak avantajlı çıkardığını gösterdi. En sağlıklı yaklaşım, arka planda kesirli hesap tutmak, yuvarlamayı sınırlamak ve K ile ilgili dinamik politikalar uygulamaktır. Daha sofistike ihtiyaçlar için Glicko-2 gibi modelleri değerlendirmek faydalı olacaktır.

Özet öneriler: (1) Kesirli puan sakla, (2) Minimum değişim kuralını gözden geçir, (3) Yuvarlamayı periyodik yap, (4) Dinamik K veya alternatif rating sistemi kullan.