ランキング規程 解説

愛知県選手団では2016年度の全日本リレーより 選手選考にランキングを使用します。 このランキングは LapCenterに掲載されている膨大な成績データを統計的に処理することにより、 全ての選手の実力を評価・比較するものです。

これまでにもランキング制度はいくつか考案されてきましたが、 それらは基本的に前もって指定された特定の大会・クラスの参加者のみを 対象にしたものでした。 今回導入するランキング制度はエリート選手から小学生・お年寄りまで、 毎週のように大会に参加している方から2,3年に1度しか大会に参加しない方まで、 BクラスやNクラスの参加者も含め、 非常に広範な選手層に対してランク付けを行うものです。 そのために独自のアルゴリズムを考案しました。


ランキングの考え方

はじめに、次のような例を考えてみましょう。
大会クラス選手成績
全日本大会 M21E 優勝者90分
Aさん99分
昇竜杯 R1 Aさん40分
Bさん60分
名椙大会 M50A Bさん50分
Cさん65分
全日本ミドル M60A Cさん40分
Dさん48分

さて問題です。もし日本全体のトップとDさんが同じコースを走ったとしたら どんなタイム比になると期待されるでしょうか?

落ち着いて順に考えてみましょう。
ということは
となります。



つまり、もし同じコースを走ったとしたら Dさんは日本全体のトップの2.5倍前後の時間がかかると予想されます。 例えば日本全体のトップが20分で回れるコースを Dさんはおおよそ50分くらいかけて回れる程度の実力を持っていると判断できるわけです。

「ランキング規程」ではこのような選手の実力を 「ポイント」という尺度を用いて評価します。 大雑把に言えばポイントとは日本全体のトップとの期待されるタイム比の 逆数を取って100を掛けたようなもので、例えば

     Dさんのポイント=(1÷2.574)×100=38.8500

と計算できます。 このポイントの高い順に選手を並べたのがランキングです。

もちろん同じ選手であってもその日の体調やレースの出来不出来によって 成績は変わってきますので、上の例のように少数の大会の記録を使って 少数の選手との比較によってポイントを計算しても 正確な実力の評価にはなりません。 実際のランキング計算ではコンピュータを使って上の例と同じような計算を大量に行い、 各選手のポイントを求めています。


lapcombat2ファイル

膨大な成績データを処理するにあたり、 成績を人間がいちいち手作業で入力していては大変な時間と労力がかかり、 入力ミスをするリスクも高くなります。

そこでランキング計算のコンピュータプログラムでは lapcombat2ファイルを編集無しでそのまま読み込ませて処理する方式にしています。

lapcombat2ファイルというのはLAP解析に用いられるデータファイルのことです。 LapCenterで「記録一覧/LAP解析」をクリックすると 「LapCombat2用ファイル」というボタンがありますね。 これをクリックするとlapcombat2ファイルを入手できます。



このファイルはlapcombat2というソフトウェアを使わないと 見れないと思っている人もいるかもしれませんが、 中身はただのテキストファイルです。 Windowsの「メモ帳」などで開けば中身を見れます。 そこには例えば次のようなデータが入っています。

(2016/4/24の岡崎市大会のlapcombat2ファイルから一部を抜粋)
<class name="M21A"  length="4200" climb="230"  controls="12" course="1"  filename="1">
<runner name="細川 知希" id="208289"  ecard="208289" club="OLCルーパー"  start="11:03:00" result="0:42:26"  rank="1" sex="m">

上の例で1行目の「<class name="M21A"…>」は 「ここから後がM21Aクラスの成績です」ということを示しています。 「length="4200"」はコース距離が4200mであることを、 「climb="230"」は登距離が230mであることを示しています。 ランキング計算にとって重要なのが「course="1"」という部分で、 この情報からM21Aクラスのコース番号が1であることが分かります。 ランキング計算ではこのコース番号を使ってコース毎に選手間の成績を比較します。 クラス毎に比較するよりも多くの選手を一度に比べられるからです。

2行目の「<runner name="細川 知希"…>」は 「ここから後が細川知希選手の成績です」ということを示しています。 いろいろな情報が書かれていますが、主なものとしては 「start="11:03:00"」がスタート時刻を、 「result="0:42:26"」が競技成績(所要時間)を、 「 rank="1"」が順位を示しています。 ランキング計算に主に使用するのは所要時間です。 スタート時刻は一つのイベントに同じ選手の名前が2度登場する場合に どちらが2度目の出走かを判定するのに使用します。 順位はランキングには使いませんが、 参考記録の判定のために順位をチェックします。 もし「rank="参"」となっていたら参考記録です。


使用するデータ

過去5年間に開催されたオリエンテーリングの大会・練習会等の成績データを 基本的には全て使用します。 但し、以下の条件を付けています。

