コロナ禍の現在において、感染から身を守るために混雑している場所を避けることは重要になっています。我々が日ごろ通勤・通学に使用しているバスでも混雑する時間帯は避けたいものです。そこで、大学院システム情報科学研究院の荒川豊教授の研究室では、混雑を避けて通学ができるように、九州大学伊都キャンパス関連のバス停の混雑度をリアルタイムで可視化するアプリ「itocon」(https://itocon.arakawa-lab.com) を開発されています。
私 (数理学府数理学専攻 廣瀬研究室 修⼠課程 吉田航) はこの一環で、バス停の混雑度の予測を、過去の混雑度のデータを使って自動的に導出するアルゴリズムを作り、itocon に実装していただいております。私は、このアルゴリズムを、数学の統計という分野の知識を使って構築しました。
バスの混雑度データは、1 日ごとに得られるデータであり、時系列データに分類されます。時系列データでは、予測したいデータの、予測日以前に得られた同データとの関係性を考えて、予測を立てることが考えられます。九州大学伊都キャンパス行きのバス (図1) の混雑度では、授業日程の関係から、1 週間ごとの周期があるのではないか、などと考えられるかと思います。すなわち、7 日前、14 日前、21 日前… の混雑度と強い関係性があるという事です。この他にも、様々な周期性が存在すると考えられます。

しかし、バスの混雑度データには厄介な点があります。それは、データの傾向が大きく変動するということです。例えば、夏休みなどの長期休み中は、授業期間中と比べて急激に混雑度が減少します。また、新型コロナウイルス感染拡大による遠隔授業の実施も混雑度に大きく影響しています。このような変動に従って 1 週間周期などの関係性も変動すると思われます。このようなデータの傾向の変動を表現できる統計モデルとして、状態空間モデルがあります。私は、状態空間モデルの中でも、AR モデル (Auto-Regressive model : 自己回帰モデル)[1]とローカルレベルモデル[2]を組み合わせ[3]、上記のような変動する関係性を統計的に推定することで、バスの混雑度の予測を算出するアルゴリズムを作りました (図2)。


R でのデータの前処理が大変でした。R とは私が使っているプログラミングソフトです。今回、提供していただいたデータは、バス停の 1 分ごとの乗車待ち人数のセンシングデータです。こちらは、荒川先生の研究室の方々がセンサー技術を用いて集計しているデータになります。
前処理では例えば、上記のデータからバスの時刻表の時間における乗車待ちの人数を取り出して R に取り込む必要がありました。私はこのような時系列データの取り扱いに慣れていませんでしたので、私の研究室の廣瀬慧先生のお力を借りつつ何とか前処理のコードを書き上げました。日本語にすると、たった 1 行程度の処理なのですが、私の書いた R のコードでは 50 行ぐらい書くことがあり、中々骨が折れました。
また、解析の面でも、データをどのように処理するかによって、結果が大幅に変わりました。例えば、データに対数をとって解析を行うだけで、全くうまくいかない解析が急に上手くいったりしました。どうすれば上手くいくのか、細かい点を模索するために実験を重ねたことも苦労したことです。ですが、実データを使った実験は好きだったので、楽しくもありました。私は、今回のアルゴリズムを作る上で、バスの混雑度データを使い、多くの実験を行いました。実は、その中で、予測の誤差に関する数学的に面白いトピックを発見し、現在そのことについて論文を書いております。数学の研究では、鉛筆を動かすだけだと思われがちですが、データを動かすことでも学べることが非常に多いということを、今回のデータ解析で強く実感しました。今回、貴重な機会を下さった先生方には本当に感謝しています。
今後は、バスの混雑度予測のアルゴリズムの改善をしていくのはもちろん、上記の論文の完成も目指しております。また、現在 itocon では食堂の混雑度も確認できるようになっており、そちらの混雑度予測アルゴリズムも同時並行して作っていく予定です。どちらも、開発チームの方々、先生方とコミュニケーションをとりつつ良いものが作れたらと思っています。
当時、ちょうど状態空間モデルの勉強をしていたこともあって、廣瀬先生から予測のお話をいただいたのが混雑度予測アルゴリズム作成のきっかけです。また、廣瀬先生に伺ったところ、コロナになって、3 密回避が重要ということになって、バスの混雑緩和のためにアプリを作りましょう、という経緯だったそうで、コロナの前は、このようなプロジェクトはなかったようです。
Note:
より詳しく知りたい方は・・・