عیب یابی مدل را اجرا کنید

پس از ساخت مدل، باید همگرایی را ارزیابی کنید، در صورت نیاز مدل را اشکال زدایی کنید و سپس تناسب مدل را ارزیابی کنید.

همگرایی را ارزیابی کنید

شما برای کمک به اطمینان از یکپارچگی مدل خود، همگرایی مدل را ارزیابی می کنید.

دستور plot_rhat_boxplot تحت visualizer.ModelDiagnostics() کاهش مقیاس بالقوه Gelman & Rubin (1992) را برای همگرایی زنجیره ای خلاصه و محاسبه می کند که معمولاً به عنوان R-hat شناخته می شود. این تشخیص همگرایی درجه ای را اندازه گیری می کند که واریانس (میانگین) بین زنجیره ها از آنچه انتظار دارید اگر زنجیره ها به طور یکسان توزیع شوند، بیشتر است.

یک مقدار R-hat برای هر پارامتر مدل وجود دارد. نمودار جعبه توزیع مقادیر R-hat را در بین شاخص ها خلاصه می کند. برای مثال، کادر مربوط به برچسب محور x beta_gm ، توزیع مقادیر R-hat را در هر دو شاخص جغرافیایی g و شاخص کانال m خلاصه می‌کند.

مقادیر نزدیک به 1.0 نشان دهنده همگرایی است. R-hat < 1.2 نشان دهنده همگرایی تقریبی است و یک آستانه معقول برای بسیاری از مشکلات است ( Brooks & Gelman, 1998 ). عدم همگرایی معمولاً یکی از دو مقصر را دارد. یا مدل بسیار ضعیف برای داده ها مشخص شده است، که می تواند در احتمال (مشخصات مدل) یا در قبلی باشد. یا سوختن کافی وجود ندارد، یعنی n_adapt + n_burnin به اندازه کافی بزرگ نیست.

اگر برای همگرایی مشکل دارید، به دریافت همگرایی MCMC مراجعه کنید.

یک باکس پلات R-hat ایجاد کنید

دستورات زیر را برای ایجاد یک باکس پلات R-hat اجرا کنید:

model_diagnostics = visualizer.ModelDiagnostics(meridian)
model_diagnostics.plot_rhat_boxplot()

خروجی نمونه:

R-hat boxplot

نمودارهای ردیابی و چگالی ایجاد کنید

شما می توانید نمودارهای ردیابی و چگالی را برای نمونه های زنجیره مارکوف مونت کارلو (MCMC) ایجاد کنید تا به ارزیابی همگرایی و پایداری در بین زنجیره ها کمک کنید. هر ردیابی در نمودار ردیابی دنباله ای از مقادیر تولید شده توسط الگوریتم MCMC را در حین بررسی فضای پارامتر نشان می دهد. این نشان می دهد که چگونه الگوریتم در مقادیر مختلف پارامترها در تکرارهای متوالی حرکت می کند. در نمودارهای ردیابی، سعی کنید از مناطق مسطح، جایی که زنجیره برای مدت طولانی در همان حالت باقی می ماند یا تعداد گام های متوالی زیادی در یک جهت دارد، اجتناب کنید.

نمودارهای چگالی در سمت چپ، توزیع چگالی مقادیر نمونه برداری شده را برای یک یا چند پارامتر به دست آمده از طریق الگوریتم MCMC به تصویر می کشد. در نمودار چگالی، می خواهید ببینید که زنجیره ها به یک توزیع چگالی پایدار همگرا شده اند.

مثال زیر نحوه تولید نمودارهای ردیابی و چگالی را نشان می دهد:

parameters_to_plot=["roi_m"]
for params in parameters_to_plot:
  az.plot_trace(
      meridian.inference_data,
      var_names=params,
      compact=False,
      backend_kwargs={"constrained_layout": True},
  )

خروجی نمونه:

نمودارهای ردیابی و تراکم

توزیع های قبلی و پسین را بررسی کنید

وقتی اطلاعات کمی در داده ها وجود داشته باشد، قبلی و پسین مشابه خواهند بود. برای اطلاعات بیشتر، به «وقتی قسمت عقبی مشابه قبلی است» مراجعه کنید.

کانال‌هایی که هزینه کمتری دارند، به ویژه مستعد داشتن ROI پسینی مشابه با بازگشت سرمایه قبلی هستند. برای رفع مشکل، توصیه می‌کنیم هنگام تهیه داده‌ها برای MMM، کانال‌های با هزینه بسیار کم را حذف کنید یا با کانال‌های دیگر ترکیب کنید.

دستورات زیر را برای رسم توزیع ROI پسین در برابر توزیع قبلی ROI برای هر کانال رسانه اجرا کنید:

model_diagnostics = visualizer.ModelDiagnostics(meridian)
model_diagnostics.plot_prior_and_posterior_distribution()

خروجی مثال: ( برای بزرگنمایی روی تصویر کلیک کنید. )

توزیع ها

به طور پیش‌فرض، plot_prior_and_posterior_distribution() posterior و prior را برای ROI ایجاد می‌کند. با این حال، می‌توانید پارامترهای مدل خاصی را به plot_prior_and_posterior_distribution() ارسال کنید، همانطور که در مثال زیر نشان داده شده است:

model_diagnostics.plot_prior_and_posterior_distribution('beta_m')

ارزیابی تناسب مدل

پس از اینکه همگرایی مدل شما بهینه شد، تناسب مدل را ارزیابی کنید. برای اطلاعات بیشتر، به ارزیابی تناسب مدل در Post-modeling مراجعه کنید.

با مدلسازی آمیخته بازاریابی (MMM)، شما باید برای ارزیابی استنتاج علّی بر معیارهای غیرمستقیم تکیه کنید و به دنبال نتایج منطقی باشید. دو راه خوب برای انجام این کار عبارتند از:

  • معیارهای در حال اجرا برای R-squared، میانگین درصد خطای مطلق (MAPE) و میانگین وزنی درصد خطای مطلق (wMAPE)
  • ایجاد نمودار برای درآمد مورد انتظار در مقابل واقعی یا KPI، مشروط به kpi_type و در دسترس بودن revenue_per_kpi .

معیارهای R-squared، MAPE و wMAPE را اجرا کنید

معیارهای خوبی برازش را می توان به عنوان یک بررسی اطمینان مبنی بر اینکه ساختار مدل مناسب است و بیش از حد پارامتر نشده است استفاده کرد. ModelDiagnostics معیارهای برازش R-Squared ، MAPE و wMAPE را محاسبه می کند. اگر holdout_id در Meridian تنظیم شده باشد، R-squared ، MAPE و wMAPE نیز برای زیر مجموعه‌های Train و Test محاسبه می‌شوند. توجه داشته باشید که معیارهای خوب تناسب معیاری برای دقت پیش‌بینی هستند که معمولاً هدف MMM نیست. با این حال، این معیارها همچنان به عنوان یک بررسی اطمینان مفید عمل می کنند.

دستورات زیر را برای تولید معیارهای R-squared، MAPE و wMAPE اجرا کنید:

model_diagnostics = visualizer.ModelDiagnostics(meridian)
model_diagnostics.predictive_accuracy_table()

خروجی نمونه:

خروجی متریک

نمودارهای مورد انتظار در مقابل واقعی را ایجاد کنید

استفاده از نمودارهای مورد انتظار در مقابل واقعی می تواند به عنوان یک روش غیر مستقیم برای ارزیابی برازش مدل مفید باشد.

ملی: توطئه های مورد انتظار در مقابل واقعی

برای کمک به ارزیابی تناسب مدل، می‌توانید درآمد واقعی یا KPI را در کنار درآمد مورد انتظار مدل یا KPI در سطح ملی ترسیم کنید. خط مبنا ، تخمین خلاف واقع مدل برای درآمد (یا KPI) است در صورتی که اجرای رسانه ای وجود نداشته باشد. برآورد درآمد تا حد امکان نزدیک به درآمد واقعی لزوماً هدف MMM نیست، اما به عنوان یک بررسی اطمینان مفید عمل می کند.

دستورات زیر را برای رسم درآمد واقعی (یا KPI) در مقابل درآمد مورد انتظار (یا KPI) برای داده های ملی اجرا کنید:

model_fit = visualizer.ModelFit(meridian)
model_fit.plot_model_fit()

خروجی نمونه:

نمودار درآمد مورد انتظار در مقابل واقعی

Geo: توطئه های مورد انتظار در مقابل واقعی

برای دسترسی به تناسب مدل می توانید نمودارهای مورد انتظار در مقابل واقعی را در سطح جغرافیایی ایجاد کنید. از آنجایی که می‌تواند زمین‌های زیادی وجود داشته باشد، ممکن است بخواهید فقط بزرگ‌ترین مکان‌ها را نشان دهید.

دستورات زیر را برای ترسیم درآمد واقعی (یا KPI) در مقابل درآمد مورد انتظار (یا KPI) برای جغرافیایی اجرا کنید:

model_fit = visualizer.ModelFit(meridian)
model_fit.plot_model_fit(n_top_largest_geos=2,
                         show_geo_level=True,
                         include_baseline=False,
                         include_ci=False)

خروجی نمونه:

درآمد واقعی جغرافیایی در مقابل نمودارهای درآمد تخمینی

پس از اینکه از تناسب مدل خود راضی شدید، نتایج مدل را تجزیه و تحلیل کنید .