大会だけでなく練習会などの成績も使用し、 しかも5年間という長い集計期間にしているのは、 全ての選手のランキングを求める必要があるからです。 全日本リレー出場希望者の中には長くオリエンテーリングをやっていない人、 参加者数の極端に少ないクラスに出場することが多く他選手との成績比較が難しい人、 オリエンテーリングを始めたばかりでまだ出場した大会数も少ない人など、 最近の主要大会のみを使用したのでは実力の評価が難しい選手もおられます。 そのような選手を含めて全員に確実にランキングを付与するために 長い期間の膨大な数のイベントを用いています。

愛知県の選手だけでなく、全ての選手の成績をランキング計算に使用します。 成績を比較する相手が多い方が より正確な実力の評価を出来ると考えられるからです。

ランキング規程の該当箇所

2. 選考日から遡って5年以内(選考日を含み、選考日のちょうど5年前は含まない) に日本国内で日中に開催され、 LapCenterからlapcombat2形式のファイルを入手可能な フットOかつポイントO形式の全てのイベントをランキングの計算に用いる。
3. これらのイベントに出場し完走した全ての選手(愛知県選手に限らない) の競技成績をランキングの計算に用いる。

「選考日」というのは実際に選手選考を行う日のことではなく、 愛知県選手権が開催された日を指します。 2016年の場合で言えば8月7日が選考日となります。 このことは「ランキング規程」には書かれていませんが 「選手選考規程」の方に書かれています。

「選考日を含み、選考日のちょうど5年前は含まない」とありますので、 ランキング計算に含めるイベントの期間は2011/8/8〜2016/8/7となります。


ランキングの計算式 その1

冒頭の例ではDさんの実力を評価するために 「日本のトップとAさんのタイム比」「AさんとBさんのタイム比」 「BさんとCさんのタイム比」「CさんとDさんのタイム比」を使いました。

実際のランキング計算でもまずはこの 「日本のトップとAさんのタイム比」に相当する計算を行い、 「Aさん役」を大量生産します。

冒頭の例では全日本大会を使いましたが、 実際のランキング計算では全日本に限らず多数のイベントを使用します。 具体的には
という条件を満たすイベントを全て使います。

これらのイベントで最上位コースの上位10%以内の順位に入った選手を 日本のトップに近い実力を有する選手であると見なし、 それらの選手とのタイム比をもとに、 その「最上位コース」を走った各選手のポイントをひとまず算出します。

このポイントはもちろん最終的なランキングに使うものではなく、 このポイントを出発点にして次の計算を行い、後から修正を加えていきます。

ランキング規程の該当箇所

6(a) はじめに各イベントの最上位コースのみの競技成績を用いて、 それらのコースの完走者のポイントの初期値を
     pi,jk=100× Ti,jtop10÷ Ti,jk         (1)
により計算する。 但し最上位コースの完走人数が30名以上のイベントについてのみ この計算を行うものとする。 また後述する「カテゴリー」がCのイベントについてはこの計算を行わない。 ここでTi,jkは イベントi、コースjにおける選手kの所要時間、 Ti,jtop10は イベントi、コースjの完走者の上位10%(端数切り捨て)の平均所要時間、 pi,jkは イベントi、コースjにおいて選手kに入るポイント。


ポイントの重み付き平均

多数の大会について上の計算を行いますので、 同じ選手であっても「日本のトップとのタイム比」が 複数できてしまいます。

このままでは次の計算(「AさんとBさんのタイム比」の計算)をする上で都合が悪いので、 次の計算に進む前に各選手ごとに「日本のトップとのタイム比」を平均します。

例えばある選手(「Aさんその1」)が全日本大会とインカレで最上位コースを走り、 上位10%平均とのタイム比は全日本が1.2倍、インカレが1.25倍だったとしましょう。 このとき
となり、平均すると77.5です。この77.5を「Aさんその1」のポイントとして 次の計算に使うわけです。

実際には単純平均ではなく重み付き平均を使っています。 何故ならば、同じ「日本のトップとのタイム比」でも、 インカレや全日本のような超重要レースでのタイム比もあれば、 あまり重要ではないレースのタイム比もあり、 同じ重みで平均するのは適当ではないと考えられるからです。

具体的にどんな重みを使うかは後ほど解説します。

ランキング規程の該当箇所

6(b) 各選手kについてポイントpi,jkの重み付き平均を
     pavek= [∑i,jwi,jpi,jk]/ [∑i,jwi,j]         (2)
により計算する。 pavekは選考日と同じ月日を区切りとする1年単位で 計5つの値を別々に算出する(選考日と同じ月日のイベントは古い方の期間に含める)。 ここでwi,jはイベントi、コースjの重み係数。

「選考日と同じ月日を区切りとする1年単位で…」の部分については 後ほど説明します。


ランキングの計算式 その2

続いて「AさんとBさんのタイム比」に相当する計算を行います。

