データとバスケ」カテゴリーアーカイブ

開幕なのでBリーガーのデモグラフィックデータを見てみる

さてB2は開幕、B1はいよいよ開幕直前となりましたね!またあの熱戦の日々が始まります。3年目となるBリーグですが、事務局の葦原さんによりますとJリーグは3年目から観客動員が下降に入ったそうです。

Bリーグが同じ轍を踏まず成長できるのか、楽しみに見ていたい思います。私としても微力ながら、今シーズンはもっと友達を誘って観戦に行けたらなと思っています。

デモグラフィックデータとは

さてこの記事ではBリーガーのデモグラフィックデータを見てみたいと思います。デモグラフィックデータという言葉に馴染みのない方もいるかもしれませんが、要は性別とか体重とか身長とかそういう、何て言うんですかね、人間としての基本データみたいなもののことですね。

今回はBリーガーのデモグラフィックデータをBリーグ公式のこのページから各チームを参照して取得しました。取得したのは先週なのですが、各チーム最新の状況に更新されているのかは分かりません。例えば取得時点では京都ハンナリーズロスターが8人となっています。そこら辺はご了承頂ければと思います。

身長

バスケと言ったらまずは身長が気になりますよね。各チームがどのような身長の選手を揃えたのか見てみましょう。まずは単純にロスターの身長をチーム別にプロットしてみます。下のプロットですが、ポジション別に身長が分かった方が面白いと思ったので、各選手をG(ガード)、F(フォワード)、C(センター)に分けて表示しています。複数のポジションが併記されている選手に関しては、小さい方のポジションに振り分けました(例. SG/SFだったらGとする。)

f:id:rintaromasuda:20181002211902j:plain
f:id:rintaromasuda:20181002211910j:plain

数値で各チームの平均と中央値、そして標準偏差も見てみましょう。ちなみに標準偏差が大きい場合、小さい選手も大きい選手も幅広く揃っているであろうことが窺えます。

チーム 平均値 中央値 標準偏差
A東京 193.0 192.5 12.8
横浜 191.3 190.0 9.9
京都 187.5 186.5 9.9
三遠 189.2 187.0 12.7
三河 193.0 191.5 10.9
滋賀 192.9 192.5 11.0
秋田 191.2 189.0 10.1
渋谷 193.2 194.5 13.3
新潟 188.5 189.0 12.0
千葉 189.3 190.0 12.3
川崎 192.3 192.5 11.0
大阪 189.6 190.0 13.3
栃木 190.4 186.5 11.2
富山 192.8 190.0 8.8
福岡 193.1 192.0 11.4
北海道 190.2 189.0 10.4
名古屋D 190.2 190.5 9.8
琉球 188.8 188.0 11.0
チーム 平均値 中央値 標準偏差
FE名古屋 187.6 185.0 14.2
愛媛 184.8 183.0 10.0
茨城 191.8 189.5 12.8
金沢 186.7 187.0 12.0
熊本 189.4 189.0 13.0
群馬 187.0 185.0 10.0
広島 189.9 187.0 11.1
香川 188.3 188.0 10.5
山形 187.2 187.0 12.6
信州 188.8 186.5 11.0
西宮 187.7 189.5 11.3
青森 186.5 184.0 11.2
仙台 188.8 187.0 12.2
島根 191.4 186.0 12.0
東京Z 190.0 188.0 12.3
奈良 187.7 187.0 10.2
八王子 188.5 188.0 8.5
福島 187.5 188.0 11.6

パッと見たところあまりにも突出したチームはないように思いますが、福岡は216cmのローソン選手をはじめ、高さのある選手を揃えたようですね。三遠はちょっとガード・フォワード人のサイズが他のチームよりは小さめと言えると思います。京都はまだロスターが揃いきってないので何とも言えないですね。

ちなみに上の数値でお気づきかもしれませんが、B1とB2を比べてみるとやはりB1の方が全体的にサイズがあるようです。

f:id:rintaromasuda:20181002215007j:plain

ちなみにリーグ全体での平均身長は189.7cm、中央値は188cmでした。ご存知のとおり上のグラフで言うところの右の山は外国人ビッグマンがほとんどですから、帰化選手を除く日本人Bリーガーの平均は185cm前後ではないかと思います。

年齢

同じ要領で年齢を見てみましょう。ご存知の通り我らがレジェンド折茂武彦の抜け出しっぷりに注目です。ちなみにこの記事執筆時点、2018/10/02の年齢を基準にしています。

f:id:rintaromasuda:20181002220109j:plain
f:id:rintaromasuda:20181002220116j:plain

チーム 平均値 中央値 標準偏差
琉球 29.9 30.0 3.5
名古屋D 27.2 26.5 2.7
北海道 30.2 27.5 7.3
福岡 29.2 30.0 4.9
富山 29.1 31.0 4.9
栃木 29.5 29.5 4.8
大阪 29.0 29.0 4.2
川崎 27.8 28.5 3.4
千葉 29.5 30.0 3.5
新潟 30.7 31.0 5.6
渋谷 28.9 28.5 3.7
秋田 26.8 27.0 2.8
滋賀 28.8 29.5 4.1
三河 28.8 28.5 4.7
三遠 28.2 27.0 5.2
京都 28.8 29.0 4.4
横浜 27.9 28.0 5.8
A東京 28.6 26.5 5.0
チーム 平均値 中央値 標準偏差
福島 26.3 27.0 2.2
八王子 27.3 27.0 2.8
奈良 29.0 29.0 3.6
東京Z 28.5 28.0 4.4
島根 26.6 26.0 2.7
仙台 26.2 25.5 3.5
青森 23.9 24.0 1.9
西宮 28.1 28.5 4.4
信州 28.8 27.5 5.3
山形 26.3 27.0 1.8
香川 29.1 26.5 5.8
広島 28.0 26.0 4.8
群馬 29.7 29.5 5.7
熊本 28.7 29.0 4.2
金沢 29.3 29.0 4.0
茨城 28.1 27.5 3.4
愛媛 27.9 28.0 2.3
FE名古屋 27.8 28.0 3.9

個人的にまず注目したいのは、折茂さん、桜木ジェイアール選手、そして群馬クレインサンダースの藤原選手の3人の40代選手ですね。この年齢で現役を続けるには並々ならぬ努力と研鑽が必要とされるはずです。頭が下がります。また10代の選手がふたり、横浜のハンター選手と三遠のダシルバ選手がいるのにも注目です。

福島、青森、そして山形の3チームは全員20代であることにも注目です。ベテランのプレーももちろん注目ですが、若いチームのエネルギーにももちろん注目したいです。NBAで言うと、シャックがデビューした頃のオーランド・マジックがとても若かった記憶があります。そんなチームの台頭にも期待したいところです。

それにしてもアルバルク東京が意外と若くて驚きました。なんかずるい(笑)

ちなみにこれもお気づきだとは思いますが、B1よりもB2の方が全体的に若い傾向にあります。

f:id:rintaromasuda:20181002221913j:plain

出身校

では最後に出身校を見てみましょう。と言っても主要なもののみです。やはり大学バスケからリーグに参加したプレイヤーがほとんどなので、主要な出身校と言ったらやはりバスケットの強い日本の大学になってしまうのはご了承ください。

大学バスケも面白いですよね。と言っても私が大学バスケを見ていたのは25年とかそれくらい前なんですけれど(笑)それこそ折茂さんとか、佐古さん、長谷川さんあたりが大学で活躍されていた頃でした。その頃は今の強豪校が必ずしも強豪ではありませんでしたね。最近はBリーグの人気上昇もあり、大学バスケにもさらなる注目が集まっているのではないでしょうか。

では以下がBリーガーの出身校ベスト10になります。

出身校 人数
東海大学 37
青山学院大学 22
日本大学 19
筑波大学 18
専修大学 15
拓殖大学 13
日本体育大学 12
明治大学 12
大東文化大学 11
天理大学 8

東海大学、多いですね。シーガルズの現日本男子バスケットボールへの影響がとても強いのが分かります。ではこの記事の最後に、東海大学卒のBリーガーを生年月日順に並べたものを掲載したいと思います。何らかの理由により抜けがあったらすみません。

