難易度:★★☆☆☆
スーパーやデパートなどの食品売り場では、売上を最大化しつつも廃棄ロスを最小化することが大きな課題となります。準備した食品の数が少なければ販売機会ロスとなります。逆に多すぎて売り残れば廃棄せざるを得ません。食品の正確な需要予測ができれば、売上の向上と廃棄ロスの削減を両立させることができます。そこで本Questではこの課題への取り組みの1つとして、実際の食品販売データを使って食品の需要予測、すなわち食品販売数を予測するモデル作成に挑戦します。本講座を通じて、仮説に基づくデータ分析の進め方や、予測モデルを作る前のデータの加工方法、そして重回帰モデルの使い方と精度改善の仕方を学びます。
※ 各課題で使用するExcelファイルは こちら よりダウンロードすることができます
※ Pythonバージョンはこちら
千代田区のある会社では、お昼になるとお腹を空かした社員たちが続々とカフェフロアに集まってきます。彼らの目的は『お弁当』。午後の業務を遂行するためにも、お昼のエネルギー補充は欠かせません。平均年齢30歳の社員たちにとってのランチタイムは、財布、胃袋、時間、そして己の味覚との相談の時でもあります。
「財布に優しく、お昼は安く」「ランチに外に行く時間すら惜しい」「今日は好物のカレーだ。お弁当にしよう」
さまざまな思いが交錯するなか、お弁当はひとつ、またひとつと売れていきます。しかし、売れ残るお弁当もチラホラ。社員の胃袋に収まらなかった売れ残りのお弁当から漂う哀愁は、環境にも、そしてお弁当屋さんの懐にも優しくありません。
売り切れた場合も同様。「ひょっとしたら、もっと売れたかもしれない……」売り切れは、お弁当屋さんにとっては機会損失、カフェフロアまで来た社員にとっては時間損失となります。
弁当の売上向上・廃棄削減のためには、正確な需要予測に基づき生産計画を立てる必要があります。そこで、最適な弁当の生産量を推測するため、曜日やメニュー等の複数の変数から弁当の販売量を予測するモデルを作成します。
Mission 1
弁当の販売量を予測するモデルを作るため、カフェフロアの弁当販売店から過去の販売実績データを入手しました。店員さんによると、販売数量のデータだけでなく、予測に役立ちそうな付加情報も足してくれたそうです。どのような情報が含まれているのでしょうか?データをエクセルで確認してみましょう。本ミッションでは、分析の第一歩として重要なデータの確認の仕方を学びます。
このタスクではデータのサイズはどれくらいか、どのようなデータ形式で記載されているのか、データに欠損値は含まれているかなどを確認していきます。
Mission 2
データを確認したところ、販売数量の他にメニューや社内イベントの有無、天気の情報などが含まれていました。これらの要素は弁当の販売数に影響するのでしょうか?影響するのであれば予測に有効な情報となるので、調べてみましょう。本ミッションでは、分析の醍醐味の1つである探索的分析について学びます。データ分析ではデータの分布や数値等からデータの特徴を抽出し、それに基づき仮説を立てたり仮説の検証を行います。基本統計量や可視化の方法論についても学んでいきましょう。
データ分析においては、変数間の関係性を明らかにすることは大変重要です。なぜなら、変数間の関係性は、データの解釈や仮説作りを検討する上で、重要な情報を提供してくれるからです。変数間の関係性を見る1つの方法として、変数間の相関関係を確認する方法があります。例えば、予測モデルを作る際には、予測したいデータに対して、有力な手掛かりになるデータを見つけ出すことが大切ですが、これは2変数間の相関係数を算出することである程度、指針を立てることができます。一方で、相関係数が低ければ、手掛かりになり得ないということで、除外して分析を進めることもできます。
Mission 3
弁当の販売数に影響する要素がわかったので、次にモデル作成の前の準備作業を実施しましょう。本ミッションではデータ前処理について学びます。ここでの前処理とはモデリングのための前処理についてです。適切な前処理をすることで、モデリングの精度を上げることができます。前処理の種類や、方法にどのようなものがあるのか学んでいきましょう。
Mission 4
弁当の販売数に影響する要素がわかり、データの前処理もできました。いよいよ予測モデルを作る段階です。本ミッションではモデリング手法の1つ、重回帰モデルについて学びます。モデルを作成することで、過去の実績から将来の値を予測することができるようになります。具体的なモデルの作り方や作ったモデルの正しい評価方法について学んでいきましょう。
重回帰モデルの学習と予測値の算出ができました。次は予測値をRMSEを用いて評価してみましょう。またグラフを描いて、予測結果を可視化して見てみましょう。
Mission 5
ついに弁当の販売数を予測する重回帰モデルが作れましたが、その精度はとても満足のいくものではありませんでした。もっと精度を上げることはできないでしょうか?手がかりは…やはりデータにあります。本ミッションでは、作成したモデルの予測精度をより改善する為の方法について学びます。作ったモデルの傾向や説明変数を選定・拡充することで、より良い予測モデル作成に挑戦しましょう。
モデリングの改善プロセスでは特徴量に工夫を凝らすことが多いですが、ここではまず販売数の推移に立ち返ってみます。分析の初期に描いた折れ線グラフを思い出しましょう。
本Questでは、食品の需要予測として、弁当の販売数を予測する問題に挑戦しました。ただ予測モデルを作るだけでなく、予測モデルの精度を上げるために、販売数に影響しそうな要因を仮説を立てて検証し、予測精度を改善する試みも行いました。Questを通じて学んだこと、そしてQuestの成果をおさらいしましょう。