The Glicko rating system and Glicko-2 rating system are methods of assessing a player's strength in zero-sum two-player games. The Glicko rating system was invented by Mark Glickman in 1995 as an improvement on the Elo rating system, and initially intended for the primary use as a chess rating system. Glickman's principal contribution to measurement is "ratings reliability", called RD, for ratings deviation.

Overview 
Mark Glickman created the Glicko rating system in 1995 as an improvement on the Elo rating system.

Both the Glicko and Glicko-2 rating systems are under public domain and have been implemented on game servers online like Pokémon Showdown, Pokémon Go, Lichess, Free Internet Chess Server, Chess.com, Online Go Server (OGS), Counter-Strike: Global Offensive, Quake Live, Team Fortress 2, Dota 2, Dota Underlords, Guild Wars 2, Splatoon 2 and 3, Dominion Online, TETR.IO, and competitive programming competitions.

The Reliability Deviation (RD) measures the accuracy of a player's rating, where the RD is equal to one standard deviation. For example, a player with a rating of 1500 and an RD of 50 has a real strength between 1400 and 1600 (two standard deviations from 1500) with 95% confidence.  Twice (exact: 1.96) the RD is added and subtracted from their rating to calculate this range. After a game, the amount the rating changes depends on the RD: the change is smaller when the player's RD is low (since their rating is already considered accurate), and also when their opponent's RD is high (since the opponent's true rating is not well known, so little information is being gained).  The RD itself decreases after playing a game, but it will increase slowly over time of inactivity.

The Glicko-2 rating system improves upon the Glicko rating system and further introduces the rating volatility σ. A very slightly modified version of the Glicko-2 rating system is implemented by the Australian Chess Federation.

The algorithm of Glicko

Step 1: Determine ratings deviation 

The new Ratings Deviation () is found using the old Ratings Deviation ():

where  is the amount of time (rating periods) since the last competition and '350' is assumed to be the RD of an unrated player. If several games have occurred within one rating period, the method treats them as having happened simultaneously. The rating period may be as long as several months or as short as a few minutes, according to how frequently games are arranged. The constant  is based on the uncertainty of a player's skill over a certain amount of time. It can be derived from thorough data analysis, or estimated by considering the length of time that would have to pass before a player's rating deviation would grow to that of an unrated player. If it is assumed that it would take 100 rating periods for a player's rating deviation to return to an initial uncertainty of 350, and a typical player has a rating deviation of 50 then the constant can be found by solving
 for .

Or

Step 2: Determine new rating 

The new ratings, after a series of m games, are determined by the following equation:

where:

 represents the ratings of the individual opponents.

 represents the rating deviations of the individual opponents.

 represents the outcome of the individual games. A win is 1, a draw is , and a loss is 0.

Step 3: Determine new ratings deviation 
The function of the prior RD calculation was to increase the RD appropriately to account for the increasing uncertainty in a player's skill level during a period of non-observation by the model. Now, the RD is updated (decreased) after the series of games:

Glicko-2 algorithm 
Glicko-2 works in a similar way to the original Glicko algorithm, with the addition of a rating volatility  which measures the degree of expected fluctuation in a player’s rating, based on how erratic the player's performances are. For instance, a player's rating volatility would be low when they performed at a consistent level, and would increase if they had exceptionally strong results after that period of consistency. A simplified explanation of the Glicko-2 algorithm is presented below:

Step 1: Compute ancillary quantities 
Across one rating period, a player with a current rating  and ratings deviation  plays against  opponents, with ratings  and RDs , resulting in scores . We first need to compute the ancillary quantities  and :

 

where

Step 2: Determine new rating volatility 
We then need to choose a small constant  which constrains the volatility over time, for instance  (smaller values of  prevent dramatic rating changes after upset results). Then, for

we need to find the value  which satisfies . An efficient way of solving this would be to use the Illinois algorithm, a modified version of the regula falsi procedure (see  for details on how this would be done). Once this iterative procedure is complete, we set the new rating volatility  as