選手 チーム 誕生日 年齢
池田 雄一 新潟 1983-07-13 35
内海 慎吾 京都 1984-04-28 34
石崎 巧 琉球 1984-07-06 34
竹内 譲次 A東京 1985-01-29 33
小林 慎太郎 熊本 1985-06-29 33
安部 潤 仙台 1986-04-14 32
西村 文男 千葉 1986-09-24 32
嶋田 基志 群馬 1987-05-07 31
前村 雄大 奈良 1987-07-06 31
大塚 裕土 富山 1987-08-23 31
石井 講祐 千葉 1987-09-29 31
古川 孝敏 琉球 1987-10-20 30
遥 天翼 福岡 1988-10-06 29
多嶋 朝飛 北海道 1988-10-08 29
坂本 健 FE名古屋 1989-06-25 29
満原 優樹 渋谷 1989-12-27 28
狩野 祐介 滋賀 1990-04-18 28
高山 師門 東京Z 1990-04-22 28
佐藤 正成 山形 1991-07-23 27
田中 大貴 A東京 1991-09-03 27
須田 侑太郎 琉球 1992-01-03 26
藤永 佳昭 千葉 1992-04-10 26
岩田 涼太 山形 1992-06-19 26
ザック・バランスキー A東京 1992-12-18 25
晴山 ケビン 京都 1993-01-14 25
橋本 晃佑 栃木 1993-05-06 25
徳川 慎之介 福島 1993-06-10 25
ベンドラメ 礼生 渋谷 1993-11-14 24
頓宮 裕人 京都 1994-01-19 24
小島 元基 A東京 1994-02-19 24
三ツ井 利也 信州 1994-06-02 24
寺園 脩斗 三遠 1994-06-28 24
中山 拓哉 秋田 1994-07-24 24
関野 剛平 北海道 1994-08-01 24
上原 壮大郎 西宮 1994-08-10 24
伊藤 達哉 京都 1994-11-26 23
白戸 大聖 仙台 1995-05-25 23

各選手がどのように得点を挙げているのかをグラフにして見てみる

NBAの2017-18シーズン、MVPにも輝いたヒューストンのジェームス・ハーデンは試合平均で30.4点もの得点を挙げましたが、その36%はスリーポイント、28%はフリースローによって挙げられた得点であり、2Pシュートによる得点はわずか35%です。一方でキングことレブロン・ジェームはその得点の62%を2Pシュートにより挙げています。

このように各選手の得点スタイルはその選手の技能や、属しているチームのシステムによって大きく違い、スリーポイントで多くの得点を挙げる選手もいれば、ファウルをもらう技術に長けていて(またはそれがその選手の役割で)、多くの得点をフリースローによって挙げる選手もいます。

この記事ではBリーグの各選手の総得点が、それぞれ2Pシュート、スリーポイントフリースローのどのような組み合わせで挙げられたのかをグラフにしてみたいと思います。選手は総得点の多い順に上から並んでいます。名前の横にある()内の数字が総得点です。

総得点1位から10位の選手

f:id:rintaromasuda:20180919154030j:plain
目立つところでは北海道のトラソーニがインサイドの選手であるにも関わらず、総得点の18%をスリーポイントで挙げていることです。昨今のバスケはインサイドの選手もアウトサイドのシュートが求められるようなところがありますが、トラソーニはそれを実践しているプレイヤーのひとりだと言えるでしょう。

またそれとは逆なのが富山の宇都で、アウトサイドの選手であるにも関わらず大量の得点を2Pシュートで挙げているという稀有な選手です。

金丸はピュアなスリーポイントシューターというイメージがありますし、フリースロー確率王なのでフリースローのイメージも強いですが、実際にはその得点の約52%は2Pシュートによるものです。比江島がいなくなったいま、2Pシュート割合は今シーズンより増加するかもしれません。

総得点11位から30位の選手

f:id:rintaromasuda:20180919154530j:plain
f:id:rintaromasuda:20180919154540j:plain
西宮のバーンズ、横浜の河村、京都のマブンガ、千葉の小野など多くのオールラウンダーが見られます。様々な形で得点ができる彼らは相手のチームにとってとても脅威であると思います。さらに注目するべきはマブンガはフリースローによって30%以上もの得点を挙げていることです。これはリーグ1の数字で、ある意味最も効率の良い点のとり方をしている選手だと言えると思います。

総得点31位から60位の選手

f:id:rintaromasuda:20180919155125j:plain
f:id:rintaromasuda:20180919155133j:plain
f:id:rintaromasuda:20180919155152j:plain
ここまで来てはじめて三遠の田渡と京都の岡田がスリーポイントによる得点割合60%超えとなっています。岡田に至っては70%に到達する勢いで、京都のバスケの中で如何にピュアなスリーポイントシューターとしての役割を担っているかが分かります。フリースローが極端に少ない島根の佐藤も同様でしょうか。

今シーズン奈良に移籍したJPことジェフェリー・パーマーも非常にバランスの良い点のとり方をしていますね。

総得点61位から100位の選手

f:id:rintaromasuda:20180919155711j:plain
f:id:rintaromasuda:20180919155720j:plain
f:id:rintaromasuda:20180919155729j:plain
f:id:rintaromasuda:20180919155741j:plain
北海道の鉄人こと桜井も実はフリースローで28%も得点を挙げています。あまりファウルをもらっているイメージがなかったので意外だったのですが、そのタフな身体を活かしたアグレッシブなプレーでフリースローの機会を多く設けていたようです。

総得点101位以降の選手

残りの選手についてはグラフだけ貼っておきます。皆さんの応援する選手の得点割合は想像通りでしたでしょうか?
f:id:rintaromasuda:20180919160309j:plain
f:id:rintaromasuda:20180919160318j:plain
f:id:rintaromasuda:20180919160326j:plain
f:id:rintaromasuda:20180919160335j:plain
f:id:rintaromasuda:20180919160350j:plain
f:id:rintaromasuda:20180919160359j:plain
f:id:rintaromasuda:20180919160408j:plain
f:id:rintaromasuda:20180919160417j:plain
f:id:rintaromasuda:20180919160426j:plain
f:id:rintaromasuda:20180919160434j:plain
f:id:rintaromasuda:20180919160442j:plain
f:id:rintaromasuda:20180919160450j:plain

2018-19シーズンの個人的な展望

Early Cup 2018、男子日本代表のWindow4と終了しました。まだTerrific 12とFIBA Asia Champions Cup 2018とかあるものの、ちょっとひと段落といったところでしょうか。

今回は普段しているデータの話とはあまり関係がないのですが、個人的なBリーグ2018-19シーズンの展望でも殴り書きしてみようかと思います。展望っていうか、個人的な注目ポイントの備忘録くらいの位置づけです。

B1優勝争い

これ書いたらここでもうページ閉じられてしまうかもしれませんが(笑)、個人的には今シーズンのCS優勝はアルバルク東京だと思っています。つまりは連覇です。

私はリーグ60試合とその後のCSを継続して勝ち切る「安定感」のようなものを最大限に重視してまして、その観点でアルバルク東京に勝るチームが今シーズンに出てきているかというと、残念ながら出てきていないと思っています。

また優勝争いの次点も栃木、川崎、三河、千葉の4チームであるという大勢は変わらないのではないかと思います。

昨シーズンは三河にも相当な安定感がありましたし、私は実質の準優勝は三河だったとみているくらいなのですが、今シーズン比江島、橋本と抜けた三河はちょっと安定感が落ちたと見ています。

この中でA東京に割って入るとすれば初代王者の栃木かなと思います。ファジーカスが帰化した川崎、雪辱に燃える千葉ももちろん優勝が狙える強豪ですが、安定感という意味ではやはりA東京には一歩及ばないイメージです。

個人的注目チーム

一番の注目は富山グラウジーズです。スーパースターの宇都、スリーポイントでリーグ1位を争った大塚を要しながらも入れ替え戦まで行ってしまった昨シーズンから宇都、水戸、(大塚)裕土の三羽烏のみを残し、強力な外国人インサイド陣、すばらしい宇都のバックアップPGとなりそうな阿部、水戸・大塚どちらのサブとしても機能しそうな船生など、チームにかなりいい人材を引っ張ってきた印象です。もちろんHCが変わったことも大きいです。

