hibitの技術系メモ

数学とか3Dとか翻訳とか

FE(ファイアーエムブレム)に性差別はあるのか?~あるいは多変量解析と有意差検定~

 どうも、今回の記事はVRもCGもあまり関係ありません。敢えていえば数学です。

 皆様はFE(ファイアーエムブレム)という家庭用ゲームのシリーズをご存知でしょうか。任天堂が発売しているSRPGで、戦場でコマを動かして敵を倒して……というジャンルの草分け的存在でもあります。このシリーズ、ユニットがレベルアップする時に、そのパラメータが乱数によって上がるというユニークなシステムがありまして、その数に一喜一憂するのも大きな楽しみです。

 しかしこの成長率、どうも「美男美女>>>その他大勢」「美女・ロリ>>>醜男・老人」的なルッキズム/セクシズムに支配されていて、なんとなく現代のポリティカルコレクトネスに反しているように思えてなりません。そこで、本記事ではその点を統計解析によって厳密に検証していくのが目的になります。美醜/年齢は厳密なラベリングが難しいので、今回は性別に焦点を当てていきます。

 なお、余談になりますが、FC・SFC時代は「剣=正義=高性能=イケメン>>>斧=悪役=低性能=悪役顔」という斧差別が深刻であったのですが、トラキア776ではアファマティブアクションによる斧優遇が入りまして、今ではいいバランスに落ち着いています。やはり現実世界と同様、ゲームにも時代に合わせた倫理観のアップデートが必要ですね。後述しますが、トラキアは斧優遇以外でも、シリーズで独自の立ち位置を築いています。

成長率のリストアップ

 まず、全シリーズをまとめた成長率のリストを作成する必要があります。しかし、各シリーズによってパラメータの項目があったりなかったりするので、まずそれを整理する必要があります。整理したのが下の表です。

タイトル HP 魔力 武器 速さ 守備 魔防 体格 移動
暗黒竜と光の剣 - - -
外伝 - - -
紋章の謎 - - -
聖戦の系譜 - - -
トラキア776 - -
封印の剣 - - - -
烈火の剣 - - - -
聖魔の光石 - - - -
蒼炎の軌跡
暁の女神 - - -
新・暗黒竜と光の剣
新・紋章の謎 - - -
覚醒 - - -
if - - -
エコーズ - - - -

「△」は、成長率がほぼゼロであったり低いパラメータに設定されていたりするものです。つまり、上がるのが非常にレアなパラメータです。トラキアは「移動」と「体格」が上がる可能性があるというぶっ壊れ具合だったなあ……。

 もう一つ整理する必要がある点は、シリーズがリメイクを重ねているということです。「紋章の謎」は「暗黒竜と光の剣」のリメイクですし、更にそれをリメイクして「新・紋章の謎」が発売されています。こういったリメイクを全てカウントしていくと、同じキャラが複数出現してしまってデータが見づらくなります。なので、リメイクがされているものはそれを優先して、リメイク前のタイトルのデータは使わないという整理をします。それとは別に、異なるタイトルで同じユニットが出る(「新・紋章の謎」のカチュアと「エコーズ」のカチュア)ものや、同じ作品で年齢等が違う(「聖戦の系譜」の親世代のフィンと子世代のフィン)という例もありますが、それは異なるユニットとしてカウントします。

 以上のような要素を勘案した末に調整した表が以下になります。

タイトル HP 魔力 速さ 守備 魔防
聖戦の系譜
トラキア776 魔力
封印の剣
烈火の剣
聖魔の光石
暁の女神
新・紋章の謎
覚醒
if
エコーズ

「力」と「魔力」は、当該タイトルにそのパラメータがないので便宜的に他パラメータから流用したものです。タイトルによって「力=魔力」(つまり、武器と魔法を同時に使用するケースがない)ものと、「力と魔力は独立」(マスターナイトのように、武器と魔法とを両方使えるクラスが存在する)ものがあるので仕方ないです。トラキアは「魔防=魔力÷2」としているので、魔力を流用します。エコーズの魔防は成長率が低めに設定されているので10倍補正します。

 そのような調整を経た後の成長率リスト、いわば全シリーズ統一成長率表を作成したのですが、それを貼ると557行の膨大なデータになってしまうのでgithubにまとめております。ちなみに性別の欄は私が手作業で入力しました。疲れた……! どこかにミスがあるかもしれないので、プルリク等随時募集しております。

 なお、データの収集にあたっては主にかわき茶亭様のデータを使用させていただきました。この場を借りてお礼を申し上げます。

