Bxxxxxx_最終課題_Pythonを用いたマクドナルドのメニューにおけるカロリー分析
こちらは 逆TUT Advent Calendar 2024 13日目の記事です。
昨日の記事は、夕凪🥷さんの「しょーみ「伊賀」って街どない?」でした。
自己紹介
はじめまして、🦈です。技術科学海域の機械海溝からB3海里ぐらいを泳いでます。
先日、🦈が受講している講義の最終課題が発表され、内容は自由に決めていいという事だったので、noteを書くことにしました。本記事は提出した課題に文章、画像を加えたものとなります。
はじめに
私、マクドナルド(別名:マック,マクド,マド,マドルド、クドナル…)には定期的に行くのですが、倍ビッグマックとか、ダブル肉厚ビーフとかを良く食べます。これらってカロリー高めなんですね。やっぱりカロリーが高いと食べ終わった後の満足感も高いんですよ。
そんなマクドナルドですが、たまに値段高くね…とか、逆にお得じゃんって思うときがあります。
例えば、トリチ買うよりダブチx2買った方がクアトロチでお得…みたいなやつです。1金欠大学生としてはやはり安く大量のカロリーを摂取できることが幸せなのですよね。
ということで、マクドナルドのカロリーについて分析してみることにしました。
使ったもの
Microsoft Excel
データ収集
手入力
まず、データを集めます。
日本のマクドナルドのHPにあるメニューを開き、
商品名
価格
カロリー
重量
についてExcelにまとめていきます。(重量はあんまり使わないです)
カロリー、重量は各商品ページの栄養情報に記載されてます。
今回は食べ物に限定し、バーガーとサイドメニューの2ジャンルの全メニュー、セット用のドリンクを対象とします。
組み合わせが多い
みなさんご存じの通り、マクドナルドではセットを注文することでお得にバーガー,サイドメニュー,ドリンクを食べることができます。また、サイズもそれぞれS,M,Lから選ぶことができるため、1つバーガーのセットを取ってもたくさんの選択肢があります。それら全ての組み合わせについて場合分けするのは大変なので,今回セットを頼む人の条件として以下の通りに定義しました。
バーガー以外はポテト,マックシェイク チョコレートを選択する
デフォルトのセット(ポテトM,マックシェイク チョコレートS),LLセット(ポテトL,マックシェイク チョコレートM)の2通りから選ぶ
朝マックのセットについてはデフォルトを(ハッシュポテト,ファンタグレープM),LLセットを(マックナゲット5ピース,ファンタグレープL)を選択する
サイドをポテト、ドリンクをマックシェイク チョコレートとした理由は、それぞれのジャンルで最もカロリーが高いためです。
また、ファンタグレープはマックシェイクチョコレートの次にカロリーが高いです。
データ完成
こうして計140の商品についてデータをまとめることができました。途中で入っている横線はジャンルを分かりやすくするためのもので、上からレギュラー,夜マック,朝マック,ドリンク(コカ・コーラのみ),夜マックセット,夜マックLLセット,レギュラーセット,レギュラーLLセット,朝マックセット,朝マックLLセットという順番で格納されています。次の章ではPythonを用いてこれらのデータを分析していきます。
データ分析
先ほど作成した McDonalds_data.xlsx をGoogle Driveにアップロードし,同フォルダ内に McDonalds_Analysis.ipynb を作成します。
データの読み込み
まずはGoogle Driveに接続していきます。白塗りになってるのはファイルパスの部分です。
次にExcelデータを読み込んでいきます。今回はsheetが一枚だけなのでわざわざsheetsに格納する必要はありませんが、メンテナンス性が上がるので・・・
これでデータの読み込みができました。
グラフを描いてみる
分析を始めるにあたって、まずはデータがどのような分布となっているかを見ていきます。価格を横軸に、カロリーと重量をそれぞれ縦軸にとって2つのグラフを作成してみます。
なかなかいいですね。
Fig1を見ると、綺麗に価格に対してカロリーも増加しており、線形近似できそうです。一方でFig2を見ると、データの分布が上下にバラついているのが分かります。
価格対カロリーを求める
カロリーをコスパ良く摂取できる指標として、価格対カロリー[kcal / 円]を定義します。リストdfに列を追加し、計算した値を入れていきます。
また、グラフも作成します。
ついでに、[価格対カロリー]について分析してみましょう。最大値,最小値,平均値,中央値,標準偏差を求めます。
最大値:2.21 [kcal/円] ソーセージマフィン
最小値:0.03 [kcal/円] サイドサラダ
また,価格対カロリーの上位3つと下位3つを調べてみます。
よって、マクドナルドで最もコスパ良くカロリーを摂取できる商品はソーセージマフィン単品、逆に最もコスパが悪いのはサイドサラダでした。
ジャンル別に分けてみよう
先程までは全ての商品に対して分析を行ってきましたが、
こう思いませんか?
そこで、最強コスパカロリー摂取セットを作るために、ここからはジャンル別に分けて分析していきます。
まずはFig1をジャンル別に色を分けて再度表示してみましょう。
次に、各ジャンルの上位3つと平均値について調べてみます。
最もカロリー対効果の平均値が高いジャンルは夜マックLLセットで、次にレギュラーLLセットが高いことが分かります。
考察
最強コスパカロリー摂取セットを探す
では、先ほどの結果から最強コスパカロリー摂取セットが作れないか考えてみましょう。バーガー単品、サイド、ドリンクの最大値を誇るメニューたちを組み合わせてみます(カロリーの高いマックシェイクが選べないため、朝マックは除きます)。
マックチキン:180円 377kcal
三角チョコパイ 黒:160円 330kcal
マックシェイク チョコレートM:220円 386kcal
そしてその結果は、、、
最強コスパカロリー摂取セットの価格対カロリー:1.952[kcal/円]
となりました。
マックチキンセットLLを買った方が高いですね。世界は簡単ではありませんでした。
なぜ、LLセットが安いのか?
ここで、普通のセットに比べてLLセットが高い理由について考えてみます。バーガーはどちらも同じなため、サイドとドリンクに着目してみましょう。
マックフライポテトM 330円 406kcal
マックフライポテトL 380円 512kcal
マックシェイク チョコレートS 160円 232kcal
マックシェイク チョコレートM 220円 386kcal
ここで、両者はどちらも+50円でサイズ変更が可能なので、カロリーの差分を50円で割ってみます。
マックフライポテト (512-406)/50 = 2.12 [kcal/円]
マックシェイク チョコレート (386-232)/50 = 3.08 [kcal/円]
これは価格対カロリーの平均値1.48よりもはるかに高い値であり、LLセットのコスパを上げる要因となっていると考えられます。
検証
実際に一番コスパの良いセットである、マックチキンLLセットを注文してみます。ポテトをLに、ドリンクはマックシェイクMを頼みたかったのですが、シェイクはやっておらず、次にコスパの良いファンタグレープLを注文しました。これで600円。カロリーは985[kcal]です。
食べた感想としては、600円にしては量が多くて割と満足できるといった感じです。
Appendix
本編は終わりましたが、ちょっとした付録を。
課題では朝マックセットが分析対象に含まれていますが、マクドナルドには朝マックコンボ(バーガーとドリンクS)も存在します。
朝マックは単品ではコスパが高いものの、サイドとドリンクによって価格対カロリーが下がり、セットでのコスパが悪くなる傾向があるので、このコンボは朝マックの最適解といえる可能性があります。
そこで、最もコスパの良かったソーセージマフィンについてコンボを考えてみました。
ソーセージマフィンコンボ 240円 498kcal
このとき、2.075[kcal/円]となりました。朝マックセットの最大値1.868[kcal/円]に比べて高いことから、コンボの方がコスパが良いことが分かります。
早速注文しに行きました。食べた感想としては、安かったですが少し物足りなさを感じます。単品でソーセージマフィンx2ぐらい欲しい所です。
まとめ
今回はマクドナルドの商品について分析を行いました。
紳士淑女の皆さんはぜひマックチキンLLセットを食べてコスパ良くカロリーを摂取していきましょう🍔。
裏TUT Advent Calendar 2024、対偶TUT Advent Calendar 2024にも参加させて頂いているので、興味ある方は是非読んでみてください🤩。
明日の記事はえどさんの「鳴りやめよ、ロックンロール」です。
最後までご覧いただきありがとうございました🦈。