Data Analytics | Insights & Research

PUAY101

Market Mixed Model คืออะไร

20 min read-

เมื่อปลายปี 2026 ผมได้ไปฝึกงานเป็น Data Analyst ที่ Data First

Data First บริษัทที่เป็น Marketing Agancy ที่เป็น Data-driven Company เลยอยากจะมาแชร์ประสบการณ์ที่ได้จากการฝึกงาน

โดยจะเล่าถึง Sprint หนึ่งที่มีโอกาศได้ทำคือการดูว่า “ยอดขายที่ได้มาจากโฆษณาตัวไหน”

Rainy days are usual in this moody city but that is its beauty.

ลองนึกภาพคุณเป็นเจ้าของแบรน และอยากให้คนรู้จักแบรนของเรา ทำยังไง?

ก็ต้องซื้อโฆษณาถูกไหม ไม่ว่าจะเป็น ทีวี, เฟสบุ๊ค, Billboard, เว็ปเพจ และอื่นๆที่จะเพิ่มคนที่จะรู้จัก และ มาเป็นลูกค้าของเรา

แต่ปัญหาคือ เงินที่เราจ่ายไปกับโฆษณาตัวไหนกันหล่ะ ที่เป็นตัว drive ยอดขายของเรา

ตารางนี้ประกอบด้วยยอดขาย และเงินที่เราจ่ายไปกับโฆษณาในช่องทางต่างๆ เช่น TV, Facebook,Web, Print , ooh(ย่อมาจาก out of home พวกโฆษณาที่เจอได้ข้างนอกบ้าน พวก Billboard)

ในรูปคือข้อมูลดิบที่ธุรกิจต้องมีเป็นอย่างน้อยๆ ถ้าอยู่ในยุคที่ข้อมูลเป็นเรื่องสำคัญ

คำถามคือแล้วเราจะเอาข้อมูลพวกนี้ไปทำอะไร?

เราจะเอาข้อมูลนี้ไปเข้า Model ทางคณิตศาสตร์ที่จะบอกเราได้ว่าเราควรจะจ่ายเงินไปกับโฆษณาช่องทางไหนดี

ทำความรู้จักกับ Market Mixed Model

Market Mixed Model หรือเรียกย่อๆว่า MMM จะเป็น Model ที่จะมาพูดถึงกันในวันนี้

“Half the money I spend on advertising is wasted; the trouble is I don’t know which half.”

John Wanamaker

John บอกว่า “ครึ่งนึงขอเงินที่จ่ายไปกับโฆษณานั้นไร้ประโยชน์ แต่ปัญหาอยู่ที่เขาดันไม่รู้น่ะสิ ว่าเป็นเงินครึ่งไหน”

Data Science ของบริษัทยักษ์ใหญ่ไม่ว่าจะเป็น Facebook, Google, Amazon เลยได้คิดค้น market mixed model ของตัวเอง ที่จะมาแก้ไขปัญหานี้แต่หลักๆแล้วก็จะทำงานเหมือนกันเลยก็คือ

  • หา pattern ของยอดขายและดูว่า โฆณาตัวไหนที่ส่งผลให้ยอดขายสูงขึ้น

บทความนี้จะมาให้ดู MMM ของ Facebook ซึ่งเป็น open-source (เขาปล่อยให้คนธรรมดาเอา model ที่เขาพัฒนาไป run เองได้) เขาได้ตั้งชื่อว่า Robyn MMM

ถ้าอยากดูว่าโค๊ดเป็นยังไงผมจะแปะลิงค์ไว้ให้ทุกคนไปอ่านดูกัน https://github.com/facebookexperimental/Robyn/blob/main/demo/demo.R

ในนี้เลย บอกวิธีการ run ทุกขั้นตอนอย่างละเอียด (ใช้ภาษา R นะ)

ถ้าไม่อยากทำความเข้าใจเยอะ อ่านในนี้ก็ได้ ผมสรุปมาให้แล้วทำตามได้เลย!

One-page-model-output
ภาพจาก https://getrecast.com/facebook-robyn/

Robyn MMM

โดยบทความนี้จะไม่ได้มาเจาะลึกว่าโมเดลทำงานยังไง แต่ Hand-On จับมือทำกัน Step By Step

  1. เริ่มจากโหลด/ติดตั้ง R Studio
  2. Load Dataset (ในคลิปนี้จะใช้ dataset ที่มีมาให้จาก Robyn package)
  3. ใส่ Input เข้าไปใน Robyn
  4. ใส่ Parameters
  5. รันโมเดล
  6. อ่านผล + ตีความสำหรับใครที่ยังไม่เคยติดตั้งมาก่อน นี่คือคู่มือการติดตั้ง โปรแกรม R รวมถึง Tools ทั้งหมดที่ใช้สำหรับ Robyn MMM