外れ値の除外

 なお、上のデータではカレル(封印の剣)とマリナス(封印の剣)(烈火の剣)を除外しています。カレルは成長率が一人だけダントツで高いためです。その成長率に意味があるならまだわかりますが、終盤で加入してレベルも上限に近い、いわゆる「お助けキャラ」(レベルアップしても意味ないので成長率は低いのが普通)なのに、なぜか異常なまでに成長率が高く設定されています。スタッフのお遊びでしょうか……。FEは時々スタッフの贔屓が目に見えるのが玉に瑕です。マリナスは非戦闘員の割りに成長率が高く、ノイズになりそうなので除外させてもらいました。

 また、外れ値という訳ではないのですが、聖戦の子世代の子供ユニットのほとんどは、成長率を一意に定めることが不可能なため除外しています。

主成分分析

 実際に統計的有意差の検討に入る前に、ユニットの成長率の分布を見た方が面白いので先にそちらの話をします。パラメータは、HPから魔防までの8種類がありますが、8個だと多すぎるので3個に集約しましょう。もし、8個のパラメータに何の偏りもなく散在しているならば集約は不可能ですが、現実のデータにはほぼ必ず何か偏りが存在します。例えば、魔力の成長率が高いユニットは魔防のそれも高い傾向にあります。そのような似た傾向を持つパラメータをセットにして少数の重要な変数に要約する方法を主成分分析(Principal Component Analysis)と言います。偏ったデータが真っ直ぐに見える「角度」を見つけ出す方法とも言えます。以下、556ユニットに対して主成分分析を行った結果です。

f:id:hibit_at:20181022033844p:plain

f:id:hibit_at:20181022034358p:plain

 PC1、PC2、PC3の3次元のデータをそのまま表すのは不可能なので、2つの2次元に分けています。赤い文字は女性ユニット、青い文字は男性ユニットを指します。

 PC1が低い側はファやミルラといった高成長率ユニット(マムクートがロリだから、ちくしょう!)、高い側がアランやバヌトゥといった成長をあきらめたユニット(ジェイガン系)(ジェイガンは集計の都合上いませんが……)であることから、PC1は「全体的な成長率の低さ」であることがわかります。

 PC2の高い側はトリスタンやヨハルヴァといった肉体派ユニット、低い側はサラやミカヤといった魔法系ユニットであることから、PC2は「肉体派傾向」であることがわかります。PC2の高い側に、アルテナ、リーフ、キュアンと並んでいるのが親子の絆を感じさせてよいですね。逆に、ロナンは弓使いなのになぜそんなに魔力の成長率が高いの?

 PC1とPC2のベクトルは以下のようになっています。

PC1 f:id:hibit_at:20181022040937p:plain

PC2 f:id:hibit_at:20181022040953p:plain

 おおむね所感と一致していますね。

 なお、3次元のグラフもrglライブラリを使って描画可能なのですが、文字ラベルを載せられませんし、グラフを動かせないとあまり意味がないのが辛いですね。やはり人類は一刻も早く2次元ディスプレイを脱出してVR空間で3次元情報を扱えるようになるべき……。一応下に3次元グラフ(の1投影)を載せておきます。私の技量をもってすれば4次元以上のグラフも、投影と回転を駆使して描画できないこともないですが、それをしたところでわかりやすくなる訳でもないので、しません。

f:id:hibit_at:20181022034314p:plain

線形判別分析

 男女によって成長率の傾向に違いがありそうということがわかりました。では、成長率から性別を予測できるのでしょうか。先程の主成分分析は、男女関係なく数値を解析した後で「色付け」をしてその分布を見ましたが、最初から「男女」の違いがわかった上で変数を組み立てれば、成長率から男女を予測するようなモデルを作れるのではないでしょうか。線形判別分析(Linear Discriminant Analysis)という手法でそれを実験してみましょう。すごく原始的ですが、これも一種の教師あり機械学習というやつです。

 判別分析では通常、学習データ(training data)とテストデータ(test data)を分けます。全てのデータを基に学習すると良い成績が出て当たり前なので、学習データと無関係なテストデータを正しく判別できてこそということです。そこでそのようにデータを分けるかという点が重要になるのですが、ここは「暁の女神」以前(FC~Wii)と「新・紋章の謎」以降(DS~)でちょうどハードも分かれてキリがいいので、そのようにしています。(なお、全てのデータを学習に使って、データ内で学習データとテストデータを交互に分け続ける交差検証(cross validation)という手法もあるのですが、今回は正攻法でいきます)

 以下が、暁以前の312ユニットを基に学習させたモデルから、新紋章以降の244ユニットを対象に判別分析を行った結果になります。