起用の偏りからくる疲労の問題と、昨シーズンあまり機能しなかったインサイドが機能すれば、優勝争いとは言いませんが、CS出場は見えてくるのではないでしょうか。前回は実質B1に残留したチームの中で最下位だったことを考えると、一番の「伸び幅」を見せるチームになるのではないかと楽しみにしています。チームを株の銘柄に例えるなら、富山が一番の「買い」かなという感じです。

もうひとつ注目チームあげるとすれば琉球でしょうか。特に並里・橋本が入ったことにより、岸本の得点がどう変わるのかに注目しています。

スタッツ的な注目

得点王争いは今シーズンも変わらずファジーカス vs. ガードナーだと思っているので、正直あまり着目はしていません(笑)

日本人得点王ですが、誰がなるというよりも、試合平均で20点取る選手の誕生を楽しみにしています。

一番の候補はもちろん宇都ですが、グラウジーズは宇都の得点力への依存を少なくするべきだと考えているので、宇都が平均で20点取るようになることはチームにとってはあまり良いことではないでしょう。

逆に金丸はチームからさらなる得点力を求められるシーズンになりそうなので、20点行くとしたら金丸でしょうか。

スリーポイント王争いにもそこまで注目はしていないのです。それよりリーグ全体としてスリーポイント試投数が増加傾向に向かうのか、前シーズン、前々シーズンのデータと比べながら見てみることを楽しみにしています。

また根拠は何もないですが、単純にまだ2桁のスティールとブロックショットBリーグで出ていないので、それも出ないかどうかを楽しみにしています。

福岡ライジングゼファー

昨シーズンは秋田がB1に戻り、福岡ライジングゼファーがB1に初昇格となりました。

昨シーズン残念だったことのひとつに、新参入だった島根と西宮が両方B2に戻ってしまったことがありました。ですので今回新参入である福岡にはぜひ善戦してもらいたいと思っています。堀江貴文氏が社外取締役に参加するなど、経営サイドでも何か面白い動きがないかと注目です。

新人賞

実は対象者的なものをよく知りません(誰か教えてください…)ただベンドラメにしろ馬場にしろ、日本のA代表やB代表の中心選手として活躍しているレベルの選手が選ばれていますので、例えば先日のアジア競技会に出場していた大学生プレーヤーなどがBリーグに参戦して受賞する、みたいなシナリオが妥当でしょうか。

B2の注目チーム

B2の個人的な注目チームは茨城ロボッツです。理由は単純で、チームの経営体制がグロービスと堀義人氏に完全にコミットされていて、徐々にそうした経営側の改善がチームの成績に表れてくるだろうと予想しているからです。

経営大学院であるグロービスとその創業者が、バスケットボールクラブの経営でこけるわけにはいきません。上手く行けばロボッツはB2の千葉ジェッツになれるのではないでしょうか。

B2スリーポイント王の福澤、川崎で昨シーズンプレイした高い運動能力を持つジョシュ・デービスなど、良い選手の獲得にも成功しています。

まとめ

2018-19シーズンの展望を殴り書きしてみました。早くはじまって2018-19シーズン!

淡々と数字だけで振り返る2017-18の永吉(京都)、橋本(大阪)、今村(新潟)、佐藤(滋賀)

永吉佑也(京都)

昨シーズンは57試合に出場(内56試合はスタメン)し、総得点は469点はチームで5位でした。個人的にはスミスとマブンガは別枠として、京都の伊藤から晴山くらいまでが誰でも点を取ってくるスタイルのバスケットは好きです。

f:id:rintaromasuda:20180619220831j:plain

得点を試合平均にすると8.9点で、これは攻撃力の高い選手を揃える京都にあって立派な数字だと思います。推移を見ても安定して得点を取っている様子が分かると思います。

f:id:rintaromasuda:20180822214318j:plain

スリーポイントシュートも140本を打って34.3%で成功していて、これもインサイドの選手としては優秀と言えるでしょう。フリースローが68%なのは、ファウルを受けやすいインサイドの選手としては今後の改善が望まれるポイントでしょうか。リバウンド試合平均3.9本も少し物足りない数字です。

橋本拓哉(大阪)

橋本についてはいくつか特筆するべき数字があると思っています。まずチームで5番目の総得点を挙げるも、57試合中スタメン出場は32試合のみ。主にシックスマンとして活躍していたとも言えると思いますが、試合平均で7.2点の得点力を見せています。

f:id:rintaromasuda:20180619221854j:plain

シーズン中に20点を超えたゲームが4つあるのも立派です。しかもシーズンベストの23点を挙げた対京都戦(2017年12月29日)は、わずか18分の出場でこの点数を挙げています。この得点力が安定してくればかなり化ける選手だと思っています。実際に最近の代表戦でも橋本の得点力は重要だったと思います。A代表の可能性もチラッと見えてきた選手だと思っています。

f:id:rintaromasuda:20180822224116j:plain

もうひとつ彼の得点力で素晴らしいのは、フリースローが上手いところです。シーズン通して83.8%というのも立派ですが、橋本は自身の総得点の27%をフリースローで挙げており、これは下の記事でも取り上げましたがリーグでトップクラス(6位タイ)の数字です。

近年こういう点の取り方(例えばロケッツのハーデンみたいに)は重要になってきていると個人的には考えているので、是非ファウルを誘う技術も向上させ、フリースローを上手く使い、得点を安定して量産できるような選手に成長して欲しいと思います。

今村佳太(新潟)

以前に以下のような記事を書いていたのですが、そこでは言及しなかったものの、個人的には今後の新潟は今村をどのように良いスリーポイントシューターに育てるかが大事だと思っています。

今村がこのシーズンに打ったスリーポイントの回数は130本と少ないものの(ちなみにチームトップ、リーグ2位の本数を打った五十嵐は335本)、37.7%の確率でスリーポイントを決めている今村の今後の役割は大きいと思っています。記事でも触れている通り、五十嵐ではなく誰か別の選手がメインのシューターとしての役割を担うべきだと思っているからです。

f:id:rintaromasuda:20180619221319j:plain

今村の高さがあり、さらに高い確率でスリーポイントを決めてくるようになれば、例えば三河の金丸のように相手のチームにとって脅威の存在となれると思います。

理由は知りませんが今村は序盤戦はあまり出番がなかったものの、後半戦になるにつれて出番も増え、それに合わせて平均得点もどんどん上向いていました。

f:id:rintaromasuda:20180822222902j:plain

スリーポイントの確率も、最後に少し落としたものの、シーズンを通じて40%以上の高い確率を保っていました。一時は50%を超えていた瞬間もあります。

今後チームの中心選手としてプレイ時間が伸びる中で、どれだけこの確率を保ったままスリーポイントを決め続けられるかが、今村にとっても新潟にとっても重要なひとつのポイントになるでしょう。

f:id:rintaromasuda:20180822223647j:plain

佐藤卓磨(滋賀)

佐藤は前シーズンでは31試合に出場(うち21試合がスタメン)で、総プレイ時間が477分とこの記事で紹介している選手の中では若干少なめの数字です。総得点数も103点(試合平均では3.3点)と、あくまで数字について言えば、まだチームに大きく貢献するというところまで行っていないと思います。

f:id:rintaromasuda:20180619221330j:plain

ただ例えば2018年2月3日の対千葉戦では26分の出場で16点を挙げるなど得点力のポテンシャルの高さを見せていますし、佐藤の上背を活かせば今後リバウンドでチームに貢献できる可能性も高いと思います(ただし2017-18シーズンは試合平均2.1本止まり)。

まとめ

永吉(京都)、橋本(大阪)、今村(新潟)、佐藤(滋賀)の2017-18シーズンの数字を振り返ってみました。

追記

言及したゲームのハイライト動画を貼っておきます。

大阪エヴェッサvs京都ハンナリーズ|B.LEAGUE第15節 GAME1Highlights|12.29.2017 プロバスケ (Bリーグ)

滋賀レイクスターズvs千葉ジェッツ|B.LEAGUE第18節 GAME1Highlights|02.03.2017 プロバスケ (Bリーグ)

2017-18シーズンのトリプルダブルを振り返る

NBAオクラホマ・サンダーからラッセル・ウェストブルックが来日し、大いに日本のバスケット界が盛り上がったようです。

