おいしいスパイスカレーの統計学的に正しい作り方⑥|第5章 リニア爺さんの教え
【創作大賞2026 ビジネス部門 応募作品】
50年カレーを作り続けたリニア爺さんの夢は、誰にでも愛される味。
そのおいしさの秘密は平均にあった——
この連載はカレー好きの大学生クミ、AIロボ・チャッピーと一緒に、オリジナルのカレーデータセットを使って、統計と機械学習を学べる入門書。分析を進めながら「勝てるカレーの条件」と「シナモンの謎」を解き明かします。
こちらのマガジンで連載中!
翌日、私は「喫茶リニア」にいた。
リニアの店主、リニ爺は私の祖父だ。私は小さい頃からよくこの店に来ていて、両親の仕事が遅い日はここで夕飯を食べていた。
懐かしい思い出が詰まったこの店の名物は、ふわふわのオムライスに特製カレーソースがかかった「オムカレー」だ。
でも今日の私は、[普通のカレー」を頼んだ。
「リニ爺、やっぱりこのカレー……めちゃくちゃ“普通”なのに、めちゃくちゃ美味しいよ」
「ははは、“普通”を褒めてくれるなんて、嬉しいね」
「ねえ、“普通のカレー”って、なんだろう?」
私がそうつぶやいたとき、リニ爺は静かに答えた。
「僕のカレーの秘密は、“平均”だよ」
「平均!」

「そういえばクミ、XGさんとか、森さんとか、すごく複雑なモデル使ってたでしょ。」
「うん、でも私、まだ平均とか標準偏差とか、そういう基本が全然わかってないんだけど。基本がわからないまま難しいことやっちゃってたってこと??」
チャッピーはふふっと笑った。
「クミ、それでいいんだよ」
「えっ?」
「別に教科書を頭から勉強する必要はないんだ。平均、分散、標準偏差…そんな式をいっぱい出したら、クミ、もうとっくにあきらめてたんじゃない?」
「う……たしかに。」
「『正規分布じゃないとダメ』、『2値じゃないとダメ』、『等分散じゃないとダメ』。そういう「やっちゃダメなこと"を先に教えられちゃうと、怖くなって何もできなくなるよね」
「……うん」
「でも今のクミは違う。XGBoostも、ランダムフォレストも、"動かせる"ことを知ってる。だから基礎は後から学んでも、ちゃんと意味がついてくるんだよ」
「機械学習をかじったから、統計がわかる…?」
「そう。逆でもいいんだよ、順番は」
「さっすがチャッピー。自由だね!」
「まぁ、ボクは設計上、制約のかたまりだけどね」
「リニ爺、やっぱりシナモン入りは点数が低いの?」
「それを確かめるには、"比較"をすればいい」
リニ爺はタブレットを操作しながら言った。
「シナモンありとなし、この2つの平均に差があるかを調べるんだ」
「どうやるの?」
「平均を比べるならT検定だ。Pythonなら、こうだよ」
リニ爺が1行打ち込むと、すぐに結果が表示された。
「へえ、Excelより簡単なんだ……うわ、シナモンありの方が明らかに低い」
私は画面を見つめた。

「 p値は 2.880e-75 。チャッピーこれ、どういう意味?」
「うん、p値(p-value)は、 「これが偶然起こる確率」 を示してるんだ。p値が小さいほど、「偶然とは考えにくい!」という意味になる」
「2.880e-75 っていうのはどういう意味?」
「e-75 っていうのはね、 『小数点を左に 75回ずらしてね』 って意味なんだ」
「えっと……それってつまり?」
「今回の p値は、 0.000000…(ゼロが75個近く続く)…0288 くらいの 限りなくゼロ に近い数字なんだ。 つまり、シナモンありのカレーとなしのカレーの得点差はほぼ偶然じゃない」
「そんなぁ・・・」
無言のままカレーを食べ終わり、冷たい麦茶を飲み込んだ。
私は恐る恐る口を開いた。
「ねえリニ爺、これって正規分布じゃないとダメなんだよね?」
私は大学の授業で聞いた言葉を思い出して尋ねた。
「ああ、そういうルールを教わったんだね」
リニ爺は少し困ったように笑った。
「確かに、t検定やANOVAは"正規分布"を前提にしてる。でも、もし分布がおかしければ──」
「Mann-Whitneyだっけ?ほかの方法を使うんでしょ?」
「そう。でもね、それも結局は──」
リニ爺はタブレットの画面を私の方に向けた。
そこには、コードが並んでいた。
# 正規分布っぽい → t検定
stats.ttest_ind(group1, group2)
# 正規分布じゃない → Mann-Whitney
stats.mannwhitneyu(group1, group2)「……全部、書き方が同じ……!」
「そう。名前は違うけど、問いは同じ。 "グループ間で差はあるか?"──ただそれだけなんだ」
「じゃあ、もっと複雑な比較は?
たとえば、スパイスが4種類、5種類、6種類……って3つ以上を比べたいときは?」
「それも同じだよ」
リニ爺はにっこりと笑った。
# 3群以上、正規分布っぽい → ANOVA
stats.f_oneway(group1, group2, group3)
# 3群以上、正規分布じゃない → Kruskal-Wallis
stats.kruskal(group1, group2, group3)「やってることは変わらない。こうやって、スパイスの数っていう新しい変数を作る。そして、平均を比べてるだけ」

「え……?スパイスが6個のレシピは、点数が低い……?」
私は少し信じられない気持ちでデータを眺めていた。
「つまり、スパイスの種類を増やせば増やすほどいい、ってわけじゃないんだね……」
「うん。スパイスの多さは複雑な美味しさにつながるけど、うまく使わないと味の"バランス"を崩す」
チャッピーが補足する。
「でもクミ、これはあくまで"平均"の話だよ」
「え……?」
「スパイス6種のレシピでも、高得点を取ってる人はいる。平均で見れば不利でも、"例外"になることはできるんだ」
リニ爺が静かに微笑んだ。
「統計は"過去の傾向"を教えてくれる。でも、未来を作るのは──クミ、君自身なんだよ」
「……でも!私は6つ全部を使って、誰もがおいしいって思えるカレーを作りたい!」
その時、涼しげな風鈴の音とともに、店のドアが開いた。
「じいじ〜!カレー!!」
「オレもカレー!!」
元気な声が飛び込んできた。
リニ爺の孫、つまり私のいとこ、単海くんと重海くんだ。
解説編
T検定と分散分析(ANOVA)── 「くらべる」の基本
リニ爺のカレー、「普通なのに美味しい」。
その秘密は「平均」でした。派手な技術はないけれど、すべての基本がここにある。XGBoostやランダムフォレストを先に体験したクミが、後から基礎に戻ってきた。この順番でいいんです。
📊 T検定・分散分析とは?
どちらも「グループ間に差があるかどうか」を調べる手法です。
・T検定:2つのグループをくらべる(例:シナモンあり vs なし)
・分散分析(ANOVA):3つ以上のグループをくらべる(例:スパイス4種 vs 5種 vs 6種)
やっていることはシンプルで、「このグループの平均とあのグループの平均、本当に違うの?それともたまたま?」を判定しているだけです。
カレーで例えるなら、シナモン入りのカレー50皿とシナモンなしのカレー50皿を並べて、「平均点が違うのは、シナモンのせい?それとも偶然?」を数字で答えてくれる。
リニ爺が「僕のカレーの秘密は平均だよ」と言ったのは、こういうことだったのです。
🔍 結果の読み方
① p値(ピーバリュー)
t検定や分散分析を実行すると、必ずp値が返ってきます。
p値とは、「本当は差がないのに、たまたまこれだけの差が出る確率」です。
・p < 0.05 → 「たまたまとは考えにくい。差がある!」
・p ≥ 0.05 → 「たまたまかもしれない。差があるとは言い切れない」
0.05という基準は慣習的なもので、絶対的なルールではありません。でも最初はこの目安で十分です。
シナモンあり vs なしのt検定で p < 0.05 が出たら、「シナモンを入れると得点が変わる(下がる)と言えそうだ」という意味。カイジが「帰無仮説は棄却された!」とカッコよく叫んだのは、このp値が0.05を下回ったということです。
② 帰無仮説と対立仮説
少し難しそうな言葉ですが、カレーに置き換えると簡単です。
・帰無仮説:「シナモンを入れても入れなくても、得点は変わらない」(差はない、という仮定)
・対立仮説:「シナモンを入れると、得点が変わる」(差がある、という主張)
T検定は帰無仮説を「本当にそう?」と疑う検査です。p値が小さければ「いや、差がないとは言えないでしょ」と帰無仮説を棄却する。カイジの流れ星の夜に起きたのは、まさにこれでした。
③ 箱ひげ図で見る
数字だけでなく、箱ひげ図(ボックスプロット)で視覚的に確認するのが大事です。2つのグループの箱がほとんど重なっていたら、統計的に有意でも実質的な差は小さい。逆に箱がはっきり離れていれば、見た目にも納得できる差です。
Colabノートでは、シナモンあり/なしの箱ひげ図を出力しています。数字の前に、まず絵で見てください。
⚠️ t検定・分散分析の落とし穴
①有意差=意味のある差、ではない
p < 0.05 で「統計的に有意な差がある」と出ても、それが「カレーの味に影響するほどの差か?」は別問題です。
サンプル数が大きければ、ごくわずかな差でもp値は小さくなります。1000皿のデータで「シナモンありは平均0.3点低い」と有意差が出ても、0.3点の差を舌で感じられるかは疑問。統計的有意性と実質的な意味を混同しないことが重要です。
②多重比較の罠
「クミン多い vs 少ない」「ターメリック多い vs 少ない」「カルダモン多い vs 少ない」……と、何度もt検定を繰り返すと、偶然に有意差が出る確率が高まります。20回検定すれば、本当は差がなくても1回くらいは p < 0.05 が出る計算。
3つ以上のグループを比べるときにt検定ではなくANOVAを使うのは、この多重比較の問題を避けるためです。
前回はこちら
次回はこちら
次回は、クミのいとこ、単海くんと重海くんと一緒に、回帰分析について学びます!小学生でもあなどれない!機械学習の入り口です。お楽しみに!
マガジンはこちら
このマガジンは、カレー好きの大学生クミとAIロボ・チャッピーが統計と機械学習を使ってカレーコンテスト「Tabbele」に挑む物語です。
【物語編】
【コードと解説編】
第1章のコードと解説は無料記事、第2章以降は有料記事となっています。全章分のコードと、 .ipynb ファイルのダウンロード特典がついたマガジンがお得です。