最上位コース以外でもこの計算を実行できることに注目してください。 というのは、過去1年間にたった一度でも最上位コースを走ったことがある人は 全員が「Aさん役」となり、 その中には日頃はもっと下位のコースを走っている選手もいるからです。

下の例をご覧ください。 ここでは4つの大会での7人の選手の出場クラスを示しています。

「Aさん1」や「Aさん2」は日頃から最上位クラスを走っている選手で、 もちろん「Aさん役」になります。

注目していただきたいのは「Aさん3」です。 女子選手ですので最上位コースを走ることはあまりありません。 しかし性別でクラスが分かれていない昇竜杯で最上位のR1を走ったので 「Aさん役」になれました。

同様に、昇竜杯でR1やR2(R1と同一コース)を走った 「Aさん5」(日頃はMASに出場)や「Aさん6」(日頃はM50Aに出場)も 「Aさん役」になっています。

また年齢別に細かくクラスが分かれていない根の上高原大会で MAを走った「Aさん4」(日頃はM18Aに出場)、 「Aさん7」(日頃はM20Aに出場)も「Aさん役」になれます。

こうした様々な「Aさん役」を作ることで 女子選手や高齢者、中学・高校生などのクラスでも 「AさんとBさんのタイム比」の計算が可能になります。



「AさんとBさんのタイム比」を計算できれば、 Aさんのポイントが既に求まっていますので、 ポイントとタイム比の掛け算によってBさんのポイントを計算できます。 つまり

     Bさんのポイント=Aさんのポイント×Aさんのタイム÷Bさんのタイム

のような計算を行うわけです。

ということは、AさんのポイントとタイムがAさんの実力を的確に反映したものでなければ Bさんのポイントも不正確になってしまうということです。

特に「Aさん役」が一人しかいない場合には、Aさんのその日の調子に大きく左右され、 Bさんの実力をこのやり方で的確に評価することができません。 そこでランキング規程では 完走者の上位50%以内の順位に入った「Aさん役」が3名以上いるコースでのみ 「AさんとBさんのタイム比」に相当する計算を行うこととしています。 上位50%以内に限定しているのは、そのレースで調子が悪かった人を 基準にはしないという意図です。

ランキング規程の該当箇所

6(b) 次にこのpavekを用いて、 各イベントi、コースjについて
     pi,jk= pi,jtop50 Ti,jtop50/ Ti,jk         (3)
により各選手のポイントpi,jkを修正する。 但しそのコースの完走者の上位50%(端数切り捨て)に入り かつポイントpavekを有する選手(基準選手)が 3名以上いるイベント、コースについてのみこの計算を行うものとする。 Ti,jtop50は イベントi、コースjにおける基準選手の平均所要時間、 pi,jtop50はイベントiが含まれる期間における それらの選手のpavekの平均値である。

以下で3つほど例を示します。

(例1)
この場合、「Bさんその1」のタイムは「Aさん役」の平均タイムの1.25倍ですので ポイントは80×(1÷1.25)=64となります。


(例2)
この場合、「Bさんその2」のタイムは「Aさん役」の平均タイムの0.9倍ですので、 「Bさんその2」のポイントは54×(1÷0.9)=60となります。

この例のように、「Aさん役」の人数や「上位半分」など全て クラス別ではなくコース別の処理になります。


(例3)
この場合、「Aさん役」の人数が基準に満たないため、 この大会の成績を使った「Bさんその3」のポイント計算は行いません。


Aさん役の実力評価は1年区切りで

「AさんとBさんのタイム比」を使ってBさんの実力を評価するときに 気をつけなければならないことがもう一つあります。 基準にするAさんの実力が時間とともに大きく変化しうるということです。

ベテランの方であればまだ変化は小さいかもしれませんが、 特に大学生などは1年経てばまるで別人のように実力が変わります。 それを考慮して、Aさんのポイントを 5年間全部で平均するのではなく1年毎に区切って別々に平均し、 イベントの含まれる期間内でのAさんの平均ポイントを使って Bさんのポイントを算出するという方式を採っています。

具体的な例で説明しましょう。 Aさんは大学4年生で、高校時代にはオリエンテーリングをやっていなかったとします。 Bさんは3年前にAさんと同じコースを走ったことがあり、 その競技成績を使ってBさんのポイントを計算したいとしましょう。 3年前と言えばAさんは1年生ですから、 最近の大会の競技成績を見て3年前のAさんの実力を評価するのは不適切です。 そこで、1年生の頃のAさんの競技成績だけを使って当時のAさんの平均ポイントを求め、 これを基準としてBさんのポイントを計算するという手順を踏むわけです。