Step 3: Determine new ratings deviation and rating  
We then get the new RD

and new rating

These ratings and RDs are on a different scale than in the original Glicko algorithm, and would need to be converted to properly compare the two.

See also

 Chess rating system

References

External links 
 Professor Glickman's Glicko-Website
 TrueSkill  rating system by Microsoft borrows many ideas of Glicko.
 forwardloop/glicko2s Glicko-2 implementation for the JVM
 RobKohr/glicko JavaScript Glicko-2 implementation.
 mmai/glicko2js Client side javascript and node.js Glicko-2 implementation
 deepy/glicko2 Python Glicko-2 implementation.
 sublee/glicko2 Python Glicko-2 implementation.
 PlayerRatings R Glicko implementation by Alec Stephenson and Jeff Sonas.
 scala-glicko2 Scala Glicko-2 implementation.
 dimos/glicko2 Glicko-2 implementation for  Scala and Scala.js

Chess in Australia
Chess rating systems
글리코 평점 시스템 및 글리코-2 평점 시스템은 체스 및 바둑과 같은 2인 게임에서 플레이어의 실력을 평가하는 방법이다. 엘로 등급 시스템을 개선하기 위해 Mark Glickman에 의해 발명되었으며 처음에는 체스 평점 시스템에 주로 사용되었다. 측정에 대한 Glickman의 주요 기여는 RD(Ratings Deviation, 평점 편차)라는 "평점 신뢰도"의 도입이다.

개요 
글리코 및 글리코-2 평점 시스템은 모두 공개 도메인(public domain)에 있으며 온라인 게임 서버 (예: Pokémon Showdown, Lichess, Free Internet Chess Server, Chess.com, OGS(Online Go Server), 카운터-스트라이크: 글로벌 오펜시브, 팀 포트리스 2, 도타 언더로드, 길드워 2, 스플래툰 2, Dominion Online, TETR. IO, Gods Unchained ), 경쟁 프로그래밍 대회 등에서 사용된다. 시스템에 사용된 공식은 Glicko 웹사이트에서 찾을 수 있다.

RD는 플레이어 평점의 정확도를 측정하며, 하나의 RD는 하나의 표준 편차와 같다. 예를 들어, 등급이 1500이고 RD가 50인 플레이어는 95% 신뢰로 1400에서 1600(1500에서 표준 편차의 2배) 사이의 실제 실력을 갖는다. 이 범위는 평점에서 RD의 2배(정확히는 1.96배) 더하고 빼서 계산한다. 게임 후 평점 변경량은 RD에 따라 다른데, 플레이어의 RD가 낮을 때(자신의 평점이 이미 정확한 것으로 간주되기 때문에) 또는 상대의 RD가 높을 때(상대방의 실제 평점이 정확하지 않기 때문에 게임 결과로 얻는 정보가 거의 없기 때문에) 변화가 적다. RD 자체는 게임을 한 후 감소하지만, 비활성 시간이 지날수록 서서히 증가한다.

글리코-2 평점 시스템은 글리코 평점 시스템을 개선하고 평점 변동성 σ를 추가로 도입한다. 글리코-2 평점 시스템의 아주 약간 수정된 버전은 호주 체스 연맹에 의해 구현되었다.

글리코 알고리즘

1단계: 등급 편차 결정 
새로운 등급 편차 는 이전 등급 편차 로부터 얻는다.

이때 는 마지막 대회 이후부터 흐른 시간(평가 기간)이며, 평가되지 않은 플레이어의 RD는 350으로 가정한다. 하나의 평가 기간 내에 여러 게임이 발생한 경우 동시에 발생한 것으로 처리한다. 평가 기간은 게임을 얼마나 자주 편성하느냐에 따라 길게는 몇 개월, 짧게는 몇 분 정도로 짧게도 사용할 수 있다. 상수 는 일정 시간 동안 측정된 플레이어의 기술의 불확실성을 기반으로 정해진다. 이는 철저한 데이터 분석으로부터 계산하거나, 또는 플레이어의 등급 편차가 등급이 지정되지 않은 플레이어의 등급 편차로 증가하기까지 경과해야 하는 시간을 고려하여 추정할 수 있다. 예를 들어, 플레이어의 평점 편차가 초기 불확실성 350으로 되돌아가는데 100 평가 기간이 걸린다고 가정하고 일반적인 플레이어의 평점 편차가 50인 경우, 를 풀어를 얻을 수 있다.

