ミクロ経済学理論付けで強化！MMMモデルの精度爆上げ法

# はじめに

こんにちは、事業会社で働いているデータサイエンティストです。

https://dippeople.dip-net.jp/19888/

最近、会社のとある業務でマーケティング・ミックス・モデル（MMM）的な構造のモデルを推定していますが、当初はうまくいきませんでした。そこで、「MMMとは要するに企業の生産関数を推定することではないか？ それならミクロ経済学の範囲では？ さらに、MMMで行われる予算最適化はミクロ経済学の費用最小化問題と本質的に同じでは？」と考え、モデルにミクロ経済学由来の制約を取り入れたところ、**精度が大幅に向上しました**。本記事では、その過程について紹介します。

ただし、これは会社の業務に関連する内容であり、オープンデータで類似のデータ（どのような構造かはお伝えできません）も見つかりにくいため、本記事では前処理や実装の詳細には踏み込まず、理論的な説明に重点を置きます。そのため、コードを期待して読んでくださった方には申し訳ありませんが、主流のMMMにミクロ経済学の制約を組み込むのは決して難しくありません。本記事の内容を理解し、ご自身で実装に挑戦していただければと思います。

では、早速内容に入りたいと思います！

# なぜミクロ経済学なのか

まず、MMMとは何かを経済学が専門の方に説明すると、これは売上やその他のKGI・KPI（企業やサービス運営における重要指標）を広告出稿量で予測する回帰モデルです。最近の代表的な例としては、Googleが発表した[論文](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46001.pdf)が挙げられます。

会社のとある業務において、MMM的なモデル構造で解決できるのではないかと考え、MMMにベイズ機械学習の要素を組み込んで推定を行いました。全体的には問題なかったものの、一部の学習データや検証データに対して過学習が見られる状況でした。

詳細はお伝えできませんが、SQLのクエリの書き方を確認しても特に問題は見当たりませんでした。では、何が原因なのか。政治学と経済学を専門とする立場から最初に思い至ったのは、「現在のモデルには**ミクロ経済学的な基礎付け**（microfoundation）が欠けているのではないか？」という仮説でした。

ミクロ経済学的な基礎付けがないまま、どれだけ高度な機械学習モデルの要素を取り入れても、実はよくよく考えると直感的にあり得ない状況を学習してしまう可能性があります。その「直感」を厳密に数学的に定式化してくれるのが、ミクロ経済学です。  

次に、ミクロ経済学が考える生産関数の望ましい形について紹介します。

# 生産関数の考え方とMMMとの類似点

ミクロ経済学が考える生産関数とは、要するに次のようなものです：

$$
生産量 = f(要素投入)
$$

これは、生産要素を投入すると、どれくらいの生産量が得られるかを示す関数です。例えば、2単位のりんごと1単位の水を投入すれば、1単位のリンゴジュースが生産できるとします。  

あれ？ これって、1単位のテレビCMと3単位のリスティング広告を投入すれば、10単位の売上が得られる、という形に置き換えられるのではないでしょうか？

$$
売上 = f(広告出稿)
$$

あ、この式こそまさにMMMが目指していることではないでしょうか！  

その通りです。したがって、ミクロ経済学における生産関数とMMMが実現しようとしていることは、本質的に同じだと言っても決して過言ではありません。

ミクロ経済学でよく利用されるコブ=ダグラス型の生産関数（Cobb-Douglas production function）の形も、

$$
生産量 = 要素投入_{1}^{\beta_{1}}要素投入_{2}^{\beta_{2}}要素投入_{3}^{\beta_{3}}...
$$

対数を取ったら

$$
log(生産量) = \beta_{1}log(要素投入_{1}) + \beta_{2}log(要素投入_{2}) + \beta_{3}log(要素投入_{3}) + ...
$$

