周回コースの走行ログからコース特有の変動を分解する

シクロクロスなどで記録したパワーメーターのログから、周回コース特有の変動を分解して見やすくて"使えるデータ"にする。パワーメーターのデータを
 パワー = コース特有の変動 + ペースの変動 + 残差

とモデル化して
  1. "data" 生のパワーデータ
  2. "seasonal" コース特有の要因による変動(コーナーなどによる加減速とか色々)
  3. "trend" ペースの変動
  4. "remainder" 偶発的な変動
にそれぞれ分解して作図したら何か見えてくるかな?

ジャパンカップシクロクロス
2014シーズン初戦。周回数7。中盤で垂れた。上げ下げが激しいコース。

茨城シクロクロス小貝川
ジャパンカップCXからの連戦。周回数5。最後尾スタートからの追い上げ。最終周回まで弱虫ペダル渡辺先生に追いつけなくて焦った。直線が多く比較的"一定ペース"で走れるコース。

スターライト幕張
周回数5。スタートの飛び出し良し。その後、安定したペースで5位。コースの中で上げ下げの局面がハッキリしていて走りやすかった。

秋ヶ瀬バイクロア
周回数5。後方スタート。序盤の落車回避とシングルトラック渋滞からの追い上げ。終盤えらく疲労してた記憶あり。タイトなコーナーの連続により、頻繁に減速・加速しているのがわかる。
茨城シクロクロス土浦
周回数4。スタートは良かったが、終盤に余裕ぶっこいて最終周回でチェーン落ちして焦ってるの図。比較的直線が多く"一定ペース"で走れるコース。


ペースの変動を示す3番目の"trend"はわかりやすいとして、重要なのはコースの特性が現れる2番目の"seasonal"のグラフ。プラス〜マイナスの波が大きく現れているコースは踏みどころ・休みどころがハッキリとしている。細かく振れているコースは上げ下げの頻度が高く忙しい。ちなみに"コースの特性"や"コース特有の変動"と述べているけど、実際には"そのコースにおける僕の走り方"が正しい。
4番目"remainder"がちょっと悩ましい。ポイントごとの走り方の差異が現れると思うのだけれど、ラップタイムの変化による残差が混ざって読み取れないなこれは。んー、もうすこし掘り下げが必要か。周回コースのログの取り扱いはずっと困っていたので、もうすこしゴニョってみよう。


今期からパワーメータのログ管理にWKO4を使うようにしたので、セルフ分析環境も刷新中。今回はWKO4から.PWXファイルをエクスポートしてRでゴニョる方向。分析自体は特に面倒なことはしていなくて時系列分析でよくある
 観測値 = 季節要因 + トレンド + 残差

なモデルを
 パワー = コース特有の変動 + ペース変動 + 偶発的な変動

とみなしてパワーメーターのログを時系列データに見立てて、局所重み付け回帰関数を用いた季節調整法をまるっと適用したかんじ。

周期は雑に
  周期 = 走行時間 / 周回数

で指定している。ってか、ひたすら雑だな... 周回ごとのラップタイムの増減や、セクションごとの区間タイムの増減があるので、このやり方だとダイレクトに残差に乗ってしまって良くない。経過時間とパワーで分析するのではなくて、位置とパワーに正規化して分析する必要があるか。ってかそれ以前にもっといい方法がありそう。

追記。後日、位置とパワーで正規化してから分析したらかなり良くなった。