M F sum
M 137 9 146
F 68 30 98
sum 205 39 244

 …あんまり判別率がよくないですね。特に女性(F)は過誤(Mと判定)の方が多いです。成長率だけで男女を断定することは難しそうです。

有意差検定

 いよいよ核心に入っていきます。女性ユニットは男性ユニットに比べて有意に成長率が高いと言えるのでしょうか。まずは単純なランキングを並べてみます。

順位 名前 性別 合計
1 ファ F 690
2 ミルラ F 670
3 セティ M 475
4 セリス M 440
5 チャド M 415
6 サラ F 410
7 アルテナ F 404
8 エフラム M 400
9 ミカヤ F 400
10 ビーゼ F 400

 色々な作品からバランスよく選出されていますね(GBA世代のマムクートはダントツですが)。私はこの中だとビーゼさんが一番好きです。クールだけど無愛想じゃないところが好き。4章で加入してから頑張って育てると一気にエースになれるところも好き。解析する前は、作品によって成長率の「相場」が違ったらどうしようかと思っていましたが、そこまで違いはなさそうです。男女比も、トップ10を見るだけではなんとも言えませんが、そこまで偏りはなさそうです。

 では、統計検定に入る前に、まず分布が正規分布に従っているかを確認します。自然な分布は、平均を中心に釣鐘状の分布(正規分布)を示すもので、「統計的に差がある」という場合もこの分布を前提にしているものが多いです。この前提が崩れていると(フタコブラクダみたいな分布とか)例えば偏差値とかも信頼性がなくなってしまいます。え? 偏差値って頭の良さじゃないのって?

f:id:hibit_at:20181022194848j:plain

(「無頼男/梅澤春人」6巻より引用)

 失礼、取り乱しました。何はともあれヒストグラムを書いてみたらハッキリします。下図が成長率全体のヒストグラムです。

f:id:hibit_at:20181022195214p:plain

 ついでに、男女の違いを明示してみますか。

f:id:hibit_at:20181022200614p:plain

 男性の平均は281.3、女性の平均は304.2であり、平均は女性が優れていることはすぐにわかるのですが、問題はこれが統計的に有意な差といえるかどうかです。  この分布、見かけはなんとなく釣り鐘っぽいのですが、正規性を確認するShapiro-Wilk検定を行うと

        Shapiro-Wilk normality test

data:  x[, 12]
W = 0.9096, p-value < 2.2e-16

 となり、2.2*10^{-16}というすごい数値で棄却されます、残念。これではt検定が使えない……。しょうがないのでノンパラメトリックな手法であるU検定を試みることにします。

        Wilcoxon rank sum test with continuity correction

data:  xM[, 12] and xF[, 12]
W = 30221, p-value = 0.002382
alternative hypothesis: true location shift is not equal to 0

 なんと、帰無仮説(男女差はない)の採択率は0.002382\simeq0.2\%となり棄却されてしまいました。よって、対立仮説である「男女差はある」が採択され、ファイアーエムブレムにおいてはやはり女性ユニットが成長率において優れていることが統計的にも明らかになってしまいました。なんたるポリティカルコレクトネス違反。任天堂およびインテリジェントシステムズは、現代に相応しいゲームを開発するべくその倫理観をアップデートされたし。

まとめ

  • ファイアーエムブレムにおいて、成長率は「全体的な成長率の高低」「肉体派か魔法系か」によってある程度要約される
  • 成長率だけで男女を予測するのは困難
  • 女性ユニットの方が有意に成長率が高い傾向にある
  • ポリコレ云々はすべてジョークです
  • Swtichで発売する予定の据置新作楽しみにしています

 以上です。Further studyが望まれますが、それは筆者の統計能力の上達を待ってからになります。