ウェストブルックはシーズン平均でトリプルダブル(3つの指標で2桁の数値を記録する)を達成するなどの大記録からMr. Triple-Doubleと呼ばれていますが、この記事では昨シーズンのB1でのトリプルダブルを振り返ってみたいと思います。

なおトリプルダブルは得点・アシスト・リバウンドのセットで達成することが多いものの、別にスティールやブロックショットを含めて達成することも出来ます。

しかしながら以前に以下の記事で取り上げたように、スティールとブロックショットに関してはまだ1試合で2桁を達成した選手はBリーグにいません。

よって今回出てくるトリプルダブルはすべて得点・アシスト・リバウンドの組み合わせでの達成となっております。

ニック・ファジーカス(26得点、11リバウンド、11アシスト)

2017年11月3日、まだシーズン序盤の対名古屋ダイヤモンドドルフィンズ戦での記録です。ファジーカスと言えば2桁得点は当たり前ですし、このシーズンはリバウンド王にもなったので2桁リバウンドもあまり珍しくはありませんが、11アシストはすごいですね。

スタッツを見ると、前半終了時には9本のアシストを決めていたようです。そしてその9本目は辻へのロングタッチダウンパス!自陣のゴールラインから見事にロングパスが通りました。

ファジーカスの得点力とリバウンド力はまだしばらくはBリーグトップクラスのままでしょうから、この試合のようにアシストの機会が多くなると、またファジーカスがトリプルダブルを出す可能性はかなり高いと思います。

桜木ジェイアール(15得点、11リバウンド、10アシスト)

2017年の大晦日の試合での記録で、これまた相手は名古屋です。桜木はご存知の通りオールラウンドプレイヤーなので、特にトリプルダブルに驚きはないように思いますが、これがBリーグでは自身初のトリプルダブルになります。