それではどの期間で分割するかというと、 これが少し前に登場した 「選考日と同じ月日を区切りとする1年単位」 になります。 例えば2016年度の全日本リレーの選考の場合、選考日が8月7日ですので、 2015/8/8〜2016/8/7のAさんの平均ポイント、 2014/8/8〜2015/8/7のAさんの平均ポイント、… というように期間を分けて平均ポイントを計算します。 そして、例えば2015/8/1のイベントの成績を使ってBさんのポイントを求める場合には 2014/8/8〜2015/8/7のAさんの平均ポイントを使用します。


計算の繰り返し

(2)(3)式の計算は全部で5回繰り返します。

ランキング規程の該当箇所

6(b) (2)(3)式の計算を計5回反復する。

これには目的が2つあります。


目的その1:「BさんとCさんのタイム比」に相当する計算
(3)式を初めて用いるときには「Aさん役」(最上位コースを走ったことのある人) がいるコースでしかタイム比を計算できません。 これが「AさんとBさんのタイム比」の計算に相当します。

2度目に(3)式を用いるときには、「Aさん役」がいなくても 「Bさん役」(「最上位コースを走ったことのある人」と同じコースを走ったことのある人) がいるコースであれば計算できます。

3度目に(3)式を用いるときには、「Aさん役」「Bさん役」がいなくても 「Cさん役」(「『最上位コースを走ったことのある人』と同じコースを走ったことのある人」 と同じコースを走ったことのある人)がいるコースであれば計算できます。

このように計算を繰り返すことでポイントを計算できる選手がどんどん増えていきます。


目的その2:計算精度の向上
(3)式の計算は全ての選手が対象ですので、 「Aさん役」自身のポイントもこの(3)式を使って毎回修正します。

(1)式の計算では最上位コースの上位10%に入った選手が ほぼ日本のトップに相当すると仮定しました。 この仮定が正しくなかったとしても (例えば速い選手がほとんど誰も参加していない大会があったとしても)、 (3)式を繰り返し用いてポイントの修正を重ねていけば 「Aさん役」のポイントがより適切なものになっていくと期待できます。


ポイントの重み付け

各選手ごとにポイントを平均する際の重み((2)式)について解説します。

ランキング規程ではイベントごとに決まる3種類の重みと、 コースごとに決まる1種類の重み、計4つの重みを使用します。

これら4つの重みの掛け算をした値が (2)式のwi,jとなります。

ランキング規程の該当箇所

9. 前節までの各計算式において、 重み係数wi,jは以下の全ての因子の積により与える。


1. イベントの重要度に応じた重み
イベントをカテゴリーA〜Cに分類します。

ランキング規程の該当箇所

9(a) イベントの重要度に応じた重み係数。 イベントを以下の3種類にカテゴリー分けし、 カテゴリーAを1.1、カテゴリーBを1.0、カテゴリーCを0.9とする。
カテゴリーA: 全日本 (スプリント・ロング・ミドル・リレー種目)、インカレ (同上)、 インターハイ (個人戦・団体戦)、愛知県選手権。
カテゴリーB: 上記以外の大会。
カテゴリーC: 会内杯、対抗戦、練習会、合宿、 大会の追加練習メニュー(lapcombat2ファイルが別になっている場合)、普及イベント。

なお、ランキング規程では「公認大会」は特別扱いしません。 過去5年間の成績データを集計するに当たり、 昔の大会になるとどれが公認大会だったか情報が残っておらず 分からない場合があるからです。

「大会」と「練習会」の区別は主催者の発表に基づきます。 実態がどうあれ、イベント主催者が「大会」と称していれば「大会」に、 主催者が「練習会」と称していれば「練習会」に分類します。 判断に迷ったときはイベントの公式ホームページを調べることもありますが、 基本的にはlapcombat2ファイルにおけるイベント名をもとに判断します。


2. イベントの規模に応じた重み
一言で「大会」と言っても質はピンからキリまでです。 プロマッパーやGPS等をつかってしっかり地図調査を行い、 広く宣伝して全国から多数の参加者を集め、 競技規則に則って行われる競技性の高い「大会」もあれば、 実態はほとんど練習会と変わらないローカルイベントもあります。

こうしたイベントの「質」を評価するための指標として、 ランキング規程ではイベントの参加者数を使用します。

参加者数が多いイベントは多数のオリエンティアから支持を集めたイベントであり、 主催者としても自信を持って広く大々的に宣伝して参加者を集めたイベントですから、 質の高いイベントと見なして重みを高くします。

ランキング規程の該当箇所

9(b) イベントの規模に応じた重み係数。 完走者数500名以上のイベントを1.1、200∼499名のイベントを1.05、 100∼199名のイベントを1.0、50∼99名のイベントを0.95、 49名以下のイベントを0.9とする。


3. イベントの開催時期に応じた重み
ランキング計算には過去5年分の競技成績を使用しますが、 あまり昔の成績は今現在の選手の実力とは異なる可能性が高いので 重みを下げます。

ランキング規程の該当箇所