これは、追加の説明変数などの違いこそあれど、Uberが発表した[MMMモデル](https://arxiv.org/pdf/2106.03322)の式（3）と本質的に同じ構造を持っています。

生産関数を手に入れたら、生産要素と組み合わせて、生産の最大化問題を解きます。これは先ほど紹介したコブ=ダグラス型の生産関数で説明すると、こうなります：

$$
Max \space \prod_{i = 1}^{K}要素投入_{i}^{\beta_{i}}
$$

$$
subject \space to \space 予算 \geq \sum_{i=1}^{k}要素投入_{i}要素価格_{i}
$$

言葉で説明すると、本当は無限にりんごジュースを作りたいですが、今手元の予算は10万円しかなく、りんごは1単位380円、水は1単位38円なので、予算がオーバーしない前提でりんごジュースを何単位作れるかということです。

ちなみに、ミクロ経済学の主流では、生産量から予算を差し引いた利益最大化問題を解くのが一般的です。しかし、ビジネスの現場では、社内の事情や投資家の要請により、予算が事前に決まっていることが少なくありません。そのため、与えられた予算の範囲内で生産量を最大化する問題を解くケースも多く、本記事では**予算制約下での生産量最大化**に焦点を当てます。

この問題は、以下のように定式化できます：

$$
Max \prod_{i = 1}^{K} 広告投入_{i}^{\beta_{i}}
$$



$$
subject \space to \quad マーケティング予算 \geq \sum_{i=1}^{K} 広告投入_{i} \times 広告単価_{i}
$$

例えば、今期のマーケティング予算が5億円で、TVCMの単価が1単位380円、リスティング広告の単価が1単位38円（謎の声：安すぎでしょw）だったとします。このとき、予算内で最大限の認知を獲得できる広告配分を求めることになります。  
これはマーケティング部門だけでなく、**企業の経営陣が最も求める情報**であり、多くの大企業の**執行役員会議や経営幹部会議で議論されるテーマ**です。

さらに、目的関数と制約条件を逆にする捉え方もあります：

$$
\min \sum_{i=1}^{K} 広告投入_{i} \times 広告単価_{i}
$$

$$
subject \space to \space 生産量 \leq \prod_{i = 1}^{K} 広告投入_{i}^{\beta_{i}}
$$

これは**費用最小化問題**と呼ばれます。  
要するに、「投資家や市場に約束した売上などのKGI・KPIを達成するために、最も安いマーケティング予算はいくらか？そして、その予算をどのように配分すればよいのか？」を解く最適化問題になります。

このように、MMMモデルが本格的に注目され始めたのは比較的最近のことですが、ミクロ経済学がMMMと同様の問題に取り組み始めたのは100年以上前に遡ります。そのため、ミクロ経済学から学べることは非常に多く、むしろ学ぶべきことしかないと言っても過言ではありません。

では、ミクロ経済学的に望ましい生産関数とはどんなものなのかを説明します。

# ミクロ経済学が生産関数にかける制約

この記事の内容は、Googleのチーフ・エコノミストであるハル・ヴァリアン（Hal Varian）が著した[Microeconomic Analysis](https://wwnorton.com/books/Microeconomic-Analysis)を参考にしています。日本語訳も[こちら](https://www.keisoshobo.co.jp/book/b25981.html)です。

本書はかなり古く、多くの読者（私も含めて、よかった、まだ若い！）が生まれる前に出版されています。しかし、ミクロ経済学、特に生産関数、消費者の満足度を定式化する効用関数、そして市場均衡を扱う一般均衡理論の分野は、学問としてすでに**完成された状態**にあるため、90年代の書籍と最近の書籍で本質的な違いはほとんどありません。

わかりやすさと簡潔さを重視するなら、2025年3月時点でもヴァリアンの Microeconomic Analysisは依然として最良の選択肢だと思います。

ここでまず強調しておきたいのは、本記事で紹介するミクロ経済学が生産関数にかける制約は私が実際に業務で有用だと感じたものに限られています。興味ある方はぜひミクロ経済学の他の制約を含めた生産関数を考えてみてください。

## 制約1：生産要素の限界生産力は正である

これはどういうことなのかというと、要するに、広告を増やしたら、KPIも改善するという制約です。失敗した広告だとそうではない可能性もありますが、ここでは普通の、うまくいけている広告を前提にします。

この制約を数学に転換するとどうなるかを具体的にお見せするため、コブ=ダグラス型の生産関数で説明すると、売上を1番目の広告の投入について微分した結果が正でないといけません：

$$
\frac{\partial 売上}{\partial 広告投入_{1}} = \beta_{1} * 広告投入_{1}^{\beta_{1} - 1} * \prod_{i=2}^{K}広告投入_{i}^{\beta_{i}} > 0
$$

広告投入は全て正なので、$広告投入_{1}^{\beta_{1} - 1} * \prod_{i=2}^{K}広告投入_{i}^{\beta_{i}}$は正です。よって、$\beta_{1}$が正であれば、上記の条件が満たされ、広告を増やしたら、KPIも改善するモデルになります。

## 制約2：生産要素の限界生産力は逓減する

生産要素の限界生産力は逓減するというのは、要するに広告の効果が飽和する・サチるということです。これを数学で表すと：

$$
\frac{\partial^{2} 売上}{\partial^{2}広告投入_{1}} = (\beta_{1} - 1) \beta_{1} * 広告投入_{1}^{\beta_{1}-2} * \prod_{i=2}^{K}広告投入_{i}^{\beta_{i}} < 0
$$

まず、$広告投入_{1}^{\beta_{1} - 2} * \prod_{i=2}^{K}広告投入_{i}^{\beta_{i}}$は正です。また、制約1より、$\beta_{1}$も正です。要するに、$\frac{\partial 売上}{\partial^{2}広告投入_{1}}$が負になるためには、$\beta_{1} - 1$が負になり、さらに変形すると、$\beta_{1}$が1より小さい値を取る必要があります。

制約1と制約2を合わせると、$0 < \beta_{1} < 1$の条件を満たせば、広告を増やしたら、KPIも改善し、かつ広告の効果が飽和する条件を満たすことになります。

コブ=ダグラス型の生産関数を用いたUberが発表した[論文](https://arxiv.org/pdf/2106.03322)のFigure2とFigure3を見ると、$\beta$がしっかり0と1の間に入っていることがわかります。

最後の3点目に入る前に、まず必要投入量集合という重要な概念を紹介します。

## 必要投入量集合

必要投入量集合とは、ある生産量を達成するために必要なすべての要素投入の組み合わせを示す対応（correspondence）であり、通常Vで表されます。

マーケティングとMMMの文脈で説明します。例えば通期の売上目標を入力すると、

$$
V(通期売上 = 100億円)
$$

この売上目標を達成するために必要な広告投入量の組み合わせが得られます：

$$
[TVCM：5, リスティング:6]
$$

つまり、「通期の売上目標を100億円にしたい場合、TVCMを5単位、リスティング広告を6単位投入する必要がある」という意味になります。もちろん、「TVCMを3単位、リスティング広告を2単位」などの別の組み合わせも、もし100億円の売上を作ってくれるなら、V(通期売上 = 100億円)の出力に含まれます。

## 制約3：必要投入量集合は閉集合で空集合ではない

閉集合のところは一旦無視して、空集合であってはならないところに着目していただきたいです。逆に、空集合を許容するとどうなるかというと：

$$
V(通期売上 = 1000億円) = \emptyset
$$

つまり、「社長！すいませーん！弊社くんどう頑張っても通期売上1000億円達成できませーん泣」ということになります。本当でしょうか？おそらく、そうではありません。たとえ斜陽産業であっても、費用を無視すれば、所定の売上を達成するための要素投入の組み合わせは存在するはずです。

例えば、経営が厳しい地方の鉄道会社でも、もし9000兆ドルの現金が与えられたなら、ハワイ・ロサンゼルス・シカゴを経由し、東京とニューヨークを直通する太平洋横断新幹線を建設し、世界一の鉄道会社にすることも可能でしょう。「そんなのコスト的に無理では？」というツッコミがあるかもしれませんが、**ここでは純粋に生産・売上の話をしており、コストや利益の話はしていません**。

このように、**生産（売上）とコスト（利益）は明確に分けて考える**ことが、ミクロ経済学の基本的な思考法であり、課題を適切に特定するためにも不可欠です。

しかし、完全にブラックボックスなディープラーニングに生産関数の推定を任せてしまうと、売上の限界が暗黙のうちに推定されてしまい、必要投入量集合が空集合ではないというミクロ経済学の要請を満たさない推定結果が得られる可能性があります。  

さらに、すべてをディープラーニングに任せてしまうと、そもそも推定された生産関数に上限が存在するかどうかを確認することが極めて困難になります。

また、ブラックボックスなディープラーニング以外のモデルも、よくよく考えたら必要投入量集合が空集合ではない条件を満たしていない可能性があります。

例えば、Googleが発表した[論文](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46001.pdf)で紹介されたモデルを考えてみましょう。概要としてはこうなります：

$$
y_{t} = \tau + \sum_{m=1}^{M} \beta_{m} * Hill(Adstock(x_{m})) + \sum_{c=1}^{C} \gamma_{c}z_{c,t} + \epsilon_{t}
$$

ただし、$y$は予測対象のKPI、$x_{m}$は広告$m$の出稿履歴、$z$はその他の外生変数です。さて、このモデルは、必要投入量集合が空集合ではないという条件、つまり任意の$y$を達成するための$x_{m}$を教えてくれるのでしょうか？**残念ながら、そうではありません**。

Hill関数$Hill(w)$は、$w$が無限大に近づくと、1に近づく性質の関数です。なので、全ての広告出稿の投入量を無限にしても、$z$が一定であれば、yの期待値は

$$
y^{\ast} = \tau + \sum_{m=1}^{M} \beta_{m} + \sum_{c=1}^{C} \gamma_{c}z_{c}^{\ast}
$$

になり、これ以上の値にはなりません。したがって、任意の$Y>y^{\ast}$に対して、

$$
V(Y) = \emptyset
$$

よって、**Googleの論文の中で対案された生産関数は、必要投入量集合は空集合ではない条件を満たしていません**。これはHill関数の性質によるものです。

# MMMモデルにミクロ経済学由来の制約をかける方法

上記の3つの条件をモデルにかける方法はそこまで難しくはないです。まず、必要投入量集合は閉集合で空集合ではない条件に関しては、Hill関数のように上限を含意する関数ではなく、よりシンプルな関数の形を取るといけます。例えば、Uberが発表した[論文](https://arxiv.org/pdf/2106.03322)のように対数化したコブ=ダグラス型の生産関数を採用するのも一案です。

もちろん、コブ=ダグラス型だと柔軟性が足りない、他の要因を取り入れられないという意見もあるでしょう。ただ、生産要素の投入量の他にも、生産量に影響するノイズ的な要因があると仮定して、コブ=ダグラス型の生産関数をこのように書き換えることができます：

$$
生産量_{i} = \epsilon_{i} (\prod_{i=1}^{K}要素投入^{\beta_{i}}_{i})
$$

$\epsilon$は、季節性、トレンド、天気、競合の動き、などの可能性があります。ここで、$\epsilon$をさらに分解して、本当のランダムな要因$\phi$とそれ以外の予測可能な要因にします：

$$
生産量_{i} = \phi_{i} exp(trend_{i} + cycle_{i} + 天気要因_{i}) (\prod_{i=1}^{K}要素投入^{\beta_{i}}_{i})
$$

ここで、$trend_{i}$、$cycle_{i}$、$天気要因_{i}$に指数関数を取っているので、有限であればどんな値を取っても問題ないです。これらをガウス過程やトランスフォーマなどの高度な機械学習モデルでブラックボックスに学習させることで、$(\prod_{i=1}^{K}要素投入^{\beta_{i}}_{i})$のコブ=ダグラス型の形を保持しながら、予測精度の向上と欠落変数や誤った定式化による$\beta$の推定結果のバイアスを防ぐことができます。

このように本当に興味あるモデルの側面は経済学・政治学などの理論的な要請を満たす形を保ち、興味のない、ノイズ的な側面にブラックボックスな機械学習で学習させることは、最近の政治学方法論と計量経済学のトレンドでもあります。

続いて、コブ=ダグラス型の生産関数の$0 < \beta < 1$の制約なんですが、これは[R言語](https://mc-stan.org/cmdstanr/)と[Python言語](https://mc-stan.org/cmdstanpy/)などから利用できるStan言語だと、パラメータ宣言をこれ

```cpp
parameters {
  vector[K] beta;
}
```

からこれ

```cpp
parameters {
  vector<lower=0,upper=1>[K] beta;
}
```

に変えるだけでいいです。簡単で全然怖くないですね。`<lower=0,upper=1>`を追加するだけでミクロ経済学理論からの制約をかけることができます。もし直接パラメータの値に制約をかけるのが難しいのであれば、$\beta$の事前分布にベータ分布を指定する方法もあります。

# 結論

いかがでしたか？

本記事では、マーケティング・ミックス・モデル（MMM）とミクロ経済学の生産関数の類似性について解説し、MMMにミクロ経済学的な制約を組み込むことでモデルの精度を向上させる可能性について議論しました。

ミクロ経済学の枠組みを取り入れることで、直感的にあり得ない広告投下パターンを排除し、より合理的な広告配分を実現できるようになります。特に、生産関数の基本的な性質（例えば、規模の収穫逓減や代替の弾力性）を考慮することで、実務においてもより堅牢な意思決定が可能になります。

最近の計量経済学のビジネス活用の議論では、ほぼ因果推論に焦点が当てられる傾向があります。しかし、これは政治学という隣接分野出身の立場から見ると、非常にもったいない話です。我々社会科学は、因果推論に限らず、より広範な理論的枠組みや手法を活用することで、ビジネスや公共政策に対して多様な価値を提供できるはずです。それにもかかわらず、因果推論だけにフォーカスすることで、**社会を改善するための可能性の幅を自ら狭めてしまっているのは、極めて内向きで残念な傾向だと言えます**。

実際、企業の意思決定や政策立案においては、単なる「介入の効果」を推定すること以上に、**パレート最適なリソース配分の決定**や、**社会全体のダイナミクスの理解**が求められます。ミクロ経済学の視点を取り入れることで、単なる統計的な分析を超えて、戦略的な意思決定の支援が可能となります。そのため、今後の研究や実務では、因果推論と並行して、最適化や市場均衡分析などの視点を統合したモデルの開発が重要になるでしょう。

最後に、私たちと一緒に、データサイエンスの力で社会を改善したい方はこちらをご確認ください：

https://recruit-dip.com/newgrad/page-1004/