桜木の場合はポストプレイから攻撃を作れるのが本当に武器ですよね。そこから自分で点も取れるし、中に切り込んできた味方にアシストも出来ます。身長(活かしてリバウンドも取れますし、まだまだ大ベテランのこれからが楽しみです。

特に来シーズンは比江島が抜けたこともあり、より桜木の活躍ぶりには注目が集まります。

宇都直輝(20得点、10リバウンド、12アシスト)

2018年3月17日の対レバンガ北海道戦での記録です。ちなみに宇都は2016-17シーズンにも一度トリプルダブルを達成しているため、これは自身2度目のトリプルダブルになります。

宇都の場合もアシスト王であり、かつ帰化選手の除く日本人の中では得点王でもありますし、上背もあることからトリプルダブルを出すのもそんなにめずらしくないかもと思ったのですが、そんな宇都でもシーズンに1回出るか出ないかのようです。

動画を観ると分かりますが、この日も得意のドライブからバンバン得点とアシストを量産していたようです。どれも華麗ですが、特に前半残り5分くらいでのドライブからのサム・ウィラードへのアシストは見事ですね(動画だと1:15くらいです。)

宇都についてはこのブログでも何度か取り上げていますが、がらりと面子が変わった富山で、また来シーズン宇都のトリプルダブルは飛び出すのか、注目したいと思います。

まとめ

昨シーズンのB1で達成された3つのトリプルダブルについて取り上げました。やはりそうそう簡単に飛び出すものではないことが分かります。

そして達成した選手を見ると、出すべきして出したと言える実力の持ち主であることも分かります。マグレで達成できるものではないですね。

来シーズンの開始が待ち遠しい今日この頃ですが、より多くのトリプルダブルが飛び出すのか、それにも注目しながら来シーズンを期待して待っていたいと思います。

しかし、ウェストブルックは本当にすごいですね。

Bリーグの最成長選手賞を勝手に表彰する

NBAにはMIPことMost Improved Player(最成長選手賞)という賞が設けられていますが、私の独断と偏見でこの賞をBリーグの選手にも授与してみたいと思います。

Bリーグも2シーズン目が終わったので、単純に1シーズン目と2シーズン目を比べて目立った変化があった選手をデータから見つけ出そうと思います。ちなみに賞の対象者を抽出するにあたり、以下の条件に当てはまる選手は除外しました。

  • 1シーズン目に少しだけリーグに参加し、2シーズン目に本格参戦した新人選手
  • 1シーズン目と2シーズン目で違うチームでプレーした選手

当たり前ですけれど最終的な選出は極めて主観で行っておりますのでご了承ください。

試合平均点が伸びた選手

昨年より点を取るようになった選手を探すべく、試合平均点が増した選手のベスト20を見てみましょう。

選手 チーム 試合平均点の増減 出場試合数の増減 平均出場時間(分)の増減
宇都 直輝 富山 7.5 -1 4.91
ダバンテ・ガードナー 新潟 6.8 5 3.37
高橋 耕陽 滋賀 6.6 44 16.72
大塚 裕土 富山 6.0 8 19.90
熊谷 尚也 大阪 5.1 0 12.42
満田 丈太郎 横浜 5.0 41 15.02
上江田 勇樹 富山 4.7 22 10.53
安藤 周人 名古屋D 4.5 35 11.96
関野 剛平 北海道 4.5 42 11.60
桜木 ジェイアール 三河 3.9 2 5.38
晴山 ケビン 京都 3.7 27 11.82
永吉 佑也 京都 3.7 -3 11.42
ギャビン エドワーズ 千葉 3.5 0 3.02
ベンドラメ 礼生 SR渋谷 2.8 10 3.31
藤高 宗一郎 大阪 2.5 -8 5.55
セオン・エディ 西宮 2.5 20 11.71
富樫 勇樹 千葉 2.5 -10 -1.55
鵜澤 潤 新潟 2.4 13 7.98
山内 盛久 SR渋谷 2.3 14 9.39
並里 成 滋賀 2.3 13 3.02

トップは日本人得点王の宇都、二番手は得点王のガードナーという結果になり、その後は2017-18に本格的に活躍し出した新人か、もしくは富山の大塚や上江田のように移籍をきっかけに大きく出場時間の増えた選手が並んでいます。

この中で個人的に気になるのは大ベテランながら去年より4点近く平均点を上げてきた桜木ジェイアールです。2017-18シーズンでは三河のチーム得点王だった桜木ですが、チームの主力に変化があった後の三河をどのように引っ張っていくでしょうか。

試合平均アシスト数が伸びた選手

アシストは基準が昨シーズンより変わったとかで、実はどの選手も軒並み伸びている傾向にあり、あまり見ても面白くないかもしれませんがベスト20を見てみましょう。

選手 チーム 試合平均アシスト数の増減 出場試合数の増減 平均出場時間(分)の増減
宇都 直輝 富山 3.4 -1 4.91
並里 成 滋賀 3.2 13 3.02
山内 盛久 SR渋谷 2.5 14 9.39
田中 大貴 A東京 2.4 -5 -0.27
五十嵐 圭 新潟 1.9 2 -1.34
二ノ宮 康平 琉球 1.7 33 8.38
橋本 竜馬 三河 1.7 9 3.80
辻 直人 川崎 1.6 8 3.32
笹山 貴哉 名古屋D 1.6 -3 -3.55
相馬 卓弥 島根 1.6 -1 3.10
岸本 隆一 琉球 1.6 0 -2.02
西村 文男 千葉 1.5 25 2.65
満田 丈太郎 横浜 1.5 41 15.02
多嶋 朝飛 北海道 1.4 1 -4.85
エグゼビア ギブソン 大阪 1.4 -30 1.78
長谷川 智也 SR渋谷 1.4 -7 7.48
合田 怜 大阪 1.4 3 6.27
橋本 拓哉 大阪 1.4 -3 2.29
大塚 裕土 富山 1.3 8 19.90
佐藤 託矢 横浜 1.3 -1 1.24

アシストでリーグ1位、2位だった宇都と並里が増分でもワンツーフィニッシュという形になりました。渋谷の山内は今まであまり私がデータをいじくる中では出てこなかったので、何となく嬉しいです。

試合平均リバウンド数が伸びた選手

続いてリバウンドです。ギブソンの躍進が光り、約2本も増加しています。そしてまたしても桜木の名前が見えています。

選手 チーム 試合平均リバウンド数の増減 出場試合数の増減 平均出場時間(分)の増減
晴山 ケビン 京都 2.0 27 11.82
高橋 耕陽 滋賀 2.0 44 16.72
エグゼビア ギブソン 大阪 1.9 -30 1.78
永吉 佑也 京都 1.8 -3 11.42
桜木 ジェイアール 三河 1.4 2 5.38
安藤 周人 名古屋D 1.3 35 11.96
満田 丈太郎 横浜 1.3 41 15.02
熊谷 尚也 大阪 1.2 0 12.42
鵜澤 潤 新潟 1.2 13 7.98
上江田 勇樹 富山 1.2 22 10.53
川邉 亮平 北海道 1.2 51 7.79
ダバンテ・ガードナー 新潟 1.2 5 3.37
相馬 卓弥 島根 1.1 -1 3.10
セオン・エディ 西宮 1.1 20 11.71
田代 直希 琉球 1.1 9 3.52
大塚 裕土 富山 1.0 8 19.90
鹿野 洵生 三遠 0.8 0 4.11
宇都 直輝 富山 0.7 -1 4.91
二ノ宮 康平 琉球 0.7 33 8.38
古川 孝敏 琉球 0.7 1 -0.33

表彰

という訳で冒頭で述べた通り完全に主観ですが、大ベテラン、そして能力の高いチームメートに囲まれてプレイしているにも関わらず、2016-17シーズンと比べて平均得点を3.9点、平均アシストを1.2回、平均リバウンドを1.4回も増加させた三河の桜木ジェイアール選手にMIPを勝手に授与したいと思います。

選手 チーム 平均得点の増減 平均アシストの増減 平均リバウンドの増減 出場試合数の増減 平均出場時間(分)の増減
桜木 ジェイアール 三河 3.9 1.2 1.4 2 5.38

関連記事

移籍をきっかけに伸びた選手に関してはこちらで取り上げています。

スタッツリーダー争いの推移を見てみる

スタッツリーダー争いはシーズンを観る中での楽しみのひとつになっています。各スタッツリーダーは先日のアワードイベントで賞を受賞し、かつ今回はGQに写真掲載というおまけつきでしたが、スタッツリーダーがシーズン60試合の中でどう争われていたのか、それをこの記事では見てみたいと思います。

得点王争い

ご存知の通り新潟のガードナーが得点王に輝きましたが、得点王争いはガードナーが2位のファジーカスを突き放しており、かつファジーカスも3位以下を突き放したという結果になりました。推移を見てもふたりの得点ぶりはまったく危なげないもので、コンスタントに各試合で得点を重ねています。他に目立つところではシーズン後半になって千葉のエドワーズがどんどん得点力を上げてきたところでしょうか。

f:id:rintaromasuda:20180729075615j:plain

順位は逆だったもののこの傾向は2016-17シーズンと同じで、このまま行けば2018-19シーズンもふたりの独壇場である可能性は高いと思います。ここに割り込んでくるような選手の登場を期待したいところではありますが。

ついでに日本人(帰化選手を除く)で得点力の高かった選手もプロットしてみました。ここにいるような選手にはもっと得点をとってもらって、個人的にはBリーグに平均20点取るような日本人選手が誕生を楽しみにしています。やはり得点はバスケットの華ですからね。盛り上がって欲しいところです。

f:id:rintaromasuda:20180729080102j:plain

アシスト王争い

確かアシストはアシストとみなされるパスの条件が緩和されたとかで、以前よりも高い数値が出るようになったと聞いています。しかしながらいずれにせよここは宇都と並里の一騎打ちとなっており、3位の五十嵐を見ると分かりますが他の追随を許しません。ふたりとも後半戦になるにつれどんどんアシスト数を伸ばしていますね。

f:id:rintaromasuda:20180729171520j:plain

宇都は富山に残りましたが、新しいメンバーをチームに迎えており、それがどのように彼のアシストに変化を及ぼすのか楽しみなところです。並里は琉球で岸本、橋本と組む3ガード体制の中でどのようなプレイを見せてくれるでしょうか。そちらもとても注目です。

スリーポイント王争い

スリーポイント王には栃木の喜多川が輝きましたが、下の推移を見ると分かる通りここはデッドヒートでした。富山の大塚も三河の金丸も一時点ではトップに立っています。最終的には後半に数値を伸ばした喜多川が逃げ切った感じですね。

f:id:rintaromasuda:20180729172011j:plain

上の推移はスリーポイントシュート成功確率についてですが、他のスタッツのようにスリーポイントシュートの試合平均成功数を見てみると結果は大分違っています。こちらは試合平均2.5本も決めている辻が圧倒的に他を引き離しており、確率で1位だった喜多川はこちらでも一番下となりました。

f:id:rintaromasuda:20180729171951j:plain

フリースロー王争い

フリースローと言えば金丸というくらい既にイメージが確立してしまっている感がありますが、さすがの唯一90%超え、シーズンを通して安定したフリースローを見せていました。喜多川はスリーポイントと同じくぐんぐん後半に確率を伸ばしています。

f:id:rintaromasuda:20180729173133j:plain

しかしやはりと言いますか、ここの面子はスリーポイントの面子とあまり変わらないですね。シューターのみなさんの正確さには驚かされるばかりです。この面子に食い込むような新しいシューター人材がBリーグに現れるのはいつになるでしょうか?

リバウンド王争い

2016-17シーズンではリバウンド王だったロシターですが、今シーズンは後半あまりリバウンド数が伸びなかったのでしょうか、安定してリバウンドを稼いでいたファジーカスに追いつくことができなかったばかりか、最後に伸ばしてきたバッツにも交わされてしまいました。高いリバウンド力はロシターの魅力のひとつなので、来シーズンも是非期待したいですね。

f:id:rintaromasuda:20180729173147j:plain

インサイドはやはり外国人選手中心なので難しいところもありますが、ここに絡んでくるような日本人ビッグマンもいずれは登場して欲しいものです。日本のバスケットが次のレベルに進むための関門のひとつではないかと思います。

スティール王争い

スティールは後半に一気に伸ばしたパーカーがキングとなりました。試合の大事なところで決めるスティールは値千金ですよね。ここで注目したいのはまだ2年目の新人である、昨年の新人王ベンドラメがいいところまで食い込んでいることです。そういえば渋谷は昨年のスティール王広瀬も在籍しています。是非ベンドラメには若い力でBリーグを盛り上げて欲しいと期待しています。

f:id:rintaromasuda:20180729173204j:plain

ブロックショット王争い

サビートのブロックショットと決まった後のパフォーマンスが有名になったこともあり、サビートがぶっちぎりで受賞しているかと思ったブロックショット王ですが、実は滋賀のフィッシャーと接戦を繰り広げていました。フィッシャーについてはあまり注目していなかったので、昨シーズンの契約状況は確認しておりませんが、もしまだBリーグでプレイするなら注目したい選手のひとりです。

f:id:rintaromasuda:20180729173216j:plain

関連記事

ガードナーとファジーカスの得点王争いについては以下でも分析しています。

スリーポイントシュートについては以下でも分析しています。


栃木ブレックスが手に入れるのは比江島の高い決定力

比江島が三河から栃木に移籍するというニュースが大きな話題になりました。このオフはサプライズ移籍の報が続いておりますが、流石にこれ以上のサプライズニュースは出ないのではないかというくらいのビッグニュースでしたね。余談ですがこうしてオフシーズンに移籍自体が大きなニュースになるのは、Bリーグの今後にとってとても素晴らしいことだと思います。

さて比江島が栃木に入るとどのようなインパクトがあるでしょうか。昨シーズンの栃木のメンバーと比江島の数字を比べながら考察してみましょう。

2017-18の栃木ブレックスの得点内訳

下の図は2017-18シーズンにブレックスの各選手を総得点の多い順に左から並べたものです。赤線はその選手まででチームの総得点の何%を占めているのかを表しています。ブレックスはロシター、喜多川、遠藤、そしてボーズマンの4人でチームの50%の得点を挙げているのが分かります。

f:id:rintaromasuda:20180619220844j:plain

栃木は全員バスケットと謳っているとおり、ロシターを例外として渡邉まで各選手がかなり万遍なく点数を挙げている印象です。比江島の得点力であれば今後はロシターと並んでチームの主力得点源となるのは間違いないと思いますが、それが他の選手の得点にどう影響するのかも見ものです。比江島はアシストも得意としていますから、例えばロシターのインサイドプレイや喜多川のスリーポイントが比江島のプレイからクリエイトされるシーンも楽しみにできそうです。

比江島の決定力の高さを表すFG%, eFG%, TS%

2017-18シーズンにおける栃木主要選手と比江島のFG%(フィールドゴール%)と、それからeFG%*1、TS%*2と呼ばれる3つの%を見てみましょう。

PLAYER FG% eFG% TS%
ライアン・ロシター 46.5% 49.1% 49.1%
比江島 慎 50.5% 55.1% 57.9%
喜多川 修平 41.2% 51.4% 54.5%
遠藤 祐亮 37.1% 43.9% 45.8%
セドリック・ボーズマン 46.4% 49.2% 54.8%
ジェフ・ギブス 49.2% 51.6% 58.4%
竹内 公輔 49.4% 50.1% 52.5%
田臥 勇太 47.7% 48.2% 52.8%
鵤 誠司 39.3% 42.2% 44.3%
生原 秀将 39.1% 44.9% 48.8%
渡邉 裕規 35.1% 43.2% 44.7%

まずFG%が見ていきたいのですが、比江島はインサイドの選手であるロシター、ギブス、竹内よりも高いFG%を誇っています。通常FG%はゴールの近くでシュートを打つ事の多いインサイド陣がアウトサイド陣を上回るので、比江島の決定力が如何に高いのかよく分かります。

下は以前にツイートしたものですが、実際にリーグ内の得点力の高い日本人選手と比べてみても、比江島のFG%は頭ひとつ抜け出しているのです。

次にeFG%を見てみると、これも抜けて高いのが分かります。eFG%はスリーポイントシューターに下駄を履かせる感じの指標ですが、比江島はシーズン129本中51本成功と39.5%のスリーポイント成功率を誇っており、41.7%の確率でスリーポイント王となった喜多川と比べても見劣りしない成功率を誇っています。「あいつ、外からも打てるのか?!」というスラムダンクの1シーンが思い浮かぶようです。

TS%はフリースローも考慮に入れた指標ですが、比江島はフリースローの成功率向上には余地はあるものの、これもフリースローに安定感のあるギブスを除いては比江島がトップです。

上の表はシーズントータルのスタッツを用いて計算したものですが、それぞれの%が1試合ごとにどうだったかを計算し、引用したツイート内の画像のように分布をプロットしてみましょう。出場時間がなかった試合とフィールドゴール試投がなかった試合は除いています。

f:id:rintaromasuda:20180723222022j:plain

f:id:rintaromasuda:20180723222033j:plain

f:id:rintaromasuda:20180723222042j:plain

比江島が安定して高い決定力を保っていたことが分かると思います。

まとめ

比江島が入ることで、安定感のあるロシターの得点力と、高い確率でスリーポイントを決める喜多川の得点力に加え、高い確率でフィールドゴールを決める比江島の決定力が栃木のオフェンスに加わりそうです。また比江島を起点に作られる新しいオフェンスパターンにも注目が集まりますね。2018-19シーズンの栃木のゲームが楽しみです。

*1:Effective Field Goal%、こちらのNBAのサイトなどにも情報がありますが、スリーポイントシュートの成功の場合はシュート1.5本分の成功とみなす改造版FG%です。

*2:TS%)とはフリースローを打った回数(FTA)も考慮に入れて、総得点(PTS)とフィールドゴールを打った回数(FGA)と共に以下のように求める指標です: PTS / 2 * (FGA + 0.44 * FTA)(×100は省略しています。)