9(c) イベント開催時期に応じた重み係数。 選考日から遡って6ヶ月以内のイベントを1.0、 6ヶ月を超え1年以内のイベントを0.95、 1年を超え2年以内のイベントを0.9、 2年を超え3年以内のイベントを0.8、 3年を超え4年以内のイベントを0.7、 4年を超え5年以内のイベントを0.6とする。


4. コースの基準選手数に応じた重み
「AさんとBさんのタイム比」をもとにBさんのポイントを計算する場合、 「Aさん役」の人数が多いほどBさんのポイントは正確なものになります。 同様に「BさんとCさんのタイム比」をもとにCさんのポイントを計算する場合、 「Bさん役」の人数が多いほどCさんのポイントは正確なものになります。

この「Aさん役」や「Bさん役」のことをランキング規程では「基準選手」と呼んでいます。 基準選手数の少ないコースではポイントがあまり正確なものにならないと思われるため、 重みを下げます。

ランキング規程の該当箇所

9(d) コースの基準選手数に応じた重み係数。 基準選手10名以上なら1.0、6〜9名なら0.95、3〜5名なら0.9、1〜2名なら0.8とする。 (2)式の1回目の計算では1.0とする。


最終的なポイントには「良い結果」を採用

(2)式によって計算されるのは、 参加した全てのイベントについての各選手のポイントの平均値です。 これは各選手の実力を客観的に評価するのに適した指標ではあるのですが、 この平均値をそのままランキングに使ってしまうと 選手の大会参加意欲を削ぐ恐れがあります。

こんな状況を考えてみましょう。 ある選手(Eさん)が3月のある大会で会心のレースをして、 Eさんとしてはそれ以上望みようもないくらいの好成績を出したとしましょう。 このEさんは4月から8月(全日本リレーの選考日)までの間、 別の大会に参加すべきでしょうか、それとも参加を控えるべきでしょうか。

もしもポイントの平均値がランキングとなるのであれば、 Eさんにとっては4月〜8月の大会参加を控えた方が得策ですね。 何故ならば3月の「会心のレース」によってせっかく高いポイントを獲得したのに、 4月〜8月に大会に参加して「ごく普通のレース」を繰り返せば ポイントの平均値が下がってしまうからです。



愛知県選手団はオリエンテーリング活性化のために存在するものですので、 このEさんの例のように大会参加を控えた方が選考で有利になるという状況を 作るべきではありません。

そこでランキング規程では、 大会に参加しない方が得策という状況が生まれないように、 悪い成績には目をつぶって良い成績だけを見て最終的なランキングを決める というスタンスを採っています。

具体的には過去5年間に参加し完走した全イベントのうち、 ポイントが高い方から順に上位4つの平均をその選手の最終的なポイントとします。

ですから、ひどいレースを何度やろうともランキングには影響せず、 5年間のうちにたった4回「会心のレース」をするだけでランキングで上位に行けます。 先ほどのEさんの例のように大会参加を控えた方が得策というケースはまずもって考えられず、 むしろ大会にいっぱい参加するほど「会心のレース」をするチャンスも増えるので ランキングで上位に行ける可能性が高くなります。


最終ポイントと重み係数

一つ前の項目ではポイントの上位4つを最終的なランキングに使用すると書きましたが、 厳密にはポイント自体の上位4つではなく、 ポイントに重み係数(wi,j)を掛けた値の上位4つを使用します。 これは練習会や大昔の大会、参加者数の少ないローカル大会など、 あまり信頼性の高くないイベントでのポイントが 最終的なランキングに用いられることを なるべく避けるためです。

例を使って説明しましょう。 Fさんは過去5年間に7つのイベントに参加し、以下のポイントを獲得しました。
イベント ポイント 重み ポイント×重み ランキングに使用
大会1951.0 95
練習会1900.9 81
大会2851.0 85
大会3701.1 77
練習会2800.9 72 
大会4651.065 
練習会3600.954 

ポイントが高い順であれば「練習会2」が用いられるはずのところですが、 「ポイント×重み」の高い順に上位4つを用いるルールですので、 「練習会2」ではなく「大会3」が用いられます。

それでもなお「重み」の低いイベントが最終的なランキングに用いられてしまう場合、 重み付き平均の分母の計算式に改造を施して 最終的なランキングに用いられるポイント自体を低くします。 具体的には、「重み」が1.0未満のイベントが 最終的なランキングに用いられる場合、 分母のみそのイベントの「重み」を1.0で置き換えるという操作を行います。

上のFさんの例では、単純な重み付き平均であれば

     ポイント=(95×1.0+90×0.9+85×1.0+70×1.1)÷ (1.0+0.9+1.0+1.1)=84.5

となるところですが、分母のみ0.9を1.0で置き換えて

     ポイント=(95×1.0+90×0.9+85×1.0+70×1.1)÷ (1.0+1.0+1.0+1.1)=82.4390