Step 1: Install

สำหรับใครที่ยังไม่เคยติดตั้งมาก่อน นี่คือคู่มือการติดตั้ง โปรแกรม R รวมถึง Tools ทั้งหมดที่ใช้สำหรับ Robyn MMM

คู่มือติดตั้ง

ลิงค์ Download : https://posit.co/download/rstudio-desktop

ต้องโหลดทั้ง R และ RStudio นะ

พอติดตั้งเสร็จ เข้าโปรแกรมมาจะหน้าตาแบบนี้

> install.packages(c("Robyn","reticulate"))

สำหรับใครที่ยังไม่มี Python

สามารถโหลดได้ที่ https://www.python.org/downloads/ (ตอน Install ให้ ติ๊กถูกตรงช่อง add python to PATH ด้วย)

วิธีเช็คว่าในเครื่องเรามีหรือยัง ให้พิมพ์ใน terminal :

>> python --verison
Python 3.1..

จากนั้น เปิด Terminal ขึ้นมา:

  1. สร้าง Folder งานของเรา
    • mkdir my_project && cd my_project
  2. python -m venv mmm_venv #สร้าง Environment ที่ชื่อ mmm_venv
  3. Command:
    • Window: ./venv/Scripts/activate
    • Mac: source ./venv/bin/activate
  4. pip install nevergrad

Step 2: เริ่ม Project ของเรากัน

เข้ามาที่ R-studio

1.เริ่มจาก Set-up project:

เราต้องทำการ activate environment ที่เราได้สร้างไว้เมื่อ Step 1 (ที่ ต้องพิมพ์ python -m venv mmm_venv)

library(Robyn)
library(reticulate)
use_virtualenv("./mmm_venv/")
view raw MMM_setup.R hosted with ❤ by GitHub

2.Prepare Data:

ใน Package Robyn เขามี Dataset มาให้ลองเล่นที่มีชื่อว่า dt_simulated_weekly

เรียกมาดู 5 แถวแรกก่อน

head(dt_simulated_weekly)
view raw .R hosted with ❤ by GitHub
     DATE        revenue   tv_S   ooh_S print_S facebook_I search_clicks_P search_S competitor_sales_B facebook_S events newsletter
   <date>        <dbl>  <dbl>   <dbl>   <dbl>      <dbl>           <dbl>    <dbl>              <int>      <dbl> <chr>       <dbl>
 1 2015-11-23 2754372. 22358.      0   12728.  24301284.              0        0             8125009      7607. na         19402.
 2 2015-11-30 2584277. 28613.      0       0    5527033.           9837.    4133.            7901549      1142. na         14791 
 3 2015-12-07 2547387.     0  132278.    454.  16651591.          12044.    3787.            8300197      4256. na         14544 
 4 2015-12-14 2875220  83450.      0   17680   10549766.          12268.    4253.            8122883      2800. na          2800 
 5 2015-12-21 2215953.     0  277336       0    2934090.           9467.    3613.            7105985       690. na         15478 
 6 2015-12-28 2569922. 33225.      0   31922.  16634027.          12687.    3773.            7097237      5337. na         13817 
 7 2016-01-04 2171507.   687. 226754.      0   13715899.          12097.    3707.            6974368      3623. na         28817 
 8 2016-01-11 2464132.  2952.      0   23581.  18851564.          11588.    4267.            7452174      4130. na         19082 
 9 2016-01-18 2012520      0       0       0   11910188.           9341.    3053.            6703566      3623. na         19679 

Dataset นี้ประกอบด้วย :

  1. DATE วันที่ ความถี่ของ data ที่เก็บมาจะเห็นได้ว่าเป็นระดับ Weekly
  2. Revenue รายได้จากสินค้าของเรา
  3. Ads Spend จำนวนเงินที่เราจ่ายไปให้กับโฆษณาแต่ละช่องทาง อย่างเช่น:
    • Tv_S (TV spend) ค่าโฆษณาทางทีวี หรือ facebook_S ค่าโฆษณาทางเฟสบุ๊ค
  4. Competitor (optional) คือ ยอดขายของสินค้าคู่แข่ง
  5. Event(optional) เป็น Binary Variable (0กับ1) ถ้าวันไหนบริษัทเราจัด campaign ก็จะเป็น 1 ไม่จัดก็เป็น 0

ขี้เกียจเขียนละ public เลยละกัน

Comments

Leave a Reply

Discover more from PUAY101

Subscribe now to keep reading and get access to the full archive.

Continue reading