個人の2017-18シーズン1試合最高値を振り返る(動画付き)

Bリーグの2017-18シーズンも閉幕、FIBAワールドカップの二次予選まではしばしお預け、渡辺雄太が挑戦したNBAサマーリーグも終わってしまい、すっかりバスケットボールに渇望している今日この頃のバスケファンの皆様、いかがお過ごしでしょうか。

この記事では少しでもその渇望を満たす為にという訳ではないですが、2017-18シーズンの様々な個人の1試合最高値を振り返ってみようかなと思います。見つけられる限り動画のリンクも貼っておきますので、バスケシーズンが待ちきれない皆さんはぜひこちらもどうぞ。ちなみにB3はデータがないので対象外となっています。

最高得点

TEAM PLAYER DAY VS PTS
愛媛 チェハーレス・タプスコット 2018.04.20 愛媛 VS 青森 50

愛媛のタプスコットが青森とのゲームでなんと50点を記録しています。残念ながら動画は見つけられませんでしたが、Bリーグの公式ページにレポートがあります。この日の愛媛は121点も取ったようなので、タプスコットの他にも4人の選手が2桁の得点を挙げたようです。

最高フィールドゴール成功率

TEAM PLAYER DAY VS FGM FGA
三河 桜木 ジェイアール 2017.11.12 新潟 VS 三河 10 10
千葉 マイケル・パーカー 2017.09.01 千葉 VS 横浜 10 10

フィールドゴール成功率の最高が100%なのは当たり前なのですが、その中で一番フィールドゴール成功数が多かったのは、1試合で10本すべて決めたこの両者の記録でした。さすがふたりとも堅実なプレイが光るベテランというところでしょうか。ただしパーカーの方はアーリーカップにおける記録です。

ジェイアールの方の動画はこちらです。

最高フィールドゴール成功数

次にフィールドゴールを決めた回数です。こちらは最高得点を出したときのタプスコットが19回決めたのがトップでした

最高スリーポイント成功数

TEAM PLAYER DAY VS 3FGM
千葉 富樫 勇樹 2017.11.12 千葉 VS A東京 11

有名な記録かと思いますが、アルバルク東京戦で11月に富樫が11本のスリーポイントを含む42得点を挙げた試合がありました。それがスリーポイント成功数の最高記録です。

最高アシスト成功数

TEAM PLAYER DAY VS AS
滋賀 並里 成 2018.04.21 西宮 VS 滋賀 16

これも有名かと思いますが、我らがファンタジスタ並里が1試合で16アシストというBリーグ記録を樹立した試合がありました。ちなみにこの日の並里は得点も12点挙げているので、ダブルダブルです。

最高リバウンド数

TEAM PLAYER DAY VS TR DR OR
京都 ジョシュア・スミス 2018.03.04 京都 VS 栃木 25 17 8
香川 レジナルド・ウォーレン 2018.04.29 青森 VS 香川 25 13 12
FE名古屋 ジョシュ・ホーキンソン 2018.05.05 FE名古屋 VS 青森 25 17 8

最高リバウンド数は25本で、対象者は3人いました。香川のウォーレンはオフェンスリバウンドを12本も取るというすごい活躍ぶりです。

最高スティール数

TEAM PLAYER DAY VS ST
三遠 川嶋 勇人 2017.09.02 富山 VS 三遠 8
横浜 ジェフリー・パーマー 2017.12.23 横浜 VS 北海道 7
群馬 仁平 拓海 2017.11.05 群馬 VS 東京Z 7

スティールは三遠の川嶋が8回という記録をアーリーカップで出しています。レギュラーシーズンだと横浜のパーマー、群馬の仁平がそれぞれ7回という記録を出しています。以下はパーマーのゲームの動画です。

最高ブロックショット

TEAM PLAYER DAY VS BS
横浜 ハシーム・サビート 2017.12.02 横浜 VS 琉球 8

ブロックは皆さんの想像通りこのかた横浜のサビートです。なんと8本も決めています。

最高出場時間

TEAM PLAYER DAY VS MIN
山形 佐藤 正成 2017.12.23 岩手 VS 山形 47.78

レポートによるとこのゲームは2度の延長戦を経て決着がついたものすごいタフな試合だったようですね。佐藤はその死闘で約48分コートに立っていたようです。本当にお疲れ様です。

まとめ

2017-18シーズンを個人の最高記録で振り返ってみました。2018-19シーズンはどんな記録が生まれるでしょうか。今から楽しみです。

スクレイピングでBリーグ全選手の試合ごとスタッツを取得する

このブログはBリーグ観戦の肴になりそうなデータ分析の結果を主なコンテンツにしていますが、ときどきその裏でどういう技術的なことをやっているのかについても書きたいと思っています。これはその第1号です。よってこの記事の内容はBリーグやバスケットに直接の関係はありません。

はじめに