をFさんのポイントとします。 分子の方は0.9を1.0で置き換えていないことに注意してください。

このような処理を行う理由を、もう一つ別の例を使って説明しましょう。 GさんとHさんの2人の選手を考えます。 日頃の大会の成績はGさんの方が上です。 しかしHさんは以下のような特殊事情で日頃の大会での実力よりも かなりポイントが高くなったイベントが4つありました。
GさんとHさん、それぞれのポイントの上位4つは以下のようになりました。
「ポイント×重み」の高い順 Gさん Hさん
ポイント重み ポイント重み
1番目 901.0 900.9
2番目 801.0 800.9
3番目 701.0 700.9
4番目 601.0 600.9

このとき、もし単純な重み付き平均を用いると
となります。 Hさんの場合、上位4つが全て練習会やローカル大会の成績ですので 重みを掛けてポイントを低くしているわけですが、 分母・分子の両方にこの重みが掛かって打ち消し合うために ポイントがGさんと同じになってしまいます。

こういうことを避けるため、 「重み」が1.0未満のときは分母のみ「重み」を1.0で置き換えるわけです。 分子は「重み」を置き換えずにそのまま使います。 そうすれば

     Hさんのポイント= (90×0.9+80×0.9+70×0.9+60×0.9)÷ (1.0+1.0+ 1.0+1.0)=67.5

となって、練習会やローカル大会でばかり良い成績を出しているHさんよりも 大きな大会で良い成績を出しているGさんの方がランキング上位になるわけです。

ランキング規程の該当箇所

7(a) ポイント計算済みイベントが計7つ以上ある選手については
     pfinalk= (1/W4)∑i,j(best4) [wi,jpi,jk]         (4)
により最終ランキングポイントを求める。 ここで∑i,j(best4)は []内の値の大きいものから順に上位4つの合計を表す。 W4はこれら4つのイベントのw'i,jの合計、 w'i,jwi,jと1.0のうちの 大きい方の値とする。


参加イベント数の少ない選手のランキング

これまでの計算は多数のイベントに参加している選手の場合の話です。 ポイントを計算できたイベントが6つ以下の選手の場合、計算方法が変わります。

「ポイントを計算できたイベント」という書き方にしているのは、 参加してもDISQであればポイントが付きませんし、 参加者数が1名だけのコースを走った場合もポイントを計算できません。 そのため「参加イベント数」ではなく 「ポイントを計算できたイベント」の数を使用します。 ランキング規程ではこれを「ポイント計算済みイベント」と呼んでいます。

ポイントを計算できたイベントの個数に応じて 最終的なランキングに使うイベントを次のように選びます。

しかしこれだけでは問題があります。 例えば過去5年間にたった一度だけしかオリエンテーリングに参加したことの無い選手がいて、 その1レースでとてつもなく良い成績を出したとしましょう。 いくら良い成績とは言ってもたった一度だけの記録です。 たまたまその日に非常に調子が良かっただけということも考えられます。

そこで、このような選手の実力を過大評価してしまわないように、 参加イベント数の少ない選手については 重み付き平均の分母に再び操作を施します。

ポイントを計算できたイベントが4〜6個の選手の場合、 重み付きポイントの上位3つを使用するわけですが、 その3イベントの重みの合計が3.1未満の場合は分母を3.1で置き換えます。 ポイントを計算できたイベントが2〜3個の選手(2つのイベントを使用)の場合には 分母が2.2未満であれば2.2で置き換え、 ポイントを計算できたイベントが1個の選手(1つのイベントを使用)の場合には 分母が1.3未満であれば1.3で置き換えます。

これも例を使って説明しましょう。 IさんとJさんはそれぞれ過去5年間に計6回オリエンテーリングに参加し、 「ポイント×重み」の上位3つは次のようになりました。

「ポイント×重み」の高い順 Iさん Jさん
ポイント重みポイント×重み ポイント重みポイント×重み
1番目 901.199 951.095
2番目 801.188 901.090
3番目 851.085 851.080

この場合、単純に重み付き平均を計算すると次のようになります。

Iさんのポイントについては分母が3.2となっています。 これはIさんのポイントがインカレや全日本などの重要レース、 あるいは最近の大きな大会の結果に基づくもので、 数は少なくてもポイントには十分に信頼性があると思われるため、 この85をIさんの最終的なポイントとします。

一方、Jさんのポイントは分母が3.0となっています。 これはJさんのポイントは数が少なく信頼性もイマイチということを表しています。 そこでJさんの実力を過大評価してしまわないように分母の3.0を3.1で置き換えます。 つまり

     Jさんのポイント= 270÷3.1=87.0968

となります。

