■back
 『ベストプレープロ野球’00』チーム・個人成績データ解析ツール
■本格プロ野球シミュレーション『ベストプレープロ野球’00(ベスプレ)』の、チーム・個人成績データを集計・分析するためのツールです。たくさんのシーズンを試行して、チーム・個人成績の平均値や傾向を調べたり、ある能力値だけを変えてみるなど、異なる条件で得られたチーム・個人成績の平均値や傾向どうしを比較したり――などなど、そういったコトが、簡単にできるツールです。

■たとえば、こんなコトを調べてみたいと思ったコトは、ありませんか。
  • この選手データで、たくさんのシーズンを試行してみたら、それぞれのチームの、チーム打率やチーム本塁打、チーム防御率などのチーム成績は、平均してどのくらいになるのだろう?
  • ある特定の能力値(データ)を変えてみたら、チーム・個人成績には、平均してどのくらいの影響が出るのだろう?
  • 上のような疑問に対して、信頼できる結果を得るためには、何シーズンくらい試行したら良いのだろう? シーズンごとのバラツキは、どの程度になるのだろう?
――このツールを使えば、これらのコトが、手早く簡単に調べられるようになるでしょう。100 シーズン分のチーム成績データを集めて、分析するのに、1 時間もかからないハズです。
□ウチのサイトの Web ページ「チーム成績データ分析・1:分析に必要な望ましい試行数」や、「チーム成績データ分析・2:内野手の守備力」の内容は、本ツールを用いて収集・分析したデータに基づいています。本ツールを用いて、どのような分析ができるのか、興味のある方は、まず、上の Web ページをご覧下さると、良いと思います。

■このページの一番上に戻る。

 ■ツールのダウンロード
■下のツール名をクリックして、ダウンロードして下さい(ZIP ファイル・約 47KB)。
  >> 『ベストプレープロ野球’00』用・チーム成績データ解析ツール

■ダウンロード後は、お好きな解凍ソフトで解凍して下さい。解凍されたファイルは、『R』の作業ディレクトリに置く必要があります。ご注意下さい。

■このページの一番上に戻る。

 ■ファイルの種類と説明
