![見出し画像](https://assets.st-note.com/production/uploads/images/77163058/rectangle_large_type_2_5cde73b06f8d142805295ff8976117ca.png?width=1200)
Mリーグで勝つにはアガリ率が鍵?
Mリーグ2021ファイナルも残すところあと1日です。
泣いても笑ってもあと2試合です。
今年のMリーグ覇者はどのチームになるのか?
どのチームにもまだチャンスがあるのでどこのチームが勝つのか最後まで見届けたいですね。
ところで、Mリーグを見ていると麻雀で勝つにはどのような要素が重要か気にならないでしょうか?
今回はMリーグ2021の選手成績から、個人成績が良い選手の特徴を探ります。
2021レギュラーシーズン個人成績
2021年レギュラーシーズンの個人ポイントトップは瑞原選手でした。
最終試合の沢崎選手との対局はどちらが個人成績トップになるかを決めつとても熱い試合でしたね。
シーズン90試合、1人の出場数は20〜30試合の中で1シーズンだけ見たら実際の実力とのブレが大きい中ではありますが今シーズンの成績でポイントが高い選手はどのような成績と相関があるのか調べます。
![](https://assets.st-note.com/img/1650864199974-S5cXp4Zm4I.png)
ポイントとの相関
各選手の成績との相関を見ます。
![](https://assets.st-note.com/img/1650880783820-A2AaIzDrH9.png?width=1200)
成績はポイント、総局数、連対率、ベストスコア、平均打点、副露率、リーチ率、アガリ率、放銃率、放銃平均打点の相関を比較します。
ポイントと相関が高いのは、連対率、アガリ率、総局数がTOP3になります。
いかに連対するか、アガるかが勝てる要素になりそうです。
アガるのと連対は、アガれば連対になるのでアガることが重要です。
また、注目はリーチ率が相関係数がポイントとは−0.14と相関がかなり弱いもののマイナスです。
リーチは役が一つ増え、裏ドラの可能性で打点が高くなる可能性と相手を下ろせる要素を持っていますが、逃げることができなくなり放銃率が上がります。
この負の面が強く出ていそうです。
対して、副露率がポイントと相関が0.35と正の弱相関になります。
面前でリーチよりも、鳴いてアガリに進んだ方が勝てる可能性が高いといえます。
平均打点は0.0033と相関がありません。
打点の高さは勝利には結びつかない、安くてもいかにアガるかの方が重要である可能性が高いでしょう。
以上から、いかにあがれるかが麻雀の勝利の要素とデータでも表しています。
特に連対できる場合はさらに勝てる確率が高くなるといえます。
相関係数算出コード
今回の分析のデータはMリーグの公式サイトからスクレイピングしました。
その分析のコードが下記になります。
Mリーグの成績をスクレイピングできますので、相関のみならずさまざまな分析ができます。
スクレイピングをするので、サイトに負荷をかけないよう、コードを変えた時に連続してアクセスして誤ってサイトに負荷をかけるなどの行為はしなようにお気をつけください。
下記コードに関する使用の責任は負いかねますので、個人の責任にてご使用ください。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import math
%matplotlib inline
lists = pd.read_html('https://m-league.jp/stats')
img_dir = 'image'
df = pd.DataFrame()
teams = ['drivens','EX','sakura','konami','abemas','sega_summy','raiden','u-next']
j = 0
for i in lists:
data = i
data = data.T
data.columns = data.iloc[0]
data = data[1:]
data['チーム'] = teams[j]
j+=1
df = pd.concat([df,data])
data = pd.DataFrame(df['総局数']/df['試合数'],columns = {'局数/試合数'})
X = df[['ポイント','総局数', '連対率', 'ベストスコア', '平均打点', '副露率', 'リーチ率', 'アガリ率', '放銃率', '放銃平均打点']]
X.reset_index(drop=True,inplace=True)
# X.drop('index',inplace=True,axis=1)
X.to_csv('corr_dat.csv',index=False)
a = pd.read_csv('corr_dat.csv')
fig,ax = plt.subplots(figsize=(20,8))
sns.heatmap(a.corr(),annot=True)
plt.savefig('corr.png')
Mリーグ書籍
いいなと思ったら応援しよう!
![エタ](https://assets.st-note.com/production/uploads/images/21777937/profile_e15fdb91830ef936270ee3968362107e.jpg?width=600&crop=1:1,smart)