このようにして参加イベント数の少ない選手の実力を 過大評価してしまうことを避けているわけですが、 結果として実力が過小評価になる可能性が高いです。 ランキングを上げるにはある程度の頻度で オリエンテーリングの大会や練習会などに参加していただくのが早道です。 不利な計算式が適用されるのはポイントを計算できたイベントが6つ以下の選手ですので、 5年間で7つ以上(年平均で1〜2回程度)オリエンテーリングに参加して完走していただければ 不利な計算式が用いられずに済みます。

この4月にオリエンテーリングを始めた新人の方の場合、 選考日(8月)までの期間で7つ以上のイベントに参加するのは難しいかもしれません。 でもご安心ください。 新人の方については「選手選考規程」の中で優遇措置を取ることで 不利にならないようにしています。

ランキング規程の該当箇所

7(b) ポイント計算済みイベントが4〜6個の選手については
     pfinalk= (1/W3)∑i,j(best3) [wi,jpi,jk]         (5)
により最終ランキングポイントを求める。 ここで∑i,j(best3)は []内の値の大きいものから順に上位3つの合計を表す。 W3はこれら3つのイベントのw'i,jの合計と 3.1のうちの大きい方の値とする。
7(c) ポイント計算済みイベントが2〜3個の選手については
     pfinalk= (1/W2)∑i,j(best2) [wi,jpi,jk]         (6)
により最終ランキングポイントを求める。 ここで∑i,j(best2)は []内の値の大きいものから順に上位2つの合計を表す。 W2はこれら2つのイベントのw'i,jの合計と 2.2のうちの大きい方の値とする。
7(d) ポイント計算済みイベントが1個の選手については
     pfinalk= (1/W1) [wi,jpi,jk]         (7)
により最終ランキングポイントを求める。 W1w'i,jと 1.3のうちの大きい方の値とする。


イレギュラーな記録の扱い

ペナ
ランキング計算プログラムではDISQ(ペナや途中棄権)は除いて計算を行います。 したがって、DISQを繰り返すとポイントが減点されるというようなことは特に無く、 最初から大会に申し込まなかったのと同じ扱いとなります。

ランキング規程の該当箇所

11. 失格・欠席についてはペナルティを課すのではなく、 大会にエントリーしなかった場合と同様に 記録自体が存在しないものとして処理する。


不成立
不成立についてはランキング計算に使用しないようにしています。 但し、大会公式ホームページなどをいちいちチェックすることはせずに lapcombat2ファイルおよびLapCenterの情報だけから判断します。 例えば2015/2/22の早大OC大会では クラス名の欄が「6M-1(不成立)」などとなっていますので、 このクラスは不成立であったと判断してランキング計算の対象から除いています。

ランキング規程の該当箇所

12. 競技不成立については該当するクラスをランキング計算の対象外とする。 但し競技不成立の情報はlapcombat2ファイルのみから取得するものとし、 他の情報源(大会公式ホームページ等)を辿ることはしない。


競技時間オーバー
競技時間オーバーの扱いは少々複雑です。 lapcombat2ファイルで記録が「DISQ」になっていれば ペナなどと同じく計算に使用せず、 所要時間が書かれていれば正規の記録と同様に使用します。

少し不自然な内容ではありますが、 膨大な成績データを人間が逐一チェックするのは作業時間的に困難であり、 lapcombat2ファイルを人手を介さずにコンピュータで処理するという前提で考えた結果、 現実的な妥協ラインとしてこのような扱いをすることにいたしました。

ランキング規程の該当箇所

13. 競技時間超過については lapcombat2ファイルにおいて記録がDISQになっている場合は失格扱いとし、 記録に所要時間が記載されている場合は正規の記録と同様に扱う。


参考記録と2度目の出走
参考記録および、一つのイベントの中での2度目以降の出走 (予選決勝方式のイベントを除く)は 所要時間を1.2倍して使用します。

但し、練習会などを中心に lapcombat2ファイルの「スタート時刻」が空欄になっている場合があります。 この場合はどれが2本目か判断できないので、 代わりにそのイベントの全ての記録のポイントを平均したものを 単一のポイントとして最終計算に使用します。

例えば、Kさんは過去5年間に計7回オリエンテーリングに参加して 以下のポイントを獲得したとしましょう。

イベント ポイント 重み ポイント×重み
大会1801.188
練習会1(コースa)900.981
大会2751.075
練習会2800.972
大会3701.070
練習会1(コースb)700.963
大会4551.055
練習会3200.918

注目していただきたいのは「練習会1」です。 コースaとコースbに出走しています。

ここで2つのケースを考えましょう。 1つ目はlapcombat2ファイルにスタート時刻の情報が入っており、 それをもとにコースbが1本目、コースaが2本目と判定できた場合です。 このときはコースaの記録を1.2倍して使用しますので、 ポイントとしては90÷1.2=75となります。

イベント ポイント 重み ポイント×重み
大会1801.188
大会2751.075
練習会2800.972
大会3701.070
練習会1(コースa)75 0.967.5
練習会1(コースb)700.963
大会4551.055
練習会3200.918