■このツールを使うには、CRAN(The Comprehensive R Archive Network)の提供する統計計算のためのフリーソフトウェア『R』が必要です。CRAN のウェブサイト(https://cran.r-project.org/)から、『R』をダウンロードすることができます。言語は“日本語”を選んで下さい(“日本語”以外の言語でインストールされた『R』で、本ツールを使うと、文字化けを起こす可能性があります)。なお、『R』の使い方については、ネットや書籍などで、調べて下さい。

■このツールには、以下の『R』用のファイルが、含まれています。
  • bpp_stats_reader.R」:『ベスプレ』のゲーム上でテキスト保存された野手成績リストおよび投手成績リスト(「b_stats.txt」および「p_stats.txt」)から、チーム・個人成績データファイルを作成します。
  • bpp_summary.R」:「bpp_stats_reader.R」で作成したチーム・個人成績データファイルに記録されている、オプション名ごとの試行回数、および、総試行回数を表示します。
  • bpp_converter.R」:「bpp_stats_reader.R」で作成したチーム・個人成績データファイルを、使いやすい形のデータファイルに変換します。
  • bpp_function.R」:「bpp_converter.R」で作成したチーム・個人成績データファイルを用いて、さまざまな分析を行います。
  • bpp_html.R」:おまけです。「bpp_converter.R」で作成したチーム・個人成績データファイルを用いて、さまざまな HTML ファイル用の表(TABLE)を作成します。詳しい使い方は、スクリプトのコードを参照して下さい。

■このページの一番上に戻る。

 ■準 備 (各スクリプトの初期設定)
■1. 「bpp_stats_reader.R」の初期設定を行う
1-1. [ファイル]→[スクリプトを開く...]から、「bpp_stats_reader.R」を選択します。
1-2. スクリプト冒頭の“初期設定”のところで、“オプション名の設定”、“試合数の設定”、“チーム・個人成績データをセーブするファイルの名前の設定”を、それぞれ行います。また、“個人成績データを記録するかどうかの選択”、および、“個人成績データを記録する選手の所属チームと名前の設定”を、それぞれ行います。
オプション名:どのような条件で試行したシーズンなのかを示す変数名です。たとえば、D チームの野手の“タイプ”をすべて“P”にした場合は“D_type_P”など、分かりやすい名前を付けましょう。
試合数の設定:ペナントレースの試合数です。
チーム・個人成績データをセーブするファイルの名前の設定:チーム・個人成績データをセーブするファイルの名前です。
個人成績データを記録するかどうかの選択:個人成績データを記録するかどうかの選択です。このツールでは、指定された選手 1 名の個人成績データを記録・分析することができます。
個人成績データを記録する選手の所属チームと名前の設定:個人成績データを記録する選手の所属チームと名前です。
1-3. [ファイル]→[保存]と選択して、「bpp_stats_reader.R」を保存します。
1-4. [ファイル]→[スクリプトを閉じる]などで、「bpp_stats_reader.R」を閉じます。

1-5. 続いて、[ファイル]→[スクリプトを開く...]から、「bpp_summary.R」を選択します。
1-6. スクリプト冒頭の“初期設定”のところで、“「bpp_stats_reader.R」で作成したファイルの名前の設定”を行います。
1-7. [ファイル]→[保存]と選択して、「bpp_summary.R」を保存します。
1-8. [ファイル]→[スクリプトを閉じる]などで、「bpp_summary.R」を閉じます。

■2. 「bpp_converter.R」の初期設定を行う
2-1. 続いて、[ファイル]→[スクリプトを開く...]から、「bpp_converter.R」を選択します。
2-2. スクリプト冒頭の“初期設定”のところで、“「bpp_stats_reader.R」で作成したファイルの名前の設定”、“チーム成績データをセーブするファイルの名前の設定”、および、“個人成績データをセーブするファイルの名前の設定”を、それぞれ行います。
「bpp_stats_reader.R」で作成したファイルの名前の設定:「bpp_stats_reader.R」の初期設定の際に、「チーム・個人成績データをセーブするファイルの名前の設定」で指定したファイル名です。
チーム成績データをセーブするファイルの名前の設定:チーム成績データをセーブするファイルの名前です。
個人成績データをセーブするファイルの名前の設定:個人成績データをセーブするファイルの名前です。「bpp_stats_reader.R」の初期設定の際に、「個人成績データを記録するかどうかの選択」のところで、“non”と指定していた場合は、個人成績データをセーブするファイルは作成しません。
2-3. [ファイル]→[保存]と選択して、「bpp_converter.R」を保存します。
2-4. [ファイル]→[スクリプトを閉じる]などで、「bpp_converter.R」を閉じます。

■3. 「bpp_function.R」の初期設定を行う
3-1. 続いて、[ファイル]→[スクリプトを開く...]から、「bpp_function.R」を選択します。
3-2. スクリプト冒頭の“初期設定”のところで、“「bpp_stats_reader.R」で作成したファイルの名前の設定”、および、“「bpp_converter.R」で作成したファイルの名前の設定”を、それぞれ行います。
3-3. [ファイル]→[保存]と選択して、「bpp_function.R」を保存します。
3-4. [ファイル]→[スクリプトを閉じる]などで、「bpp_function.R」を閉じます。

――以上で、準備は完了です。

■このページの一番上に戻る。

 ■データの収集
■4. 『ベスプレ』でペナントレースを行い、シーズン成績を記録する
4-1. 『ベスプレ』で、ペナントレースを 1 シーズン行います。
必ず、日本シリーズまで行って下さい。日本シリーズのデータは記録しませんが、ペナントレースの全日程を、全チームが、完全に消化したかどうかの確認のために必要です。
4-2. [ファイル]→[テキスト保存]→[成績]と選択します。「成績出力」のウインドウが出ますので、[野手成績リストの出力]を選択して、「OK」をクリックします。[保存する場所]は『R』の作業ディレクトリ、[ファイル名]は「b_stats.txt」(初期設定のママ)を設定して、保存します。
4-3. [ファイル]→[テキスト保存]→[成績]と選択します。「成績出力」のウインドウが出ますので、[投手成績リストの出力]を選択して、「OK」をクリックします。[保存する場所]は『R』の作業ディレクトリ、[ファイル名]は「p_stats.txt」(初期設定のママ)を設定して、保存します。

■5. 『R』のデータフレーム形式で、チーム成績を記録する
5-1. 『R』上で、[ファイル]→[Rコードのソースを読み込み...]から、「bpp_stats_reader.R」を選択します。「■総試行回数:○○/■今回のオプション名「○○」での試行回数:○○」と表示されたら、チーム・個人成績データの記録は完了です。
□うっかり、同じシーズンのデータを重複して記録したり、シーズン途中のデータを記録したりしようとすると、警告が出て、スクリプトの実行を停止します。もちろん、それらのデータは記録されませんので、安心して、ご利用いただけると思います。
5-2. 以下、好きなだけ、■4. と ■5. の手順を繰り返します。

□なお、これまでに「bpp_stats_reader.R」で作成したチーム・個人成績データファイルに記録されている、オプション名ごとの試行回数、および、総試行回数を表示するには、『R』上で、[ファイル]→[Rコードのソースを読み込み...]から、「bpp_summary.R」を選択します。

■6. 選手データ・監督データなどの条件を変えて、データを収集する
6-1. 『ベスプレ』のチームデータの能力値などの条件を変えます。チームデータの変更のやり方は、『ベスプレ』のヘルプを参照して下さい。
□なお、ここで、チーム名の「記号」(野手成績リスト・投手成績リストのテキストファイル中では「記」と表示されています)は、変えないで下さい! また、個人成績データを記録している場合は、その選手の名前・所属チームも、変えないで下さい(1 つのチーム・個人成績データファイルには、12 種類のチーム記号と、1 人の選手名しか認識できない仕様になっています。たとえば、「Bu」を「E」に変える場合は、あらためて、上の ■1. 〜 ■3. の手順を行い、別のファイル名のファイルにチーム・個人成績データを保存するようにして下さい)。
6-2. 『R』を起動し、「bpp_stats_reader.R」の設定について、■1. の手順 1-1 〜 手順 1-4 を再度行います。ただし、“チーム・個人成績データをセーブするファイルの名前の設定”は変更しないで下さい! また、個人成績データを記録している場合は、その選手の名前・所属チームも、変更しないで下さい(異なるファイルにチーム・個人成績データを保存してしまうと、各条件で得られたチーム・個人成績データの比較分析ができなくなります。また、このツールでは、個人成績データは、1 人の選手のデータしか記録・分析できない仕様になっています)。

6-3. 以上で、設定は完了です。あとは、■4. と ■5. の手順を、好きなだけ繰り返します。

――以上の要領で、さまざまな条件のチームデータ(以下、「オプション条件」と呼ぶコトにします)でシーズンを試行して得られたチーム・個人成績データを、好きなだけ集めるコトが出来ます。
□たとえば、1 つのファイルに、さまざまなオプション条件で得られたチーム成績データが多数記録されていると、これらのオプション条件のあいだで、チーム成績にどのような違いが生じているのか――といった比較分析が、「bpp_function.R」のスクリプトを用いて、簡単にできます。

■このページの一番上に戻る。

 ■データ分析のための準備
■7. 「bpp_stats_reader.R」で作成したチーム・個人成績データファイルを、使いやすい形に変換する
7-1. 『R』上で、[ファイル]→[Rコードのソースを読み込み...]から、「bpp_converter.R」を選択します。「データ変換完了!」と表示されたら、変換完了です。
□「bpp_stats_reader.R」で作成されたチーム・個人成績データファイルは、記録されている成績の各項目が、『ベスプレ』の「成績出力」で出力される成績項目に準じています。このままでは、チーム・個人成績を比較分析するには少し不便です。そのため、分析しやすいチーム・個人成績項目になるように、「bpp_converter.R」を使って、記録されたチーム・個人成績項目を整理します。

■8. データ分析のために使う R オブジェクトを読み込む
8-1. 『R』上で、[ファイル]→[Rコードのソースを読み込み...]から、「bpp_function.R」を選択します。「準備完了!」と表示されたら、分析の準備は完了です。
□初期設定では、「bpp_stats_reader.R」で作成されたチーム・個人成績データは「bpp_stats」という名前のデータフレーム・オブジェクトに、「bpp_converter.R」で作成されたチーム成績データは「bpp_data」という名前のデータフレーム・オブジェクトに格納されます。

――以上で、『R』上でデータ分析を行う準備が整いました。あとは、『ベスプレ』のチーム成績データを分析するための特別な R オブジェクト(関数)を駆使して、思う存分、データ分析を行って下さい。
■9. ファイルに記録されているチーム・個人成績項目一覧
9-1. 「bpp_stats_reader.R」で作成されたチーム・個人成績データファイル
■打撃成績
b.name: 名前, b.team: チーム, b.avg: 打率, b.games: 試, b.ab: 打, b.hits: 安, b.2b: 2, b.3b: 3, b.hr: 本, b.rbi: 点, b.sh: 犠, b.bb: 四, b.so: 三, b.sb: 盗, b.errors: 失, b.slg: 長率, b.obp: 出率
■投手成績
p.name: 名前, p.team: チーム, p.era: 防御, p.games: 試, p.cg: 完, p.wins: 勝, p.losses: 敗, p.saves: S, p.sp: SP, p.ip: 回数, p.hits: 安, p.hr: 本, p.bb: 四, p.so: 三, p.er: 自責点, p.wpct: 勝率, p.kper9: 振率
■その他
s.games: シーズン試合数

9-2. 「bpp_converter.R」で作成されたチーム・個人成績データファイル
■試合成績
W: 勝利, L: 敗戦, D: 引き分け, WP: 勝率, AVG: 打率, ERA: 防御率
■打撃成績
G: 試合, AB: 打数, H: 安打, HR: 本塁打, RBI: 打点, SB: 盗塁, BB: 四死球, SO: 三振
■投手成績
GP: 登板, IP: 投球回, CG: 完投, S: セーブ, SP: セーブポイント, Ha: 被安打, HRa: 被本塁打, BBa: 与四死球, K: 奪三振, ER: 自責点
■守備成績
E: 失策

■このページの一番上に戻る。

 ■データの分析
■10. 『R』上でデータ分析を行う
10-1. 「bpp_function.R」を読み込むことで、『R』上でデータ分析をするための、さまざまな R オブジェクト(関数)が使用できるようになります。ここでは、主な R オブジェクト(関数)のみを紹介します。詳しくは、「bpp_function.R」のスクリプトコードを参照して下さい。
□初期設定では、「bpp_stats_reader.R」で作成されたチーム・個人成績データは「bpp_stats」という名前のデータフレーム・オブジェクトに、「bpp_converter.R」で作成されたチーム成績データは「bpp_data」という名前のデータフレーム・オブジェクトに格納されます。


【データフレーム・オブジェクトの操作に関する R オブジェクト(関数)】

html.table(data.name)
引数 data.name で指定されたデータフレーム・オブジェクトを、HTML の表(table)を作成する命令(タグ)の形で出力します。そのままコピー&ペーストすれば、データフレーム・オブジェクトのデータを、ブラウザ上で HTML の表(table)の形で見ることができます。

option.data(data.name, option.name)
引数 data.name で指定されたデータフレーム・オブジェクトから、引数 option.name で指定されたオプション条件のデータのみを抽出したデータフレーム・オブジェクトを返します。

season.delete(season.num)
「bpp_stats.R」で作成されたチーム成績データのデータフレーム・オブジェクトから、引数 season.num で指定されたシーズンのデータのみを削除したデータフレーム・オブジェクトを返します。「bpp_stats_check.R」でデータの重複などが見つかった場合、この R オブジェクト(関数)を使って修正して下さい。


【各チーム成績項目のデータ分析に関する R オブジェクト(関数)】

bpp_data.mean()
「bpp_data.R」で作成されたチーム成績データのデータフレーム・オブジェクトから、オプション条件ごとに、各チームの各チーム成績項目の平均値(標本平均)をまとめたデータフレーム・オブジェクトを返します。出力内容については、head() 関数や summary() 関数などで確認して下さい。

bpp_data.sd()
「bpp_data.R」で作成されたチーム成績データのデータフレーム・オブジェクトから、オプション条件ごとに、各チームの各チーム成績項目の標準誤差(標本平均の標準誤差)をまとめたデータフレーム・オブジェクトを返します。出力内容については、head() 関数や summary() 関数などで確認して下さい。

bpp_hist(stats.name, team.id, option.name)
「bpp_data.R」で作成されたチーム成績データのデータフレーム・オブジェクトから、引数 stats.name で指定されたチーム成績項目について、引数 team.id で指定されたチームの、引数 option.name で指定されたオプション条件における、ヒストグラムを作成します。ヒストグラムには、標本平均・標準誤差をもとに計算した正規分布のグラフも併記します。
下図は、bpp_hist("ERA", 1, "ORIGINAL") の実行例です。
bpp_hist("ERA", 1, "ORIGINAL") の実行例(6KB)

mean.plot_hist(stats.name, team.id, option.name)
「bpp_data.R」で作成されたチーム成績データのデータフレーム・オブジェクトから、引数 stats.name で指定されたチーム成績項目について、引数 team.id で指定されたチームの、引数 option.name で指定されたオプション条件における、ヒストグラムを作成します。ヒストグラムには、シーズンの試行数(右の縦軸)に対して、標本平均(横軸)がどのように推移したかを示すグラフ(赤い折れ線グラフ)が併記されます。また、{標本平均 ± 1 × 標準誤差} の範囲を示す青い垂直線、および、標本平均・標準誤差をもとに計算した正規分布のグラフも併記します。
下図は、mean.plot_hist("ERA", 1, "ORIGINAL") の実行例です。
mean.plot_hist("ERA", 1, "ORIGINAL") の実行例(8KB)


【オプション条件が異なるチーム成績データの比較分析に関する R オブジェクト(関数)】

dif.mean(option1, option2)
「bpp_data.R」で作成されたチーム成績データのデータフレーム・オブジェクトから、引数 option1 で指定されたオプション条件のデータと、引数 option2 で指定されたオプション条件のデータに対して、各チームの各チーム成績項目の平均値(標本平均)の差をまとめたデータフレーム・オブジェクトを返します。出力内容については、head() 関数や summary() 関数などで確認して下さい。

dif.mean.sd(option1, option2)
「bpp_data.R」で作成されたチーム成績データのデータフレーム・オブジェクトから、引数 option1 で指定されたオプション条件のデータと、引数 option2 で指定されたオプション条件のデータに対して、各チームの各チーム成績項目の平均値(標本平均)の差に対する標準誤差をまとめたデータフレーム・オブジェクトを返します。出力内容については、head() 関数や summary() 関数などで確認して下さい。

bpp_sig(option1, option2, alpha)
「bpp_data.R」で作成されたチーム成績データのデータフレーム・オブジェクトから、引数 option1 で指定されたオプション条件のデータと、引数 option2 で指定されたオプション条件のデータに対して、各チームの各チーム成績項目の平均値(標本平均)の差に、引数 alpha の危険度で有意差がある(TRUE)か、ない(FALSE)かをまとめたデータフレーム・オブジェクトを返します。出力内容については、head() 関数や summary() 関数などで確認して下さい。

mean.plot_hist.2(stats.name, team.id, option.name1, option.name2)
「bpp_data.R」で作成されたチーム成績データのデータフレーム・オブジェクトから、引数 stats.name で指定されたチーム成績項目について、引数 team.id で指定されたチームの、引数 option.name1 で指定されたオプション条件におけるヒストグラムと、引数 option.name2 で指定されたオプション条件におけるヒストグラムを、重ねて表示します。ヒストグラムには、シーズンの試行数(縦軸)に対して、標本平均(横軸)がどのように推移したかを示すグラフ(赤と青の折れ線グラフ)が併記されます。また、標本平均・標準誤差(標本平均の標準誤差)をもとに計算した正規分布のグラフも併記します。
下図は、mean.plot_hist.2("ERA", 1, "D_SS.S", "D_SS.A") の実行例です。
mean.plot_hist.2("ERA", 1, "D_SS.S", "D_SS.A") の実行例(11KB)

――この他にも、いくつかの R オブジェクト(関数)が存在します。詳しくは、「bpp_function.R」のスクリプトコードを参照して下さい。

■このページの一番上に戻る。

■back