Ep. 3 - Marketing Mix Modeling: Definitive guide to model Facebook Robyn

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ส.ค. 2024

ความคิดเห็น • 34

  • @gabrielefranco3452
    @gabrielefranco3452 2 ปีที่แล้ว +5

    WoW it’s the first complete guide online! Thank you!

  • @mztknamll1124
    @mztknamll1124 ปีที่แล้ว +1

    This is amazing! Thank you so much for the tutorial

    • @cassandra4533
      @cassandra4533  ปีที่แล้ว

      Thanks RaN! Glad you are finding this serie useful :)

  • @datadr1ven
    @datadr1ven ปีที่แล้ว +2

    Very helpful. Do you intend to do a updated version of episodes 2-3? Its hard to follow when the git code has changed and some variables are not used anymore.

    • @cassandra4533
      @cassandra4533  ปีที่แล้ว

      Hello! Since we've recorded this video lots has changed in Cassandra and we are not even using Robyn directly anymore.
      We've built a complete SaaS Platform which is powered on Robyn at its core but simplifies the whole UX completely, you can learn more here: cassandra.app/

  • @guidocasco935
    @guidocasco935 6 หลายเดือนก่อน +1

    Thanks a lot for the tutorial! This is great.
    Question, do you know if Robyn allows for multiple campaigns across channel, and if is there some algorithm that aggregates results afterwards? (For example, I'm thinking on showing model results at a disaggregated level, but running simulations at an aggregated-channel level) Thanks!

    • @cassandra4533
      @cassandra4533  6 หลายเดือนก่อน +1

      Hey Guido in general I'd recommend not to go too granular at a Campaign leve but rather to stay somewhere in the middle like at a Campaign Type level (e.g. P.Max, Video, Search ...).
      Then by default you'll get outputs at the same granularity of your inputs and hence there's no automated aggregation but that would be pretty easy to do it yourself as you'll get all the detailed output directly from Robyn and it will just be a matter of displaying them out as you like.

    • @guidocasco935
      @guidocasco935 6 หลายเดือนก่อน +1

      Awesome, sounds good.
      Thanks a lot mate!

  • @LuisGustavoFarro
    @LuisGustavoFarro 11 หลายเดือนก่อน +1

    That's great! You have an amazing explanation. I have a question: How could I provide Robyn (Model) with Ecommerce Sales and Retail Sales data so that she can iterate with both?

    • @cassandra4533
      @cassandra4533  11 หลายเดือนก่อน

      Hello Luis, I'm very glad you're finding this helpful!
      As per your question Robyn does not allow multiple Output variable as of today.
      So you can either sum them together and have like "Total Sales" and use that as your target variable or you'll need to build two separate models, one for Retail and for eCommerce.
      I'd suggest building two different models as the impact of the Media Mix will most likely be different between offline and online sales.

  • @abdelhakchahid2
    @abdelhakchahid2 2 ปีที่แล้ว +1

    Thank you so much!

  • @SelaPalomo
    @SelaPalomo ปีที่แล้ว +1

    Hi, great videos! One doubt : revenue value or conversion value should be the sum of all the channels in the list (to analyze) ? Or, should be the total of the web? For instance, what happen with direct traffic? Direct traffic revenue should be included? Thanks!

    • @cassandra4533
      @cassandra4533  ปีที่แล้ว +1

      Hello Sela, it depends on what your goal is. In general It's usually the total of the web, you can then add as organic variable maybe the Direct Session to measure the impact of that as well or otherwise it should go into the intercept, along with other shares of revenue not directly generated by any other media activity (if there are)

  • @ilariagiunti
    @ilariagiunti 2 ปีที่แล้ว +1

    Thanks for sharing this Masterclass! How do you collect data from competitor sales?

    • @cassandra4533
      @cassandra4533  2 ปีที่แล้ว

      Great question Ilaria! That's probably the trickiest part.
      You could use scraping tools like SemRush or SeoZoom in order to get your competitors' data.

  • @johnwedderburn8788
    @johnwedderburn8788 2 ปีที่แล้ว +2

    Hi, this is really great. I'm figuring out the best way to run this without including prophet. How can I deactivate it? When I tried commenting out the prophet vars in the input collect I can get an error message when I try to run the Output model. Any suggestions gratefully accepted!

    • @cassandra4533
      @cassandra4533  2 ปีที่แล้ว

      Hello John, in order not to include Prophet you should set in your robyn_inputs() function "prophet_vars = NULL" and simply comment out any other Prophet related variables like prophet_country and dt_holidays.
      One important thing to note is that if you choose to remove Prophet you should remove context_vars as well as those are handled by Prophet itself.

    • @cassandra4533
      @cassandra4533  2 ปีที่แล้ว

      It will look something like this
      InputCollect

    • @johnwedderburn8788
      @johnwedderburn8788 2 ปีที่แล้ว +1

      @@cassandra4533 Thank you so much for this. I'd not been removing the context_vars. Just to say again, this video series is great - super useful.
      One of the challenges I have is that some of my data is from aggregated from several different countries. Switching off Prophet is one way to deal with this, but I'm also thinking of creating a pseudo calendar table which will aggregate the holidays of the countries I have represented in my data - be interesting to see what this does to the data!

    • @cassandra4533
      @cassandra4533  2 ปีที่แล้ว

      @@johnwedderburn8788 Usually what we would do in such cases is either aggregate everything in one model using Prophet for Trend, Season and Weekday (would only turn off holidays) or otherwise build 1 model per each country which would make totally sense and most likely be more actionable

  • @Mvobrito
    @Mvobrito 2 ปีที่แล้ว +2

    Hey, I didn't get the part about contexts and organic vars being factorial

    • @cassandra4533
      @cassandra4533  2 ปีที่แล้ว

      Hey Marcus, factorial variables are basically "categorical" variables.
      In short variables such as your media spent provide to the model "continuos data" which is basically the variation in budget spent overtime. And that can be potentially any value.
      Categorical or Factorial variables are for instance a column representing whether or not there was an event in place in a certain period of time.
      This column will only contain either 0 (no events took place) or 1 (there was an event during that period).
      So the values are contained in a set of values and we want to model based on how often such value occurred, more than how high or low the value was.
      You can find some more information specifically in the Robyn's documentation by searching for "factor_vars": facebookexperimental.github.io/Robyn/docs/analysts-guide-to-MMM#feature-engineering

  • @ozguralptekin3989
    @ozguralptekin3989 2 ปีที่แล้ว +1

    Hi, Thanks for the video series. It was really helpfull. I have question about covid variables. Let's say I have 10 covid dummy variables seperatly. My question is Should I consider these 10 covid dummy variables as a contex variables like 10 extra columns or Should I consider them as a events in a single column
    Thanks in advance

    • @cassandra4533
      @cassandra4533  2 ปีที่แล้ว

      Hey Özgür, thanks for the positive feedbacks!
      It really depends on what you are trying to model.
      Let's say the 10 variables represent 10 specific events related to several different lockdowns, vaccine release, government helps and so on. And you want to understand how each event impacted your Sales or Conversions.
      In this case I'd go for a single column and put everything in there.
      On the other hand, if the 10 variables represent different stuff like: number of covid cases per day, number of vaccinated people per day, percentage of people working from home etc..
      Then I'd go for 10 different columns.

    • @ozguralptekin3989
      @ozguralptekin3989 2 ปีที่แล้ว

      @@cassandra4533 Thanks for quick response. I really appreciated for your help.
      I have another question about hyperparameters. When I try to set parameters for media variables robyn force me to use just spends but I used impressions, grp for some media channels in the main model. Thats why all the outputs like response curve, decomposition and adstocks are related to media_spends_vars. I guess it has changed with new version of roby 3.6.0.
      ıt says in doc Default media variable for modelling has changed from paid_media_vars to paid_media_spends.
      hyperparameter names needs to be base on paid_media_spends names. Do you have any idea about this issue? When it comes to interpretion response curve, adstock and decomposition What kind of difference makes this update about one page outputs?

  • @kunalsatpute8379
    @kunalsatpute8379 ปีที่แล้ว +1

    How to capture holiday effect when we have monthly data? I have external holiday calendar as prophet doesn’t have my country, where I have also included school holidays like winter breaks, summer etc.
    When I added these variables I see that each month have value=1

    • @cassandra4533
      @cassandra4533  ปีที่แล้ว

      Hello Kunal, not sure what you mean by "each month have value=1". We've never experienced working with monthly data as it's hard to both get enough data to work with and, most importantly, to get actionable insights out of a monthly model.
      We'd recommend, if possible, to split your data at least into weekly and it should definitely help. We've built plenty weekly models with Holidays from Prophet with no issues.

    • @kunalsatpute8379
      @kunalsatpute8379 ปีที่แล้ว +1

      @@cassandra4533 I have revenue as monthly data and campaign spends as weekly, I think I can aggregate spend campaign spends into monthly but not the revenue. Also the ROI for each channel is coming to Zero not sure where it went wrong 😑

    • @cassandra4533
      @cassandra4533  ปีที่แล้ว +1

      @@kunalsatpute8379 I see your point, you may try (even tho it wouldn't probably be accurate) to try and split the monthly revenue into weekly just for a test. As per the Zero ROI it would require quite a bit more information so I guess we won't really be able to help you here

  • @9nin46
    @9nin46 2 ปีที่แล้ว +1

    I failed to set robyn_object. This have led to a problem as I can't export the model since it can't find the directory.

    • @cassandra4533
      @cassandra4533  2 ปีที่แล้ว

      The cool thing about having the functions "robyn_run" and "robyn_outputs" separated is that if you set "outputs" to FALSE in "robyn_run", even if you fail to set the robyn_object correctly for any reason, you can re-run your robyn_outputs only after fixing it and still get your full model results.

    • @9nin46
      @9nin46 2 ปีที่แล้ว +1

      @@cassandra4533 Thx, noted.

  • @austin4you262
    @austin4you262 ปีที่แล้ว +1

    when tring to load library(robyn) i get this error Error: package or namespace load failed for ‘Robyn’ in loadNamespace(j

    • @cassandra4533
      @cassandra4533  ปีที่แล้ว

      Hey Austin, that looks like a path issue. In such cases it's recommended to open an issue on GitHub so that Meta's Team can better help you, here's the link:
      github.com/facebookexperimental/Robyn/issues