したがって最終的なポイントには 「大会1」「大会2」「練習会2」「大会3」が用いられ、

     Kさんのポイント=(88+75+72+70)÷(1.1+1.0+1.0+1.0)=74.3902

となります。

それでは「練習会1」でlapcombat2ファイルにスタート時刻が入っていなかった としたらどうなるでしょうか。 この場合はコースaとコースbの平均ポイントを使用するのですから、 次のデータセットを使ってポイントを計算することになります。

イベント ポイント 重み ポイント×重み
大会1801.188
大会2751.075
練習会2800.972
練習会1(コースa,bの平均) 80 0.9 72
大会3701.070
大会4551.055
練習会3200.918

このデータセットで上から4つ目までを使用しますので

     Kさんのポイント=(88+75+72+72)÷(1.1+1.0+1.0+1.0)=74.8780

となります。

最後に、スタート時刻の入っている記録と入っていない記録が 混在する場合はどうしたら良いでしょうか。 このようなことが起きやすい状況を考えれば扱いも自ずと決まります。 スタート時刻の入っている記録と入っていない記録が混在するのは、 大会と追加練習メニューのような組合せで起きやすいと思われます。 大会では主催者が気合を入れてきちんとスタート時刻を入れるけれども 追加練習の方は適当に扱うので手を抜いてスタート時刻を入れない、というわけです。 このような想定のもと、スタート時刻が入っていない方を後のスタートと 見なすようにしています。

ランキング規程の該当箇所

14. 参考記録および2度目以降の出走については所要時間を1.2倍したものを用いる。 但し予選決勝方式のイベントにおいては2度目以降の出走も正規記録として扱う。
2度目以降の出走はlapcombat2ファイルにおけるスタート時刻により判定する。 但しlapcombat2ファイルにスタート時刻が入力されていない場合は 全ての記録をひとまず正規記録として処理した上で、 最終ランキングポイントの計算(4-7式)において wi,jおよび wi,jpi,jkを それらの全記録による平均値で代用する。 一つのlapcombat2ファイル内でスタート時刻の入力されている記録と 入力されていない記録が混在する場合には、 スタート時刻が入力されていない記録を後の出走であると見なす。


同一人物の判定

lapcombat2ファイルをコンピュータで読み込んでランキングを計算するには ある大会での成績と別の大会での成績が同一人物のものかどうか、 の判定が必要になります。

ランキング計算のコンピュータプログラムでは、 同姓同名で漢字まで完全に一致する選手組合せは オリエンティアの中にいないだろうという仮定のもとで、 姓・名の漢字の完全一致をもって同一人物と判断します。

完全一致と言っても、「姓」と「名」の間のスペースの有無、 氏名の後に続く()書きの注釈、氏名全体が""で囲まれるケース についてはコンピュータの中で処理を行っています。 例えば「守屋舞香」と「守屋 舞香」と「守屋舞香(2本目)」と「"守屋舞香"」は 全て同一人物と見なされます。

しかし漢字が間違っている場合は別選手と見なされてしまいます。 実際にあった例として、東海高校の和佐田祥太朗選手が 何と2015年のインターハイ個人戦で「和佐田祥太」になっていました。 コンピュータは当然ながらこの選手を同一人物とは判定しません。 この場合に何が起きるかといいますと、 「和佐田祥太朗」選手と「和佐田祥太郎」選手のランキングが別々に算出され、 2015年のインターハイ個人戦は「和佐田祥太郎」選手の成績として 処理されてしまいます。

これは明らかに間違った処理ですので、 気づいたときには直すようにしています。 しかし膨大なデータに埋もれて大抵は気づきません。 ですので皆さんもご自身のお名前を中心にチェックしていただき、 漢字間違いを見つけられた際はお知らせいただけると助かります。 特に、漢字をよく間違えられる方は要注意です。

ランキング規程の該当箇所

5. lapcombat2ファイルにおける姓・名の完全一致をもって同一選手と見なす。 但しlapcombat2ファイルにおける姓・名の誤記について選手から申立があった場合は 監督または代理の技術者がこれを確認の上で修正する。 代理の技術者とは本規程に基づき ランキング計算のコンピュータプログラムを取り扱う実務担当者を指す。

ちなみに2016年度は「監督」と「技術者」は同一人物(三河OLCの前田裕太)です。 将来的なことを考えて「代理の技術者」という表現を入れています。


ポイントの有効桁数

ランキングの 表示システムでは 見やすくするためにポイントを小数点以下4桁で、 重み係数を小数点以下2桁で丸めています。 しかし実際の計算は丸めずに行い、 ランク付けにも丸める前のポイントを使っています。

例えばポイントが75.000001の選手と75.000000の選手がいた場合、 表示システムではどちらも「75.0000」と表示されますが、 ポイントが75.000001の選手の方がランキングの順位は上になります。



戻る