これまでの分析記事の多くは、Bリーグ公式のスタッツページにある各選手のシーズントータルのスタッツを取得し、それを使用して書きました。ちなみに具体的にどのように取得したかと言うと、例えばB1の2017-18シーズンのデータが欲しい場合はこうしました。

  1. スタッツのページに普通にブラウザでアクセス
  2. ページに表示される選手のスタッツ一覧表をすべて選択してコピー
  3. コピーしたものをExcelに張り付ける
  4. 張り付けたものをCSV(カンマ区切り)ファイルとして保存

CSVファイルを作ってしまえば、あとはRにしろPythonにしろ読み込んでしまえば、好きに加工したり分析したり何でもできます。Excel上で分析するのもいいでしょうし、データベースのテーブルにしてしまってSQLを駆使する人もいるかもしれません。私はRを使うか、もしくはExcelを使っています。

これからやりたいこと

最近はシーズントータルのスタッツを使った分析では段々と物足りなくなってきて、選手の試合ごとのスタッツを使った分析したくなってきました。ありがたいことに各選手の試合ごとのスタッツも公式ページで取得できます。例えばニック・ファジーカスの2017-18シーズン全試合のスタッツはこのページで取得できます。

数人の選手のデータが必要なだけであれば、上述のやり方で試合ごとスタッツの情報をコピーしてからExcelに貼り付けてデータを作ってもそこまで手間ではありません。しかしこれをB1、B2と合わせて何百人もいるすべての選手に対して行うのはいささか大変です。

そこで自動的にB1、B2全選手の試合ごとスタッツのページにアクセスし、必要な情報を読み取り、最後にそれをCSVファイルとして保存してくれるプログラムを書きたいと思います。このようにWebページから情報を読み取る行為を一般的にWebスクレイピングと呼びます(もしくは単にスクレイピング。)

この記事で必要なもの

Webスクレイピングをするプログラムを書くのに一番人気の言語はPythonではないかと推測しますが、この記事ではRを使います。単純に私が分析にRを使っているからです。Rのプログラムを書き実行するのにはR Studioというソフトウェアが便利なので、それも使用します。

またRはパッケージと呼ばれる拡張機能が充実しているのですが、その中からrvestというWebスクレイピングに便利なものをインストールしたいと思います。インストールの方法は次のセクションで説明します。

またGoogle Chromeも使用します。

まず試しに簡単なスクレイピングをやってみる

まずお試しで上述のファジーカスの2017-18シーズンの試合ごとスタッツの情報を取得してみましょう。R Studioの使い方はこの記事では説明しませんが、Windowsで言うところのCTRL + ENTERを押すと、カーソルがある行のコードがコンソールにて実行されることは覚えておくと便利です。

まずは簡単なことから始めてみます。ファジーカスの2017-18の情報のみスクレイピングして、それをCSVファイルにして保存しましょう。

if (!require(rvest)) {
install.packages("rvest")
library(rvest)
}
url <- "https://www.bleague.jp/roster_detail/?tab=1&year=2017&PlayerID=8490"
page <- read_html(url, encoding = "utf-8")
tables <- html_table(page)
games <- tables[[4]]
write.csv(games, "Fazekas.csv")

最初のif()の箇所は全体で「rvestパッケージがなかったらインストールしてからロードしてね。あったら単にロードしてね。」という意味です。

次のread_html()というのがページにアクセスしている部分です。ここでこのページにリクエストが投げられ、ページの内容(つまりHTMLのテキスト)を取得することができます。

続くhtml_table()というのはrvestの便利な関数で、いわゆる<table>、<td>、<tr>などのタグで書かれたHTMLのテーブルとその中身を抜き出してくれます。このページの場合、ページ内の4番目のテーブルが試合ごとのスタッツが入っているテーブルなので、4を指定して抜き出しています。ちなみにRのインデックスは0ではなく1から始まります。

変数gamesはRでdata.frameと呼ばれている型なのですが、いわゆるテーブル形式でデータを保持するのに使用される型です。上記のプログラムを実行すると、gamesの最初の3行は以下のようになっています。見事にファジーカスの試合ごとスタッツが取得されています。

DAY VS S MIN PTS FGM FGA FG% 3FGM 3FGA 3FG% FTM FTA FT% OR DR TR AS TO ST BS BSR F FD DUNK EFF
2018.01.14 B.BLACK VS B.WHITE 17:58 6 3 11 27.3% 0 5 0.0% 0 0 0.0% 2 8 10 1 2 1 0 0 1 0 0 8
2018.01.26 川崎 VS 千葉 28:44 22 9 17 52.9% 0 1 0.0% 4 4 100.0% 3 13 16 4 3 1 1 0 3 5 0 33
2018.01.27 川崎 VS 千葉 24:37 26 11 19 57.9% 2 6 33.3% 2 2 100.0% 0 8 8 2 5 0 1 0 4 3 0 24

最後にgamesに名前を付けて保存すればCSVファイルの完成です。

全選手のデータを取得するためにプログラムを改造する

では上記のプログラムを全選手のデータを取得する為に改造してみましょう。大まかな方針は以下のようになります。

  1. 各選手の情報が載っているページのURLを手に入れる
  2. 各選手のページに順番にアクセスし、html_table()を使って試合ごとのスタッツを抜き出す
  3. 各選手の結果をすべて結合し、ひとつのdata.frameにまとめる
  4. まとめた結果のdata.frameをCSVとして保存する

こうして見ると、そんなに手間ではなさそうです。実際にこの中で少し難しいのは手順1のみです。

もちろん実際にデータを使う段階になると、スクレイピングで取得したデータそのものをそのまま使うのではなく、少し加工してから使う必要がある場合がほとんどです。なので手順4の後にやらなければならないこともたくさんあります。この記事ではそこには触れません。

各選手のページのURLを手に入れるためのスクレイピング

上の例でファジーカスのスタッツを手に入れる為のURLが出てきました。

https://www.bleague.jp/roster_detail/?tab=1&year=2017&PlayerID=8490

どうやらtabというのがB1/B2、yearがシーズン、PlayerIDが各選手を表しているようです。よって各選手のPlayerIDさえ分からればB1、B2全選手の2016-17、2017-18両シーズンの試合ごとスタッツが手に入りそうです。

この各選手のPlayerIDですが、これを手に入れるためにはスクレイピングが必要です(Bリーグのシステム担当者に知り合いでもいない限り。)つまりスクレイピングをする為に、別のスクレイピングが必要ということになります。私はスクレイピングをやるのがこれが初めてですが、おそらくよくあることでしょう。

スクレイピングをするべきは、Bリーグのスタッツトップページの以下の赤枠内のリンク部分です。ちなみにトップページURLのパラメータはどうやら各選手のページと同様のルールに従っているようです。

https://www.bleague.jp/stats/?tab=1&year=2017

f:id:rintaromasuda:20180713082933p:plain

テーブルに記載されている情報なので上述のrvestのhtml_table()を使えばいいかと一瞬思いましたが、それだとリンクではなく文字列(つまり選手の名前)の方が取得されてしまうので上手く行きません。ではどうすればいいでしょう。

CSSセレクタを利用して一連のルールに従う要素を抜き出す

説明はあと回しにして、このようにRを書くとスクレイピングで該当のリンクの情報を抜き出すことができます。

if (!require(rvest)) {
install.packages("rvest")
library(rvest)
}
url_top <- "https://www.bleague.jp/stats/?tab=1&year=2017"
html_top <- read_html(url_top, encoding = "utf-8")
urls_player <- html_top %>%
html_nodes("#tbl-player > tbody > tr > td:nth-child(3) > a") %>%
html_attr("href")
urls_player <- paste(urls_player, "&year=2017", sep = "")

試しに出力してみると、URLが取得できているのがわかります。ちなみにyear=2017は自分で付与しないといけないことが判明したので、paste()というRの関数を用いて取得したURL文字列にくっつけています。

> head(urls_player)
[1] "https://www.bleague.jp/roster_detail/?PlayerID=9040&year=2017"
[2] "https://www.bleague.jp/roster_detail/?PlayerID=8490&year=2017"
[3] "https://www.bleague.jp/roster_detail/?PlayerID=8593&year=2017"
[4] "https://www.bleague.jp/roster_detail/?PlayerID=12595&year=2017"
[5] "https://www.bleague.jp/roster_detail/?PlayerID=8503&year=2017"
[6] "https://www.bleague.jp/roster_detail/?PlayerID=10819&year=2017"