2단계: 새 평점 결정 
일련의 게임을 회 진행한 후 새로운 평점은 다음 방정식에 의해 결정된다.

식에 사용되는 각 변수의 값은 다음과 같이 결정된다.

는 각 상대의 평점을 나타낸다.

는 각 상대의 등급 편차를 나타낸다.

는 각 게임의 결과를 나타내고, 승리는 1, 무승부는 , 패배는 0이다.

3단계: 새로운 등급 편차 결정 
1단계에서의 RD 계산의 기능은 모델에 의해 관찰되지 않는 기간 동안 플레이어의 기술 수준에서 증가하는 불확실성을 설명하기 위해 RD를 적절하게 증가시키는 것이었다. 3단계에서는 일련의 게임 후에 RD를 갱신(감소)한다.

글리코-2 알고리즘 
글리코-2는 원래 글리코 알고리즘과 유사한 방식으로 작동하고,  플레이어의 경기력이 얼마나 불규칙한지에 따라 플레이어의 평점이 예상되는 변동 정도인 평점 변동성 가 추가되었다. 예를 들어, 플레이어의 평점 변동성은 일관된 수준의 실력을 보일 때 낮을 것이고, 그 일관성을 갖는 기간 후에 예외적으로 강력한 결과를 얻을 때 증가할 것이다. 글리코-2 알고리즘에 대한 간략한 설명은 다음과 같다.

1단계: 보조량 계산 
한 평가 기간 동안, 현재 평점이 이고 평점 편차가 인 플레이어가, 평점이 이고 평점 편차가 인 상대 와 게임을 하여 결과적으로 점수 를 얻었다고 가정한다. 먼저 보조량 , 를 계산한다.

식에서 쓰인 함수는 다음과 같다.

2단계: 새로운 평점 변동성 결정 
시간 경과에 따른 변동성을 제한하는 작은 상수 를 선택한다. 예를 들어, 를 선택할 수 있다. 가 작을수록 결과가 뒤집혔을 때 급격한 평점 변화를 막는다. 함수

에 대해, 를 만족하는 값 를 찾는다. 이를 해결하는 효율적인 방법은 regula falsi 절차의 수정된 버전인 Illinois 알고리즘을 사용하는 것이다. 이 반복 절차가 완료되면 새로운 등급 변동성을 으로 설정한다.

3단계: 새로운 평점 편차 및 평점 결정 
플레이어는 새로운 평점 편차와 평점을 얻는다.

이러한 평점과 평점 편차는 기존의 글리코 알고리즘과 다른 척도에 있으며, 둘을 적절하게 비교하려면 변환 과정을 거쳐야 한다.

같이 보기 

 체스 평가 시스템

참고 문헌

외부 링크 
 Glickman 교수의 Glicko-웹사이트
 Microsoft의 TrueSkill  등급 시스템은 Glicko의 많은 아이디어를 차용합니다.
 forwardloop/glicko2s JVM용 Glicko-2 구현
 RobKohr/glicko JavaScript Glicko-2 구현.
 mmai/glicko2js 클라이언트 측 javascript 및 node.js Glicko-2 구현
 deepy/glicko2 Python Glicko-2 구현.
 sublee/glicko2 Python Glicko-2 구현.
 Alec Stephenson과 Jeff Sonas의 PlayerRatings R Glicko 구현.
 scala-glicko2 Scala Glicko-2 구현.
 dimos/glicko2 Scala 및 Scala.js를 위한 Glicko-2 구현

체스 등급 제도