横浜市は2023年の10月に横浜市営バスの令和4年度路線別収支を公表しています。
私もたまに市バスに乗りますし、1日乗車券で乗り回すこともあるくらいお世話になっているのでつい見てみました。
https://www.city.yokohama.lg.jp/kotsu/kigyo/zaimu/rosensyuushi.files/0025_20231002.pdf
やはり市営バス路線とだけあって赤字路線が多くなっていますがこれを見た私はどんな路線が儲かってる、もしくは儲かってないのかが気になったので調べてみました。
収支データだけだと面白くないなーということでじゃあバス路線ごとの運航頻度のデータも使って収支と運航頻度の関係性を見てみようと思い立ち、Googleを漁っているとこんなものを見つけました。
ここでは様々な公共交通のデータがオープンデータとして公開されています。
その中に横浜市営バスのデータも含まれておりこのデータも使ってみることにしました。
市バスのデータだけでもたくさんあって何の情報がどこに含まれているのかを調べるのも一苦労だったんですが、どうやらバス関連情報というのを使うと取得できそうということがわかりました。
これはGTFSという公共交通のデータを公開する際の世界標準フォーマットみたいで、非常に整理されたデータになっています。これをローカルにダウンロードして使ってみます。
ちなみに、もしこのデータを使いたいという方は提供先のHPで使い方を調べてみてください。ありがたいことに使い方を解説してくださっているネット記事もあるのでそちらをご参考までに。
GTFSの中には便情報(trip.txt)というファイルが含まれておりここには一つ一つの便の起点と終点がどこなのかとか、その便が何系統なのかなどの情報が入っています。
ここから系統ごとにカウントすることで系統ごとの運航頻度を抽出することができました、意外とあっさりできちゃうものなんですね。
これらのデータの加工と可視化にはPythonしかない!!!(多分そんなことはない笑)ということで必死にやり方をググりました。もともとPythonの知識はあるのですがPDFの加工経験はなかったので、というかそんなことできるの知りませんでした。
ということでPDFの加工にはPyMuPDFというパッケージを使いました。これ、importする時になぜかimport fitzって書くんですがなぜなんですかね??
GTFSもふたを開けてしまえばテキストファイルなのでPython上での扱いは簡単です。Pandasにたくさんお世話になりました。
処理を進めるとこれら2つのデータを統合する必要が出てくるのですが、どちらのデータにも系統番号がついてるのでその情報を元に統合しました。
ここで注意点があるのですが、それは
複数の路線が同じ系統番号をもっていることは考慮していない
ということです。
これは横浜市営バスだとよくあることなのですが、一つの系統番号が複数の路線にまたがっているものがあります。例えば23系統という路線はメインは青葉台駅~若葉台中央を走る路線ですが、そのほかにも青葉台駅~三保中央や中山駅前~若葉台中央といった路線があります。営業係数や損益は系統別に公表されているので路線によってはそれって複数路線含んでるからチートやんけ、ってのもあるので路線紹介の際はこれも踏まえて紹介したいと思います。
それではまず初めに運航頻度と営業係数の関係はどのようなものなのでしょうか?
とそのまえに、営業係数がなんなのかを一応説明すると、100円の営業収入を得るためにいくらかかるかという経営上の指標です。なので低ければ低いほど効率よく収入が得られていることになるため、低い方が好ましい指標です。最近だとJR東日本なども路線ごとの営業係数を公開していて度々話題になるので耳にしたことがある方も多いかもしれません。
横軸が運航頻度で縦軸が営業係数になっています。
これらの間には非線形(直線ではない)関係があることが見てとれますね。運航頻度が0から100くらいになると営業係数は大幅に改善しますが、そのままのペースで改善するわけはもちろんなく、運航頻度が100以上に増えると営業係数の改善のペースは落ちています。
営業係数はどれだけ効率よぐ稼げるかの指標という認識なので、効率よく稼げる路線は運航頻度が高くなっているといえるでしょう。まあ企業として当たり前っちゃ当たり前ですね。
次は実際の収益と運航頻度の関係性を見てみましょう
こちらはこれといったパターンは見受けられませんが、運航頻度がある程度多くても損益がマイナスの路線がありますね。
損益が多少悪くても稼ぐための効率はそこそこだからまあいいか、といった具合でしょうか(テキトーですみません)
ということで今回はすこし技術っぽい話が多かったですが、次回からは営業所ごとに分けて営業係数または損益が高い路線・低い路線をいくつかピックアップして、どんなとこを通るかや損益が低い原因等の考察を行っていきたいと思います!