さて、プログラムの中になんだか「#tbl-player > tbody …」というおまじないみたいな文字列が出てきましたね。これはCSSセレクタと呼ばれるものです。スクレイピングをするときには絶対に外せない部分だと思います。

CSSについて詳しくなる必要はまったくありません(私も詳しくありません。)簡単に言うとCSSとはWebページの見た目を整えるためのものであり、デザイナーさんなどが「このルールに従う一連の文字は赤色にしてね!」みたいな処理をするために使うものです。そしてその「一連の~」をが指示するときにCSSセレクタを使います。これをスクレイピングでも流用して「このルールに従う一連のHTML要素を抜き出してください!」とやるわけです。

ちなみにCSSセレクタと同じ目的でXPathという記述方法もあり、rvestではXPathも使用できますが、今回はCSSセレクタのみ使います。おそらくCSSセレクタだけで事足りる場合がほとんどだと思います。

ではあなたが欲しいページの要素のCSSセレクタをどのように知ればいいのでしょうか?これにはGoogle Chrome(や他のブラウザの)開発者ツールを使用すると便利です。

BリーグのスタッツトップページGoogle Chromeで開き、以下のようにします。

  1. F12ボタンを押す。すると開発者ツールが開きます。
  2. 開発者ツール左上にある矢印ボタンを押します
  3. あなたが気になっているページ内要素をクリックします(右クリックで「検証」を選んでも可)
  4. そうするとツール内で対応するHTML要素がハイライトされるので、それを右クリックをします。
  5. Copy -> Copy selectorを選びます

f:id:rintaromasuda:20180713143853p:plain

これでクリップボードCSSセレクタがコピーされました。ファジーカスのリンク(つまり<a>要素)でCopy selectorしたときの値はこのようになりました。

#tbl-player > tbody > tr:nth-child(2) > td:nth-child(3) > a

ただこのままだと、ファジーカスの行のリンクだけを指し示しているCSSセレクタになってしまいます。この列にある<a>要素をすべてを指すためには、すべての行を指すようにしなければならないため、tr:nth-child(2)を少しいじって以下のように変更します。

#tbl-player > tbody > tr > td:nth-child(3) > a

これですべての<a>要素が抜き出せました。あとはこの要素からhref属性を抜き出すことでURLが文字列として手に入ります。上記のプログラムの中に%>%という文字列が出てきましたが、これは「パイプ」と呼ばれるもので「まずAをやって、そして次にBをやって、最後にCをやって」みたいな処理の連鎖を「A %>% B %>% C」のように記述するやり方です。上記の例では「まずはこのCSSセレクタでa要素を取得して、その後にhref属性の値を取得してね!」という処理をパイプを使って書いています。

複数のdata.frameを結合する

私はすべての選手のすべての試合のデータをひとつのファイルにまとめたいので、その前段階としてすべてのデータをひとつのdata.frameにまとめます。これにはrbind()という関数を使います。Row bind、つまり行ベースで結合するということです。

改造版のコード

ではこれですべてのピースが揃ったはずなので、がっちゃんこしたプログラムを書いてみましょう。

if (!require(rvest)) {
install.packages("rvest")
library(rvest)
}
result <- data.frame()
for (year in c(2016, 2017)) {
for (league in c(1, 2)) {
url_top <- paste("https://www.bleague.jp/stats/",
"?tab=",
as.character(league),
"&year=",
as.character(year),
sep = "")
print(url_top)
html_top <- read_html(url_top, encoding = "utf-8")
urls_player <- html_top %>%
html_nodes("#tbl-player > tbody > tr > td:nth-child(3) > a") %>%
html_attr("href")
urls_player <- paste(urls_player, "&year=", as.character(year), sep = "")
for (url in urls_player) {
html_player <- read_html(url, encoding = "utf-8")
tables_player <- html_table(html_player)
df_game <- tables_player[[4]]
result <- rbind(result, df_game)
}
}
}
write.csv(result, file = "player_games.csv")
if (!require(readr)) {
install.packages("readr")
library(readr)
}
readr::write_excel_csv(result, "player_games_excel.csv")

実行するとかなり長い時間がかかりますが、すべての選手ページにアクセスし、試合ごとのスタッツを読み取り、最後にひとつのファイルが作成されるのが確認できます。write_excel_csv()というのはおまけで、作成したCSVExcelで開きたいときはこちらの方法で保存するのがおすすめです。

最後の問題点

せっかくデータができたのですが、これだとどの行がどの選手のデータなのか分かりません。なので各行に選手の名前と、それから上で出てきたPlayerIDを追加しておきましょう。多分このIDはそのうち役に立つと思います。

またフィルタするのに役立ちそうなので、どちらのシーズンのデータなのか、B1なのかB2なのかもデータとして足しておきましょう。

以上を踏まえて以下のようにプログラムを変更しました。これがこの記事での最終形です。

if (!require(rvest)) {
install.packages("rvest")
library(rvest)
}
result <- data.frame()
for (year in c(2016, 2017)) {
for (league in c(1, 2)) {
url_top <- paste("https://www.bleague.jp/stats/",
"?tab=",
as.character(league),
"&year=",
as.character(year),
sep = "")
print(url_top)
html_top <- read_html(url_top, encoding = "utf-8")
urls_player <- html_top %>%
html_nodes("#tbl-player > tbody > tr > td:nth-child(3) > a") %>%
html_attr("href")
urls_player <- paste(urls_player, "&year=", as.character(year), sep = "")
names_player <- html_top %>%
html_nodes("#tbl-player > tbody > tr > td:nth-child(3) > a") %>%
html_text(trim = TRUE)
startStr <- "PlayerID="
endStr <- "&"
ids_player <- substring(urls_player,
regexpr(startStr, urls_player) + nchar(startStr),
regexpr(endStr, urls_player) - nchar(endStr))
index <- 0
for (url in urls_player) {
index = index + 1
html_player <- read_html(url, encoding = "utf-8")
tables_player <- html_table(html_player)
df_game <- tables_player[[4]]
df_game$PLAYER <- names_player[index]
df_game$PID <- ids_player[index]
df_game$YEAR <- year
df_game$LEAGUE <- league
result <- rbind(result, df_game)
}
}
}
write.csv(result, file = "player_games.csv")
if (!require(readr)) {
install.packages("readr")
library(readr)
}
readr::write_excel_csv(result, "player_games_excel.csv")

名前の取得のところはhref属性を取得している部分とほぼ同じ要領で$lt;a>のテキストを取得しています。選手のIDの取得は若干複雑になってしまいましたが、要はURLの中にある”PlayerID=xxxxxx&”のxxxxxxの部分を抜き出しているだけです。

まとめ

Webスクレイピングを使用し、Bリーグの全選手の試合ごとデータを取得しました。スクレイピングをする方法は色々あると思いますが、ひとつの参考になれば幸いです。

前述のとおりもう少し後処理をしないとデータ分析で使うためには不十分ですが、それが終わりましたらバシバシまたこれでバスケ観戦がより楽しくなるような分析結果がお届けできると思います。

技術的なことでもなんでも、質問がありましたらお気軽にどうぞ。もしスクレイピングをする気はないけど私が作ったデータが欲しい!分析したい!という人がいたら、何かしらの方法(おそらくgithubかなんかに上げます)でお渡ししますのでそれもご遠慮なく。

参考書籍

rvestパッケージのことやR全般のことは概ね以下の書籍を参考にしました。

Rプログラミング本格入門: 達人データサイエンティストへの道

Rプログラミング本格入門: 達人データサイエンティストへの道

追記1(2018年7月14日)

今回作成したプログラムとそこから出力したふたつのCSVですが、githubに上げておきました。

bleaguebydata/blog/2018071301 at master · rintaromasuda/bleaguebydata · GitHub

当然ですがBリーグが公式にサポートしているファイルでもないですし、私のプログラムやその他の原因で間違いが含まれている可能性もあります。ご了承ください。

またデータの後処理はしていません。データの処理は分析者の都合によって変わってくるので敢えてそのままにしている部分もありますが、明らかなもの(例えば選手の名前に半角スペースが含まれている場合と全角スペースが含まれている場合がある)も直していませんので、そちらも使用時にはご注意ください。