1<!doctype html><html lang=en-us><head><meta charset=utf-8> 2<!-- This site is hosted on Netlify. Anyone can build and deploy a site 3 like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=7b9c31a3-2b3a-48d0-990e-a5d1d9ee1773 4 Netlify hosting facts for this site: static/SSR served via Netlify Edge. --><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=generator content="Wowchemy 5.0.0-beta.3 for Hugo"><meta name=author content="Emily J. Hudson"><meta name=description content="I put together this simple demonstration of a media mix modeling strategy in R to document my process teaching myself this technique. I will use a sample dataset âmarketingâ from the R package datarium."><link rel=alternate hreflang=en-us href=https://ejhudson.netlify.app/project/mediamix-project/><link rel=preconnect href=https://fonts.gstatic.com crossorigin><meta name=theme-color content="#1565c0"><link rel=stylesheet href=https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css integrity="sha256-FMvZuGapsJLjouA6k7Eo2lusoAX9i0ShlWFG6qt7SLc=" crossorigin=anonymous><link rel=stylesheet href=https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.2.0/styles/github.min.css crossorigin=anonymous title=hl-light media=print onload="this.media='all'"><link rel=stylesheet href=https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.2.0/styles/dracula.min.css crossorigin=anonymous title=hl-dark media=print onload="this.media='all'" disabled><link rel=stylesheet href=https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.min.css integrity="sha512-1xoFisiGdy9nvho8EgXuXvnpR5GAMSjFwp40gSRE3NwdUdIMIKuPa7bqoUhLD0O/5tPNhteAsE5XyyMi5reQVA==" crossorigin=anonymous media=print onload="this.media='all'"><link rel=preload as=style href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Roboto+Mono&family=Roboto:wght@400;700&display=swap"><link rel=stylesheet href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Roboto+Mono&family=Roboto:wght@400;700&display=swap" media=print onload="this.media='all'"><link rel=stylesheet href=/css/wowchemy.003d2be57501b5669ca58ef75468ece2.css><link rel=manifest href=/index.webmanifest><link rel=icon type=image/png href=/media/icon_hua2ec155b4296a9c9791d015323e16eb5_11927_32x32_fill_lanczos_center_2.png><link rel=apple-touch-icon type=image/png href=/media/icon_hua2ec155b4296a9c9791d015323e16eb5_11927_180x180_fill_lanczos_center_2.png><link rel=canonical href=https://ejhudson.netlify.app/project/mediamix-project/><meta property="twitter:card" content="summary_large_image"><meta property="og:site_name" content="Emily J. Hudson"><meta property="og:url" content="https://ejhudson.netlify.app/project/mediamix-project/"><meta property="og:title" content="Media Mix Modeling Demo | Emily J. Hudson"><meta property="og:description" content="I put together this simple demonstration of a media mix modeling strategy in R to document my process teaching myself this technique. I will use a sample dataset âmarketingâ from the R package datarium."><meta property="og:image" content="https://ejhudson.netlify.app/project/mediamix-project/featured.jpg"><meta property="twitter:image" content="https://ejhudson.netlify.app/project/mediamix-project/featured.jpg"><meta property="og:locale" content="en-us"><meta property="article:published_time" content="2025-07-16T00:00:00+00:00"><meta property="article:modified_time" content="2025-07-17T22:45:30-05:00">
4<script type=application/ld+json>{"@context":"https://schema.org","@type":"Article","mainEntityOfPage":{"@type":"WebPage","@id":"https://ejhudson.netlify.app/project/mediamix-project/"},"headline":"Media Mix Modeling Demo","image":["https://ejhudson.netlify.app/project/mediamix-project/featured.jpg"],"datePublished":"2025-07-16T00:00:00Z","dateModified":"2025-07-17T22:45:30-05:00","author":{"@type":"Person","name":"Emily J. Hudson"},"publisher":{"@type":"Organization","name":"Emily J. Hudson","logo":{"@type":"ImageObject","url":"https://ejhudson.netlify.app/media/icon_hua2ec155b4296a9c9791d015323e16eb5_11927_192x192_fill_lanczos_center_2.png"}},"description":"I put together this simple demonstration of a media mix modeling strategy in R to document my process teaching myself this technique. I will use a sample dataset âmarketingâ from the R package datarium."}</script>
4<title>Media Mix Modeling Demo | Emily J. Hudson</title></head><body id=top data-spy=scroll data-offset=70 data-target=#TableOfContents class=page-wrapper data-wc-page-id=df37ee6ff9dd52279a54712268393f82>
4<script src=/js/wowchemy-init.min.eca9bbc7a71accd5ebd9eee0ff004132.js></script>
4<aside class=search-modal id=search><div class=container><section class=search-header><div class="row no-gutters justify-content-between mb-3"><div class=col-6><h1>Search</h1></div><div class="col-6 col-search-close"><a class=js-search href=# aria-label=Close><i class="fas fa-times-circle text-muted" aria-hidden=true></i></a></div></div><div id=search-box><input name=q id=search-query placeholder=Search... autocapitalize=off autocomplete=off autocorrect=off spellcheck=false type=search class=form-control aria-label=Search...></div></section><section class=section-search-results><div id=search-hits></div></section></div></aside><div class=page-header><nav class="navbar navbar-expand-lg navbar-light compensate-for-scrollbar" id=navbar-main><div class=container-xl><div class="d-none d-lg-inline-flex"><a class=navbar-brand href=/>Emily J. Hudson</a></div><button type=button class=navbar-toggler data-toggle=collapse data-target=#navbar-content aria-controls=navbar aria-expanded=false aria-label="Toggle navigation"> 5<span><i class="fas fa-bars"></i></span></button><div class="navbar-brand-mobile-wrapper d-inline-flex d-lg-none"><a class=navbar-brand href=/>Emily J. Hudson</a></div><div class="navbar-collapse main-menu-item collapse justify-content-start" id=navbar-content><ul class="navbar-nav d-md-inline-flex"><li class=nav-item><a class=nav-link href=/#about><span>About</span></a></li><li class=nav-item><a class=nav-link href=/#projects><span>Projects</span></a></li><li class=nav-item><a class=nav-link href=/#publications><span>Publications</span></a></li><li class=nav-item><a class=nav-link href=/#tags><span>Topics</span></a></li></ul></div><ul class="nav-icons navbar-nav flex-row ml-auto d-flex pl-md-2"><li class="nav-item d-none d-lg-inline-flex"><a class=nav-link href=/ aria-label><i class="fas fa-" aria-hidden=true></i></a></li><li class=nav-item><a class="nav-link js-search" href=# aria-label=Search><i class="fas fa-search" aria-hidden=true></i></a></li><li class="nav-item dropdown theme-dropdown"><a href=# class=nav-link data-toggle=dropdown aria-haspopup=true aria-label="Display preferences"><i class="fas fa-moon" aria-hidden=true></i></a><div class=dropdown-menu><a href=# class="dropdown-item js-set-theme-light"><span>Light</span></a> 6<a href=# class="dropdown-item js-set-theme-dark"><span>Dark</span></a> 7<a href=# class="dropdown-item js-set-theme-auto"><span>Automatic</span></a></div></li></ul></div></nav></div><div class=page-body><article class="article article-project"><div class="article-container pt-3"><h1>Media Mix Modeling Demo</h1><div class=article-metadata><span class=article-date>Last updated on 8Jul 17, 2025</span></div></div><div class="article-header article-container featured-image-wrapper mt-4 mb-4" style=max-width:720px;max-height:480px><div style=position:relative><img src=/project/mediamix-project/featured_hudc08064bbced2769bbf94744a6c1cd49_85392_720x0_resize_q75_lanczos.jpg alt class=featured-image></div></div><div class=article-container><div class=article-style><link href=https://ejhudson.netlify.app/project/mediamix-project/index_files/htmltools-fill/fill.css rel=stylesheet>
8<script src=https://ejhudson.netlify.app/project/mediamix-project/index_files/htmlwidgets/htmlwidgets.js></script>
8<script src=https://ejhudson.netlify.app/project/mediamix-project/index_files/plotly-binding/plotly.js></script>
8<script src=https://ejhudson.netlify.app/project/mediamix-project/index_files/typedarray/typedarray.min.js></script>
8<script src=https://ejhudson.netlify.app/project/mediamix-project/index_files/jquery/jquery.min.js></script>
8<link href=https://ejhudson.netlify.app/project/mediamix-project/index_files/crosstalk/css/crosstalk.min.css rel=stylesheet>
8<script src=https://ejhudson.netlify.app/project/mediamix-project/index_files/crosstalk/js/crosstalk.min.js></script>
8<link href=https://ejhudson.netlify.app/project/mediamix-project/index_files/plotly-htmlwidgets-css/plotly-htmlwidgets.css rel=stylesheet>
8<script src=https://ejhudson.netlify.app/project/mediamix-project/index_files/plotly-main/plotly-latest.min.js></script>
8<p>I put together this simple demonstration of a media mix modeling strategy in R to document my process teaching myself this technique. I will use a sample dataset âmarketingâ from the R package <code>datarium</code>. This simulated dataset contains 200 weeks of sales data and marketing spends (in $1k units) for Youtube, Facebook and newspaper channels.</p><p>It is adapted from a tutorial at <a href=https://towardsdatascience.com/building-a-marketing-mix-model-in-r-3a7004d21239/ class=uri>https://towardsdatascience.com/building-a-marketing-mix-model-in-r-3a7004d21239/</a>, extended with additional packages, models and visualization tools (<code>ggplot</code> and <code>plotly</code>).</p><div id=load-data-and-look-at-correlations class="section level2"><h2>Load data and look at correlations</h2><p><img src=https://ejhudson.netlify.app/project/mediamix-project/index_files/figure-html/unnamed-chunk-1-1.png width=672></p><p>At first glance, youtube and facebook ad budgets seem to be correlated with sales; newspaper spend shows less of a clear relationship.</p></div><div id=adstock-adjustment class="section level2"><h2>Adstock adjustment</h2><p>Because advertising may affect a customerâs behavior for an extended period after exposure, we will adjust the spend amounts per week to include additional amounts from the previous two weeks (adstock). The exact decay rates vary depending on the medium and other factors; here I will use rates of 10%, 15% and 25% for facebook, youtube and newspaper, respectively. All will have a âmemoryâ of two weeks.</p><p>The adstocked values are our new predictors (better than raw spend). We are specifying sales as the dependent variable in the lm() function</p><pre class=r><code>mmm_1 <- lm(df_sample$sales ~ ads_youtube + ads_fb + ads_news) 9summary(mmm_1)</code></pre><pre><code>## 10## Call: 11## lm(formula = df_sample$sales ~ ads_youtube + ads_fb + ads_news) 12## 13## Residuals: 14## Min 1Q Median 3Q Max 15## -10.0023 -1.2174 0.3924 1.4328 4.0541 16## 17## Coefficients: 18## Estimate Std. Error t value Pr(>|t|) 19## (Intercept) 1.947558 0.460560 4.229 3.6e-05 *** 20## ads_youtube 0.045187 0.001479 30.557 < 2e-16 *** 21## ads_fb 0.188177 0.009220 20.410 < 2e-16 *** 22## ads_news -0.005953 0.006041 -0.985 0.326 23## --- 24## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 25## 26## Residual standard error: 2.168 on 196 degrees of freedom 27## Multiple R-squared: 0.8819, Adjusted R-squared: 0.8801 28## F-statistic: 487.9 on 3 and 196 DF, p-value: < 2.2e-16</code></pre><p>There was a small but significant pearson correlation between newspaper and facebook ads in the raw data. Multicolinearity could make it hard to interpret the results, so letâs check for it with a Variance Inflation Factors test:</p><pre class=r><code>imcdiag(mmm_1, method = "VIF")</code></pre><pre><code>## 29## Call: 30## imcdiag(mod = mmm_1, method = "VIF") 31## 32## 33## VIF Multicollinearity Diagnostics 34## 35## VIF detection 36## ads_youtube 1.0032 0 37## ads_fb 1.1504 0 38## ads_news 1.1497 0 39## 40## NOTE: VIF Method Failed to detect multicollinearity 41## 42## 43## 0 --> COLLINEARITY is not detected by the test 44## 45## ===================================</code></pre><p>Fortunately no multicolinearity is detected. Checking for bias and heteroskedacity:</p><pre class=r><code>par(mfrow = c(2,2)) 46plot(mmm_1)</code></pre><p><img src=https://ejhudson.netlify.app/project/mediamix-project/index_files/figure-html/unnamed-chunk-5-1.png width=672></p><p>Based on these residuals vs fitted value plots, the residuals are possibly a little biased, but not heteroskedastic. The Breusch-Pagan test confirms this.</p><pre class=r><code>lmtest::bptest(mmm_1)</code></pre><pre><code>## 47## studentized Breusch-Pagan test 48## 49## data: mmm_1 50## BP = 4.1583, df = 3, p-value = 0.2449</code></pre></div><div id=add-time-series-element class="section level2"><h2>Add time series element</h2><p><br>Itâs possible that cyclical seasonal effects (or an overall downward or upward trends) will have more influence on sales than marketing channels. To test this, first we need to add a timeseries variable (just 1:52 repeated over the length of the data; we donât need to map it to real dates for now). We can decompose this timeseries with the <code>decompose</code> function and see the effect of seasons and trend.</p><pre class=r><code>## Add a time series column to investigate trend/seasonality 51ts_sales <- ts(df_sample$sales, start = 1, frequency = 52) 52ts_sales_comp <- decompose(ts_sales) 53plot(ts_sales_comp)</code></pre><p><img src=https://ejhudson.netlify.app/project/mediamix-project/index_files/figure-html/unnamed-chunk-7-1.png width=672></p><p>Are these factors significant? Letâs fit another linear model with trend and season added.</p><pre class=r><code>mmm_2 <
53- tslm(ts_sales ~ trend + season + ads_youtube + ads_fb + ads_news) 54summary(mmm_2)</code></pre><pre><code>## 55## Call: 56## tslm(formula = ts_sales ~ trend + season + ads_youtube + ads_fb + 57## ads_news) 58## 59## Residuals: 60## Min 1Q Median 3Q Max 61## -6.8701 -1.0978 0.1012 1.1498 5.5102 62## 63## Coefficients: 64## Estimate Std. Error t value Pr(>|t|) 65## (Intercept) 4.550710 1.269482 3.585 0.000461 *** 66## trend -0.001346 0.002698 -0.499 0.618585 67## season2 -2.439879 1.500236 -1.626 0.106066 68## season3 -3.837931 1.511244 -2.540 0.012160 * 69## season4 -0.019777 1.505982 -0.013 0.989540 70## season5 -2.589598 1.533250 -1.689 0.093391 . 71## season6 -2.975709 1.500929 -1.983 0.049317 * 72## season7 -1.828409 1.498110 -1.220 0.224279 73## season8 -1.737503 1.499661 -1.159 0.248538 74## season9 -1.735511 1.542630 -1.125 0.262446 75## season10 -2.379873 1.520560 -1.565 0.119747 76## season11 -3.564521 1.504577 -2.369 0.019158 * 77## season12 -2.221964 1.503207 -1.478 0.141552 78## season13 -2.126054 1.502541 -1.415 0.159235 79## season14 -1.757011 1.537121 -1.143 0.254913 80## season15 -1.008243 1.507831 -0.669 0.504776 81## season16 -0.971702 1.504299 -0.646 0.519340 82## season17 -1.675260 1.510448 -1.109 0.269230 83## season18 -1.487987 1.499527 -0.992 0.322714 84## season19 -3.228179 1.516448 -2.129 0.034975 * 85## season20 -0.920816 1.496122 -0.615 0.539217 86## season21 -2.694057 1.496636 -1.800 0.073942 . 87## season22 -2.724598 1.534971 -1.775 0.078008 . 88## season23 -4.770156 1.513552 -3.152 0.001976 ** 89## season24 -2.457553 1.519227 -1.618 0.107930 90## season25 -0.131696 1.520747 -0.087 0.931110 91## season26 -2.774732 1.523675 -1.821 0.070671 . 92## season27 -5.345331 1.525779 -3.503 0.000612 *** 93## season28 -1.525467 1.516993 -1.006 0.316301 94## season29 -3.807714 1.501743 -2.536 0.012295 * 95## season30 -1.881424 1.501888 -1.253 0.212343 96## season31 -2.258311 1.511899 -1.494 0.137444 97## season32 -2.855228 1.502809 -1.900 0.059442 . 98## season33 -2.696570 1.502977 -1.794 0.074887 . 99## season34 -2.413012 1.510219 -1.598 0.112282 100## season35 -2.534971 1.521820 -1.666 0.097937 . 101## season36 -2.044690 1.504609 -1.359 0.176287 102## season37 -0.511780 1.509610 -0.339 0.735092 103## season38 -1.460185 1.502723 -0.972 0.332833 104## season39 -1.605796 1.502239 -1.069 0.286887 105## season40 0.044458 1.530591 0.029 0.976868 106## season41 -0.503530 1.515917 -0.332 0.740250 107## season42 -1.542739 1.511224 -1.021 0.309035 108## season43 -2.440774 1.510239 -1.616 0.108250 109## season44 -2.802112 1.506946 -1.859 0.065002 . 110## season45 -4.075788 1.628560 -2.503 0.013443 * 111## season46 -1.791812 1.624069 -1.103 0.271743 112## season47 -1.542609 1.628470 -0.947 0.345085 113## season48 -1.246402 1.616600 -0.771 0.441969 114## season49 -3.781911 1.643492 -2.301 0.022819 * 115## season50 -1.074279 1.637860 -0.656 0.512933 116## season51 -4.164205 1.645888 -2.530 0.012480 * 117## season52 -3.191509 1.648129 -1.936 0.054772 . 118## ads_youtube 0.044778 0.001669 26.825 < 2e-16 *** 119## ads_fb 0.185387 0.010483 17.685 < 2e-16 *** 120## ads_news -0.008845 0.006874 -1.287 0.200297 121## --- 122## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 123## 124## Residual standard error: 2.11 on 144 degrees of freedom 125## Multiple R-squared: 0.9178, Adjusted R-squared: 0.8865 126## F-statistic: 29.25 on 55 and 144 DF, p-value: < 2.2e-16</code></pre><p>A couple of weeks are significant in this model, while overall trend is not. However, for predictive purposes, having 50 coefficients in a model with questionable value seems unnecessary and like it could lead to overfitting and inflated standard errors. I want to use a regularization process to select only the important variables for prediction. I will do this using Lasso (least absolute shrinkage and selection operator)</p><pre class=r><code># Best lambda 127best_lambda <
127- cvfit$lambda.min 128print(best_lambda)</code></pre><pre><code>## [1] 2.750911</code></pre><pre class=r><code># Coefficients at best lambda 129coef(cvfit, s = best_lambda)</code></pre><pre><code>## 56 x 1 sparse Matrix of class "dgCMatrix" 130## s0 131## (Intercept) 2.07451978 132## ads_youtube 0.04496458 133## ads_fb 0.17632122 134## ads_news . 135## week2 . 136## week3 . 137## week4 . 138## week5 . 139## week6 . 140## week7 . 141## week8 . 142## week9 . 143## week10 . 144## week11 . 145## week12 . 146## week13 . 147## week14 . 148## week15 . 149## week16 . 150## week17 . 151## week18 . 152## week19 . 153## week20 . 154## week21 . 155## week22 . 156## week23 . 157## week24 . 158## week25 . 159## week26 . 160## week27 . 161## week28 . 162## week29 . 163## week30 . 164## week31 . 165## week32 . 166## week33 . 167## week34 . 168## week35 . 169## week36 . 170## week37 . 171## week38 . 172## week39 . 173## week40 . 174## week41 . 175## week42 . 176## week43 . 177## week44 . 178## week45 . 179## week46 . 180## week47 . 181## week48 . 182## week49 . 183## week50 . 184## week51 . 185## week52 . 186## trend .</code></pre><p>This shows us that all of the week dummy variables, as well as newspaper spend and trend, have zero coefficients, meaning they do not add predictive power to the model and can be dropped. Lasso penalizes complexity, removing even weakly significant variables if they donât aid prediction.</p><pre class=r><code># Get nonzero coefficient names (excluding intercept) 187lasso_coefs <- coef(cvfit, s = "lambda.min") 188selected_vars <- rownames(lasso_coefs)[which(lasso_coefs != 0)] 189selected_vars <- setdiff(selected_vars, "(Intercept)") # exclude intercept 190print(selected_vars)</code></pre><pre><code>## [1] "ads_youtube" "ads_fb"</code></pre><p>Now refit an lm with only the selected variables, Facebook and Youtube spend:</p><pre class=r><code>formula_str <- paste("sales ~", paste(selected_vars, collapse = " + ")) 191formula_ols <- as.formula(formula_str) 192 193# Use the same model matrix columns from df 194df_lm <- as.data.frame(X[, selected_vars, drop = FALSE]) 195df_lm$sales <- y 196 197# Refit OLS 198ols_fit <- lm(formula_ols, data = df_lm) 199summary(ols_fit)</code></pre><pre><code>## 200## Call: 201## lm(formula = formula_ols, data = df_lm) 202## 203## Residuals: 204## Min 1Q Median 3Q Max 205## -9.8037 -1.2752 0.4721 1.4149 4.3137 206## 207## Coefficients: 208## Estimate Std. Error t value Pr(>|t|) 209## (Intercept) 1.770508 0.424036 4.175 4.46e-05 *** 210## ads_youtube 0.045147 0.001478 30.544 < 2e-16 *** 211## ads_fb 0.184919 0.008606 21.487 < 2e-16 *** 212## --- 213## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 214## 215## Residual standard error: 2.168 on 197 degrees of freedom 216## Multiple R-squared: 0.8813, Adjusted R-squared: 0.8801 217## F-statistic: 731.5 on 2 and 197 DF, p-value: < 2.2e-16</code></pre></div><div id=future-predictions class="section level2"><h2>Future predictions</h2><p>Because our model doesnât retain any seasonal or trend components as significant, the only factors predicting sales outcome are youtube and facebook spend. Letâs project revenue in the future, adding some noise to weekly spend so as not to get an unrealistically flat line.</p><pre class=r><code>fb_mean <- mean(df$facebook) 218fb_sd <- sd(df$facebook) 219yt_mean <- mean(df$youtube) 220yt_sd <- sd(df$youtube) 221 222df_scaled <
222- df %>% 223 mutate( 224 fb_spend_scaled = (facebook - fb_mean) / fb_sd, 225 yt_spend_scaled = (youtube - yt_mean) / yt_sd 226 ) 227 228X <- model.matrix(sales ~ fb_spend_scaled + yt_spend_scaled, data = df_scaled)[, -1] 229y <- df_scaled$sales 230 231cvfit <- cv.glmnet(X, y, alpha = 1, standardize = FALSE) 232 233# --- Simulate 100 weeks of time-varying future spend --- 234 235n_future <- 100 236future_weeks <- (nrow(df) + 1):(nrow(df) + n_future) 237 238# Simulate using random draws from normal distributions 239set.seed(123) 240sim_base <- data.frame( 241 week = future_weeks, 242 fb_spend = rnorm(n_future, mean = fb_mean, sd = fb_sd), 243 yt_spend = rnorm(n_future, mean = yt_mean, sd = yt_sd), 244 scenario = "Forecast (Baseline Spend)" 245) 246 247# Reallocation: +50% facebook spend 248sim_realloc <- sim_base 249sim_realloc$fb_spend <- sim_realloc$fb_spend * 1.5 250sim_realloc$scenario <- "Forecast (+50% Facebook)"</code></pre><p>Scale simulated data using historical scaling</p><pre class=r><code>scale_future <- function(data, fb_mean, fb_sd, yt_mean, yt_sd) { 251 data %>% 252 mutate( 253 fb_spend_scaled = (.data$fb_spend - fb_mean) / fb_sd, 254 yt_spend_scaled = (.data$yt_spend - yt_mean) / yt_sd 255 ) 256} 257 258sim_base_scaled <- scale_future(data = sim_base, fb_mean, fb_sd, yt_mean, yt_sd) 259sim_realloc_scaled <- scale_future(data = sim_realloc, fb_mean, fb_sd, yt_mean, yt_sd) 260 261X_base <- model.matrix(~ fb_spend_scaled + yt_spend_scaled, data = sim_base_scaled)[, -1] 262X_realloc <- model.matrix(~ fb_spend_scaled + yt_spend_scaled, data = sim_realloc_scaled)[, -1] 263 264# --- Predict sales using Lasso model --- 265 266sim_base$predicted_sales <- predict(cvfit, newx = X_base, s = "lambda.min") 267sim_realloc$predicted_sales <- predict(cvfit, newx = X_realloc, s = "lambda.min") 268 269# --- Combine with historical data for plotting --- 270 271df$scenario <- "Actual" 272df$week <- 1:nrow(df) 273df$predicted_sales <- predict(cvfit, newx = X, s = "lambda.min") 274 275plot_data <- bind_rows( 276 df %>% select(week, predicted_sales, scenario), 277 sim_base %>% select(week, predicted_sales, scenario), 278 sim_realloc %>% select(week, predicted_sales, scenario) 279)</code></pre><div class="plotly html-widget html-fill-item" id=htmlwidget-1 style=width:1056px;height:480px></div>
279<script type=application/json data-for=htmlwidget-1>{"x":{"data":[{"x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200],"y":[24.61237893857669,14.817615635145945,14.804079509210446,21.105281079770744,15.881112408878304,15.01129107322874,14.073007034807619,14.542190064688342,4.5358153360383442,15.083672122342552,8.502013844215762,20.68450976859501,12.748160017975026,10.618568362547094,22.097038133442965,24.933209609248848,15.485326915906288,27.815106849796109,11.959876102465307,16.983339610499169,21.714219405547357,17.695235248415546,7.8742034686737314,19.83841912016775,9.8158884551531678,18.729116156528072,17.951259620831607,20.437738070176724,23.239268367913951,11.029557851448926,25.914777926294335,13.651564235140983,9.2375121107710907,22.567838767589301,9.1332679120382991,20.380715006527637,27.963290937838355,18.725534352518469,11.922350539829505,24.475385793324662,19.638293371314013,20.729736544497495,25.818754035958609,16.768767604032508,10.716163819905393,18.187501811804832,10.707384203794973,25.975036198474633,19.532289228100836,9.86561721988841,15.195531284516024,11.22429158608398,24.737112791340508,23.898987930317997,24.378273446999458,25.50456628200088,10.281535718267323,15.326007975462591,26.198830719501842,21.696634242374969,6.9641563347933451,27.411543946877156,20.125610818934735,15.824195701346696,20.327394384637049,9.4433145542730692,10.819395759328964,14.443734741381336,22.706525713787194,25.251125735916624,21.309578099784662,12.788834539316042,12.442096269442628,11.93465586956075,20.747784712411498,14.295524722387539,5.4555479892208893,16.549657624635802,10.580523704780905,11.650699379324983,13.739917071647252,17.602512710145554,12.248080060541509,17.285450624766415,24.869660038148552,18.25818323531271,13.913433573371602,18.721749889419648,14.120975855062477,20.283398404938819,12.023130939990308,5.4932158920714658,22.973578582487214,25.456841929592603,12.590723255935005,19.579275948483705,15.164939143684261,18.386823785098642,28.872173419049005,20.30508869573687,16.697536925957021,27.895560042432145,21.14991838852265,17.700438885176432,24.271475581372094,21.503935079504103,7.4220462942520431,8.597895394336712,4.4011112835428223,23.554763114756184,17.755615754519138,25.290268902818031,16.631850655460738,19.645501420401853,18.334902230578635,15.525823112935241,14.393532918758739,7.945612471061283,18.712715752316903,8.2349810818072253,17.304633285912931,9.4774265840655936,16.359802633749123,18.056251504735556,23.349179208149238,10.995995076224016,12.724984409980395,7.9740478062055695,26.583124711448285,9.5342872012084232,12.494058036545606,18.720422790243653,10.140228961640341,23.088199895304548,14.246192818859392,16.747656727239292,13.718908322485841,25.001042632286865,11.737917722598738,23.509973412643763,11.406104592885656,22.088685537976865,23.059291502272909,10.581032746765551,12.158384247053441,11.67946543214185,18.334785821315407,27.833042836932563,14.686553705534473,11.808334571968553,22.027338809807087,12.080210094028169,19.594561965753844,21.828046995950505,18.567482192376325,6.4155223184400647,18.453562527487115,12.063759424088294,12.49041591366155,14.901416217090743,17.061229083094894,16.283362494252682,17.929076165854717,20.753527550594246,13.282225542792098,17.156627522182745,12.985424521403218,16.047410808369069,20.633229543128675,21.485562018577589,8.9208167271618262,17.250987771009832,9.1631425271361273,14.376543047396995,16.496190434044767,29.650070167328437,23.910962542376666,14.631392713997574,19.213879937254227,14.872497770913364,12.725747972957366,16.730758930363614,7.9392843942136295,28.914154933274535,22.21460997436197,24.875525110254596,11.680543834985588,20.447860663268944,22.316621170727029,7.3242725125816799,14.947400731310131,10.133672294751911,5.4526535515079955,22.096982043054194,19.731839791435419,6.5093793499425718,9.8344096809545221,15.338124927736036,28.472110298799329,18.188967022709924],"text":["week: 1<br />predicted_sales: 24.612379<br />scenario: Actual","week: 2<br />predicted_sales: 14.817616<br />scenario: Actual","week: 3<br />predicted_sales: 14.804080<br />scenario: Actual","week: 4<br />predicted_sales: 21.105281<br />scenario: Actual","week: 5<br />predicted_sales: 15.881112<br />scenario: Actual","week: 6<br />predicted_sales: 15.011291<br />scenario: Actual","week: 7<br />predicted_sales: 14.073007<br />scenario: Actual","week: 8<br />predicted_sales: 14.542190<br />scenario: Actual","week: 9<br />predicted_sales: 4.535815<br />scenario: Actual","week: 10<br />predicted_sales: 15.083672<br />scenario: Actual","week: 11<br />predicted_sales: 8.502014<br />scenario: Actual","week: 12<br />predicted_sales: 20.684510<br />scenario: Actual","week: 13<br />predicted_sales: 12.748160<br />scenario: Actual","week: 14<br />predicted_sales: 10.618568<br />scenario: Actual","week: 15<br />predicted_sales: 22.097038<br />scenario: Actual","week: 16<br />predicted_sales: 24.933210<br />scenario: Actual","week: 17<br />predicted_sales: 15.485327<br />scenario: Actual","week: 18<br />predicted_sales: 27.815107<br />scenario: Actual","week: 19<br />predicted_sales: 11.959876<br />scenario: Actual","week: 20<br />predicted_sales: 16.983340<br />scenario: Actual","week: 21<br />predicted_sales: 21.714219<br />scenario: Actual","week: 22<br />predicted_sales: 17.695235<br />scenario: Actual","week: 23<br />predicted_sales: 7.874203<br />scenario: Actual","week: 24<br />predicted_sales: 19.838419<br />scenario: Actual","week: 25<br />predicted_sales: 9.815888<br />scenario: Actual","week: 26<br />predicted_sales: 18.729116<br />scenario: Actual","week: 27<br />predicted_sales: 17.951260<br />scenario: Actual","week: 28<br />predicted_sales: 20.437738<br />scenario: Actual","week: 29<br />predicted_sales: 23.239268<br />scenario: Actual","week: 30<br />predicted_sales: 11.029558<br />scenario: Actual","week: 31<br />predicted_sales: 25.914778<br />scenario: Actual","week: 32<br />predicted_sales: 13.651564<br />scenario: Actual","week: 33<br />predicted_sales: 9.237512<br />scenario: Actual","week: 34<br />predicted_sales: 22.567839<br />scenario: Actual","week: 35<br />predicted_sales: 9.133268<br />scenario: Actual","week: 36<br />predicted_sales: 20.380715<br />scenario: Actual","week: 37<br />predicted_sales: 27.963291<br />scenario: Actual","week: 38<br />predicted_sales: 18.725534<br />scenario: Actual","week: 39<br />predicted_sales: 11.922351<br />scenario: Actual","week: 40<br />predicted_sales: 24.475386<br />scenario: Actual","week: 41<br />predicted_sales: 19.638293<br />scenario: Actual","week: 42<br />predicted_sales: 20.729737<br />scenario: Actual","week: 43<br />predicted_sales: 25.818754<br />scenario: Actual","week: 44<br />predicted_sales: 16.768768<br />scenario: Actual","week: 45<br />predicted_sales: 10.716164<br />scenario: Actual","week: 46<br />predicted_sales: 18.187502<br />scenario: Actual","week: 47<br />predicted_sales: 10.707384<br />scenario: Actual","week: 48<br />predicted_sales: 25.975036<br />scenario: Actual","week: 49<br />predicted_sales: 19.532289<br />scenario: Actual","week: 50<br />predicted_sales: 9.865617<br />scenario: Actual","week: 51<br />predicted_sales: 15.195531<br />scenario: Actual","week: 52<br />predicted_sales: 11.224292<br />scenario: Actual","week: 53<br />predicted_sales: 24.737113<br />scenario: Actual","week: 54<br />predicted_sales: 23.898988<br />scenario: Actual","week: 55<br />predicted_sales: 24.378273<br />scenario: Actual","week: 56<br />predicted_sales: 25.504566<br />scenario: Actual","week: 57<br />predicted_sales: 10.281536<br />scenario: Actual","week: 58<br />predicted_sales: 15.326008<br />scenario: Actual","week: 59<br />predicted_sales: 26.198831<br />scenario: Actual","week: 60<br />predicted_sales: 21.696634<br />scenario: Actual","week: 61<br />predicted_sales: 6.964156<br />scenario: Actual","week: 62<br />predicted_sales: 27.411544<br />scenario: Actual","week: 63<br />predicted_sales: 20.125611<br />scenario: Actual","week: 64<br />predicted_sales: 15.824196<br />scenario: Actual","week: 65<br />predicted_sales: 20.327394<br />scenario: Actual","week: 66<br />predicted_sales: 9.443315<br />scenario: Actual","week: 67<br />predicted_sales: 10.819396<br />scenario: Actual","week: 68<br />predicted_sales: 14.443735<br />scenario: Actual","week: 69<br />predicted_sales: 22.706526<br />scenario: Actual","week: 70<br />predicted_sales: 25.251126<br />scenario: Actual","week: 71<br />predicted_sales: 21.309578<br />scenario: Actual","week: 72<br />predicted_sales: 12.788835<br />scenario: Actual","week: 73<br />predicted_sales: 12.442096<br />scenario: Actual","week: 74<br />predicted_sales: 11.934656<br />scenario: Actual","week: 75<br />predicted_sales: 20.747785<br />scenario: Actual","week: 76<br />predicted_sales: 14.295525<br />scenario: Actual","week: 77<br />predicted_sales: 5.455548<br />scenario: Actual","week: 78<br />predicted_sales: 16.549658<br />scenario: Actual","week: 79<br />predicted_sales: 10.580524<br />scenario: Actual","week: 80<br />predicted_sales: 11.650699<br />scenario: Actual","week: 81<br />predicted_sales: 13.739917<br />scenario: Actual","week: 82<br />predicted_sales: 17.602513<br />scenario: Actual","week: 83<br />predicted_sales: 12.248080<br />scenario: Actual","week: 84<br />predicted_sales: 17.285451<br />scenario: Actual","week: 85<br />predicted_sales: 24.869660<br />scenario: Actual","week: 86<br />predicted_sales: 18.258183<br />scenario: Actual","week: 87<br />predicted_sales: 13.913434<br />scenario: Actual","week: 88<br />predicted_sales: 18.721750<br />scenario: Actual","week: 89<br />predicted_sales: 14.120976<br />scenario: Actual","week: 90<br />predicted_sales: 20.283398<br />scenario: Actual","week: 91<br />predicted_sales: 12.023131<br />scenario: Actual","week: 92<br />predicted_sales: 5.493216<br />scenario: Actual","week: 93<br />predicted_sales: 22.973579<br />scenario: Actual","week: 94<br />predicted_sales: 25.456842<br />scenario: Actual","week: 95<br />predicted_sales: 12.590723<br />scenario: Actual","week: 96<br />predicted_sales: 19.579276<br />scenario: Actual","week: 97<br />predicted_sales: 15.164939<br />scenario: Actual","week: 98<br />predicted_sales: 18.386824<br />scenario: Actual","week: 99<br />predicted_sales: 28.872173<br />scenario: Actual","week: 100<br />predicted_sales: 20.305089<br />scenario: Actual","week: 101<br />predicted_sales: 16.697537<br />scenario: Actual","week: 102<br />predicted_sales: 27.895560<br />scenario: Actual","week: 103<br />predicted_sales: 21.149918<br />scenario: Actual","week: 104<br />predicted_sales: 17.700439<br />scenario: Actual","week: 105<br />predicted_sales: 24.271476<br />scenario: Actual","week: 106<br />predicted_sales: 21.503935<br />scenario: Actual","week: 107<br />predicted_sales: 7.422046<br />scenario: Actual","week: 108<br />predicted_sales: 8.597895<br />scenario: Actual","week: 109<br />predicted_sales: 4.401111<br />scenario: Actual","week: 110<br />predicted_sales: 23.554763<br />scenario: Actual","week: 111<br />predicted_sales: 17.755616<br />scenario: Actual","week: 112<br />predicted_sales: 25.290269<br />scenario: Actual","week: 113<br />predicted_sales: 16.631851<br />scenario: Actual","week: 114<br />predicted_sales: 19.645501<br />scenario: Actual","week: 115<br />predicted_sales: 18.334902<br />scenario: Actual","week: 116<br />predicted_sales: 15.525823<br />scenario: Actual","week: 117<br />predicted_sales: 14.393533<br />scenario: Actual","week: 118<br />predicted_sales: 7.945612<br />scenario: Actual","week: 119<br />predicted_sales: 18.712716<br />scenario: Actual","week: 120<br />predicted_sales: 8.234981<br />scenario: Actual","week: 121<br />predicted_sales: 17.304633<br />scenario: Actual","week: 122<br />predicted_sales: 9.477427<br />scenario: Actual","week: 123<br />predicted_sales: 16.359803<br />scenario: Actual","week: 124<br />predicted_sales: 18.056252<br />scenario: Actual","week: 125<br />predicted_sales: 23.349179<br />
279scenario: Actual","week: 126<br />predicted_sales: 10.995995<br />scenario: Actual","week: 127<br />predicted_sales: 12.724984<br />scenario: Actual","week: 128<br />predicted_sales: 7.974048<br />scenario: Actual","week: 129<br />predicted_sales: 26.583125<br />scenario: Actual","week: 130<br />predicted_sales: 9.534287<br />scenario: Actual","week: 131<br />predicted_sales: 12.494058<br />scenario: Actual","week: 132<br />predicted_sales: 18.720423<br />scenario: Actual","week: 133<br />predicted_sales: 10.140229<br />scenario: Actual","week: 134<br />predicted_sales: 23.088200<br />scenario: Actual","week: 135<br />predicted_sales: 14.246193<br />scenario: Actual","week: 136<br />predicted_sales: 16.747657<br />scenario: Actual","week: 137<br />predicted_sales: 13.718908<br />scenario: Actual","week: 138<br />predicted_sales: 25.001043<br />scenario: Actual","week: 139<br />predicted_sales: 11.737918<br />scenario: Actual","week: 140<br />predicted_sales: 23.509973<br />scenario: Actual","week: 141<br />predicted_sales: 11.406105<br />scenario: Actual","week: 142<br />predicted_sales: 22.088686<br />scenario: Actual","week: 143<br />predicted_sales: 23.059292<br />scenario: Actual","week: 144<br />predicted_sales: 10.581033<br />scenario: Actual","week: 145<br />predicted_sales: 12.158384<br />scenario: Actual","week: 146<br />predicted_sales: 11.679465<br />scenario: Actual","week: 147<br />predicted_sales: 18.334786<br />scenario: Actual","week: 148<br />predicted_sales: 27.833043<br />scenario: Actual","week: 149<br />predicted_sales: 14.686554<br />scenario: Actual","week: 150<br />predicted_sales: 11.808335<br />scenario: Actual","week: 151<br />predicted_sales: 22.027339<br />scenario: Actual","week: 152<br />predicted_sales: 12.080210<br />scenario: Actual","week: 153<br />predicted_sales: 19.594562<br />scenario: Actual","week: 154<br />predicted_sales: 21.828047<br />scenario: Actual","week: 155<br />predicted_sales: 18.567482<br />scenario: Actual","week: 156<br />predicted_sales: 6.415522<br />scenario: Actual","week: 157<br />predicted_sales: 18.453563<br />scenario: Actual","week: 158<br />predicted_sales: 12.063759<br />scenario: Actual","week: 159<br />predicted_sales: 12.490416<br />scenario: Actual","week: 160<br />predicted_sales: 14.901416<br />scenario: Actual","week: 161<br />predicted_sales: 17.061229<br />scenario: Actual","week: 162<br />predicted_sales: 16.283362<br />scenario: Actual","week: 163<br />predicted_sales: 17.929076<br />scenario: Actual","week: 164<br />predicted_sales: 20.753528<br />scenario: Actual","week: 165<br />predicted_sales: 13.282226<br />scenario: Actual","week: 166<br />predicted_sales: 17.156628<br />scenario: Actual","week: 167<br />predicted_sales: 12.985425<br />scenario: Actual","week: 168<br />predicted_sales: 16.047411<br />scenario: Actual","week: 169<br />predicted_sales: 20.633230<br />scenario: Actual","week: 170<br />predicted_sales: 21.485562<br />scenario: Actual","week: 171<br />predicted_sales: 8.920817<br />scenario: Actual","week: 172<br />predicted_sales: 17.250988<br />scenario: Actual","week: 173<br />predicted_sales: 9.163143<br />scenario: Actual","week: 174<br />predicted_sales: 14.376543<br />scenario: Actual","week: 175<br />predicted_sales: 16.496190<br />scenario: Actual","week: 176<br />predicted_sales: 29.650070<br />scenario: Actual","week: 177<br />predicted_sales: 23.910963<br />scenario: Actual","week: 178<br />predicted_sales: 14.631393<br />scenario: Actual","week: 179<br />predicted_sales: 19.213880<br />scenario: Actual","week: 180<br />predicted_sales: 14.872498<br />scenario: Actual","week: 181<br />predicted_sales: 12.725748<br />scenario: Actual","week: 182<br />predicted_sales: 16.730759<br />scenario: Actual","week: 183<br />predicted_sales: 7.939284<br />scenario: Actual","week: 184<br />predicted_sales: 28.914155<br />scenario: Actual","week: 185<br />predicted_sales: 22.214610<br />scenario: Actual","week: 186<br />predicted_sales: 24.875525<br />scenario: Actual","week: 187<br />predicted_sales: 11.680544<br />scenario: Actual","week: 188<br />predicted_sales: 20.447861<br />scenario: Actual","week: 189<br />predicted_sales: 22.316621<br />scenario: Actual","week: 190<br />predicted_sales: 7.324273<br />scenario: Actual","week: 191<br />predicted_sales: 14.947401<br />scenario: Actual","week: 192<br />predicted_sales: 10.133672<br />scenario: Actual","week: 193<br />predicted_sales: 5.452654<br />scenario: Actual","week: 194<br />predicted_sales: 22.096982<br />scenario: Actual","week: 195<br />predicted_sales: 19.731840<br />scenario: Actual","week: 196<br />predicted_sales: 6.509379<br />scenario: Actual","week: 197<br />predicted_sales: 9.834410<br />scenario: Actual","week: 198<br />predicted_sales: 15.338125<br />scenario: Actual","week: 199<br />predicted_sales: 28.472110<br />scenario: Actual","week: 200<br />predicted_sales: 18.188967<br />scenario: Actual"],"type":"scatter","mode":"lines","line":{"width":1.8897637795275593,"color":"rgba(0,0,0,1)","dash":"solid"},"hoveron":"points","name":"Actual","legendgroup":"Actual","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,28
2790,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300],"y":[10.705559922744422,16.88396945945891,23.436869286388646,15.549685425365649,13.011803076970097,25.160888340705782,15.445292860589428,2.7080670398612963,11.623159852009426,18.913071396577159,20.229577351255692,21.46864128776264,11.24225063872488,17.118082819501833,16.491630922682969,27.141079363448785,19.802622937693329,4.0264254459916868,16.339568626176455,9.67230408116726,12.05812907422648,11.30107084751771,9.4164028578350081,11.995414806741865,22.35334239492407,5.3683878453318012,22.104104132692353,17.956473160696689,6.6491940937233949,22.739671596429474,25.721004958288177,17.472653583785931,21.479964148640587,19.222239515785532,11.298687406413524,25.55949495756207,12.742112438841183,19.98597825441858,24.24878923207514,8.1652269995155589,16.654396007037725,14.562430044544303,3.1553115017313753,20.535468515160904,15.340480542124876,8.7435271165693909,7.969851179098689,17.725623111356317,30.55422081663264,10.380532469912147,21.780488641699915,20.288550607328837,18.170129556626744,18.920412502171512,15.142389358302994,23.068493841169737,11.748921280959305,17.994424493085045,22.022228986261233,16.147567694878081,23.651529403694607,9.4077904684403073,9.2617132253307979,26.939904282417526,9.5336433773584748,19.736769347793366,22.043098836223116,14.824055696247383,23.844017990173338,28.770034269294246,13.371271656301746,5.6280990903370247,21.678204514513016,23.267633594609652,9.9252205229161028,16.800754098184505,15.585266981286294,12.20000450294277,19.775875214853659,13.987080534790305,11.872908946036402,24.665926260345916,13.34179466142346,15.981603312966087,14.621259590107021,17.556044313884879,27.492884245428595,19.392269124102171,18.736666780021263,20.210940215119976,22.781792974305706,18.037755891377856,18.459646414006333,9.5028857628578702,17.463623155112369,23.195414793398093,30.539807919463101,18.599324565318955,12.788720784277578,6.1578790363549158],"text":["week: 201<br />predicted_sales: 10.705560<br />scenario: Forecast (+50% Facebook)","week: 202<br />predicted_sales: 16.883969<br />scenario: Forecast (+50% Facebook)","week: 203<br />predicted_sales: 23.436869<br />scenario: Forecast (+50% Facebook)","week: 204<br />predicted_sales: 15.549685<br />scenario: Forecast (+50% Facebook)","week: 205<br />predicted_sales: 13.011803<br />scenario: Forecast (+50% Facebook)","week: 206<br />predicted_sales: 25.160888<br />scenario: Forecast (+50% Facebook)","week: 207<br />predicted_sales: 15.445293<br />scenario: Forecast (+50% Facebook)","week: 208<br />predicted_sales: 2.708067<br />scenario: Forecast (+50% Facebook)","week: 209<br />predicted_sales: 11.623160<br />scenario: Forecast (+50% Facebook)","week: 210<br />predicted_sales: 18.913071<br />scenario: Forecast (+50% Facebook)","week: 211<br />predicted_sales: 20.229577<br />scenario: Forecast (+50% Facebook)","week: 212<br />predicted_sales: 21.468641<br />scenario: Forecast (+50% Facebook)","week: 213<br />predicted_sales: 11.242251<br />scenario: Forecast (+50% Facebook)","week: 214<br />
279predicted_sales: 17.118083<br />scenario: Forecast (+50% Facebook)","week: 215<br />predicted_sales: 16.491631<br />scenario: Forecast (+50% Facebook)","week: 216<br />predicted_sales: 27.141079<br />scenario: Forecast (+50% Facebook)","week: 217<br />predicted_sales: 19.802623<br />scenario: Forecast (+50% Facebook)","week: 218<br />predicted_sales: 4.026425<br />scenario: Forecast (+50% Facebook)","week: 219<br />predicted_sales: 16.339569<br />scenario: Forecast (+50% Facebook)","week: 220<br />predicted_sales: 9.672304<br />scenario: Forecast (+50% Facebook)","week: 221<br />predicted_sales: 12.058129<br />scenario: Forecast (+50% Facebook)","week: 222<br />predicted_sales: 11.301071<br />scenario: Forecast (+50% Facebook)","week: 223<br />predicted_sales: 9.416403<br />scenario: Forecast (+50% Facebook)","week: 224<br />predicted_sales: 11.995415<br />scenario: Forecast (+50% Facebook)","week: 225<br />predicted_sales: 22.353342<br />scenario: Forecast (+50% Facebook)","week: 226<br />predicted_sales: 5.368388<br />scenario: Forecast (+50% Facebook)","week: 227<br />predicted_sales: 22.104104<br />scenario: Forecast (+50% Facebook)","week: 228<br />predicted_sales: 17.956473<br />scenario: Forecast (+50% Facebook)","week: 229<br />predicted_sales: 6.649194<br />scenario: Forecast (+50% Facebook)","week: 230<br />predicted_sales: 22.739672<br />scenario: Forecast (+50% Facebook)","week: 231<br />predicted_sales: 25.721005<br />scenario: Forecast (+50% Facebook)","week: 232<br />predicted_sales: 17.472654<br />scenario: Forecast (+50% Facebook)","week: 233<br />predicted_sales: 21.479964<br />scenario: Forecast (+50% Facebook)","week: 234<br />predicted_sales: 19.222240<br />scenario: Forecast (+50% Facebook)","week: 235<br />predicted_sales: 11.298687<br />scenario: Forecast (+50% Facebook)","week: 236<br />predicted_sales: 25.559495<br />scenario: Forecast (+50% Facebook)","week: 237<br />predicted_sales: 12.742112<br />scenario: Forecast (+50% Facebook)","week: 238<br />predicted_sales: 19.985978<br />scenario: Forecast (+50% Facebook)","week: 239<br />predicted_sales: 24.248789<br />scenario: Forecast (+50% Facebook)","week: 240<br />predicted_sales: 8.165227<br />scenario: Forecast (+50% Facebook)","week: 241<br />predicted_sales: 16.654396<br />scenario: Forecast (+50% Facebook)","week: 242<br />predicted_sales: 14.562430<br />scenario: Forecast (+50% Facebook)","week: 243<br />predicted_sales: 3.155312<br />scenario: Forecast (+50% Facebook)","week: 244<br />predicted_sales: 20.535469<br />scenario: Forecast (+50% Facebook)","week: 245<br />predicted_sales: 15.340481<br />scenario: Forecast (+50% Facebook)","week: 246<br />predicted_sales: 8.743527<br />scenario: Forecast (+50% Facebook)","week: 247<br />predicted_sales: 7.969851<br />scenario: Forecast (+50% Facebook)","week: 248<br />predicted_sales: 17.725623<br />scenario: Forecast (+50% Facebook)","week: 249<br />predicted_sales: 30.554221<br />scenario: Forecast (+50% Facebook)","week: 250<br />predicted_sales: 10.380532<br />scenario: Forecast (+50% Facebook)","week: 251<br />predicted_sales: 21.780489<br />scenario: Forecast (+50% Facebook)","week: 252<br />predicted_sales: 20.288551<br />scenario: Forecast (+50% Facebook)","week: 253<br />predicted_sales: 18.170130<br />scenario: Forecast (+50% Facebook)","week: 254<br />predicted_sales: 18.920413<br />scenario: Forecast (+50% Facebook)","week: 255<br />predicted_sales: 15.142389<br />scenario: Forecast (+50% Facebook)","week: 256<br />predicted_sales: 23.068494<br />scenario: Forecast (+50% Facebook)","week: 257<br />predicted_sales: 11.748921<br />scenario: Forecast (+50% Facebook)","week: 258<br />predicted_sales: 17.994424<br />scenario: Forecast (+50% Facebook)","week: 259<br />predicted_sales: 22.022229<br />scenario: Forecast (+50% Facebook)","week: 260<br />predicted_sales: 16.147568<br />scenario: Forecast (+50% Facebook)","week: 261<br />predicted_sales: 23.651529<br />scenario: Forecast (+50% Facebook)","week: 262<br />predicted_sales: 9.407790<br />scenario: Forecast (+50% Facebook)","week: 263<br />predicted_sales: 9.261713<br />scenario: Forecast (+50% Facebook)","week: 264<br />predicted_sales: 26.939904<br />scenario: Forecast (+50% Facebook)","week: 265<br />predicted_sales: 9.533643<br />scenario: Forecast (+50% Facebook)","week: 266<br />predicted_sales: 19.736769<br />scenario: Forecast (+50% Facebook)","week: 267<br />predicted_sales: 22.043099<br />scenario: Forecast (+50% Facebook)","week: 268<br />predicted_sales: 14.824056<br />scenario: Forecast (+50% Facebook)","week: 269<br />predicted_sales: 23.844018<br />scenario: Forecast (+50% Facebook)","week: 270<br />predicted_sales: 28.770034<br />scenario: Forecast (+50% Facebook)","week: 271<br />predicted_sales: 13.371272<br />scenario: Forecast (+50% Facebook)","week: 272<br />predicted_sales: 5.628099<br />scenario: Forecast (+50% Facebook)","week: 273<br />predicted_sales: 21.678205<br />scenario: Forecast (+50% Facebook)","week: 274<br />predicted_sales: 23.267634<br />scenario: Forecast (+50% Facebook)","week: 275<br />predicted_sales: 9.925221<br />scenario: Forecast (+50% Facebook)","week: 276<br />predicted_sales: 16.800754<br />scenario: Forecast (+50% Facebook)","week: 277<br />predicted_sales: 15.585267<br />scenario: Forecast (+50% Facebook)","week: 278<br />predicted_sales: 12.200005<br />scenario: Forecast (+50% Facebook)","week: 279<br />predicted_sales: 19.775875<br />scenario: Forecast (+50% Facebook)","week: 280<br />predicted_sales: 13.987081<br />scenario: Forecast (+50% Facebook)","week: 281<br />predicted_sales: 11.872909<br />scenario: Forecast (+50% Facebook)","week: 282<br />predicted_sales: 24.665926<br />scenario: Forecast (+50% Facebook)","week: 283<br />predicted_sales: 13.341795<br />scenario: Forecast (+50% Facebook)","week: 284<br />predicted_sales: 15.981603<br />scenario: Forecast (+50% Facebook)","week: 285<br />predicted_sales: 14.621260<br />scenario: Forecast (+50% Facebook)","week: 286<br />predicted_sales: 17.556044<br />scenario: Forecast (+50% Facebook)","week: 287<br />predicted_sales: 27.492884<br />scenario: Forecast (+50% Facebook)","week: 288<br />predicted_sales: 19.392269<br />scenario: Forecast (+50% Facebook)","week: 289<br />predicted_sales: 18.736667<br />scenario: Forecast (+50% Facebook)","week: 290<br />predicted_sales: 20.210940<br />scenario: Forecast (+50% Facebook)","week: 291<br />predicted_sales: 22.781793<br />scenario: Forecast (+50% Facebook)","week: 292<br />predicted_sales: 18.037756<br />scenario: Forecast (+50% Facebook)","week: 293<br />predicted_sales: 18.459646<br />scenario: Forecast (+50% Facebook)","week: 294<br />predicted_sales: 9.502886<br />scenario: Forecast (+50% Facebook)","week: 295<br />predicted_sales: 17.463623<br />scenario: Forecast (+50% Facebook)","week: 296<br />predicted_sales: 23.195415<br />scenario: Forecast (+50% Facebook)","week: 297<br />predicted_sales: 30.539808<br />scenario: Forecast (+50% Facebook)","week: 298<br />predicted_sales: 18.599325<br />scenario: Forecast (+50% Facebook)","week: 299<br />predicted_sales: 12.788721<br />scenario: Forecast (+50% Facebook)","week: 300<br />predicted_sales: 6.157879<br />scenario: Forecast (+50% Facebook)"],"type":"scatter","mode":"lines","line":{"width":1.8897637795275593,"color":"rgba(178,34,34,1)","dash":"solid"},"hoveron":"points","name":"Forecast (+50% Facebook)","legendgroup":"Forecast (+50% Facebook)","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,28
2790,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300],"y":[11.636370769355462,17.266237101549539,20.848241904560641,15.432588498998165,12.797088259364951,22.312591358929499,14.679825517712489,4.8090195541097778,12.763851849067787,19.653205242254323,18.19668150430002,20.871079886039144,10.576668796730907,16.934266317985941,17.414744996245993,24.173460449193044,18.975816941791599,7.2924881050615644,15.174790665660149,10.457493184752453,13.831519040258412,11.663073043511707,11.120341423284502,13.205922107812693,23.391377381191244,8.1695665195582201,20.712747928434755,17.70175850442396,8.5393568731702185,20.657396415779086,25.012753805032812,17.962694031723977,19.993382743175424,17.76387789026932,9.9342452814739133,24.415834529366045,11.822192789854093,20.088798229009011,24.756917226251225,8.7970948366675064,17.808131758400759,14.90772900404237,5.2568205620221002,16.933371348623744,13.334355677944025,10.608731532851282,8.6389428281977487,18.500621753052226,29.258892470804014,10.51898778339665,21.35978950530712,20.335959677959437,18.241326738683458,16.647504020788233,15.517338891961517,20.550012804833898,14.321015033408294,17.02352625230214,21.816537848245595,15.788942381436618,23.02104251184036,10.242024964689186,9.815087932685703,28.631505015686407,11.313622409530534,19.232683660191814,21.298733713363958,14.736028840021815,22.312360784619827,25.365352774939321,14.186752468360385,9.4630550769623145,20.007922615231884,24.445439920892227,11.067831957880587,15.097534768745721,16.058204218462802,14.227313439925966,19.474775164357329,14.21774459210328,11.863336064876437,24.026071204089458,13.95736891539852,14.911453906202809,14.98743300823028,17.005036874717092,25.671307060575028,18.669540751505998,19.277958193719357,18.303056084022302,21.131829820744699,17.127004744028806,18.063172294499157,10.545681805515143,15.20391737601102,24.19229688441462,26.907191074155886,16.054038961457103,13.180160541117042,7.8625092251437101],"text":["week: 201<br />predicted_sales: 11.636371<br />scenario: Forecast (Baseline Spend)","week: 202<br />predicted_sales: 17.266237<br />scenario: Forecast (Baseline Spend)","week: 203<br />predicted_sales: 20.848242<br />scenario: Forecast (Baseline Spend)","week: 204<br />predicted_sales: 15.432588<br />scenario: Forecast (Baseline Spend)","week: 205<br />predicted_sales: 12.797088<br />scenario: Forecast (Baseline Spend)","week: 206<br />predicted_sales: 22.312591<br />scenario: Forecast (Baseline Spend)","week: 207<br />predicted_sales: 14.679826<br />scenario: Forecast (Baseline Spend)","week: 208<br />predicted_sales: 4.809020<br />scenario: Forecast (Baseline Spend)","week: 209<br />predicted_sales: 12.763852<br />scenario: Forecast (Baseline Spend)","week: 210<br />predicted_sales: 19.653205<br />scenario: Forecast (Baseline Spend)","week: 211<br />predicted_sales: 18.196682<br />scenario: Forecast (Baseline Spend)","week: 212<br />predicted_sales: 20.871080<br />scenario: Forecast (Baseline Spend)","week: 213<br />predicted_sales: 10.576669<br />scenario: Forecast (Baseline Spend)","week: 214<br />predicted_sales: 16.934266<br />scenario: Forecast (Baseline Spend)","week: 215<br />predicted_sales: 17.414745<br />scenario: Forecast (Baseline Spend)","week: 216<br />predicted_sales: 24.173460<br />scenario: Forecast (Baseline Spend)","week: 217<br />predicted_sales: 18.975817<br />scenario: Forecast (Baseline Spend)","week: 218<br />predicted_sales: 7.292488<br />scenario: Forecast (Baseline Spend)","week: 219<br />predicted_sales: 15.174791<br />scenario: Forecast (Baseline Spend)","week: 220<br />predicted_sales: 10.457493<br />scenario: Forecast (Baseline Spend)","week: 221<br />predicted_sales: 13.831519<br />scenario: Forecast (Baseline Spend)","week: 222<br />predicted_sales: 11.663073<br />scenario: Forecast (Baseline Spend)","week: 223<br />predicted_sales: 11.120341<br />scenario: Forecast (Baseline Spend)","week: 224<br />predicted_sales: 13.205922<br />scenario: Forecast (Baseline Spend)","week: 225<br />predicted_sales: 23.391377<br />scenario: Forecast (Baseline Spend)","week: 226<br />predicted_sales: 8.169567<br />scenario: Forecast (Baseline Spend)","week: 227<br />predicted_sales: 20.712748<br />scenario: Forecast (Baseline Spend)","week: 228<br />predicted_sales: 17.701759<br />scenario: Forecast (Baseline Spend)","week: 229<br />predicted_sales: 8.539357<br />scenario: Forecast (Baseline Spend)","week: 230<br />predicted_sales: 20.657396<br />scenario: Forecast (Baseline Spend)","week: 231<br />predicted_sales: 25.012754<br />scenario: Forecast (Baseline Spend)","week: 232<br />predicted_sales: 17.962694<br />scenario: Forecast (Baseline Spend)","week: 233<br />predicted_sales: 19.993383<br />scenario: Forecast (Baseline Spend)","week: 234<br />predicted_sales: 17.763878<br />scenario: Forecast (Baseline Spend)","week: 235<br />predicted_sales: 9.934245<br />scenario: Forecast (Baseline Spend)","week: 236<br />predicted_sales: 24.415835<br />scenario: Forecast (Baseline Spend)","week: 237<br />predicted_sales: 11.822193<br />scenario: Forecast (Baseline Spend)","week: 238<br />predicted_sales: 20.088798<br />scenario: Forecast (Baseline Spend)","week: 239<br />predicted_sales: 24.756917<br />scenario: Forecast (Baseline Spend)","week: 240<br />predicted_sales: 8.797095<br />scenario: Forecast (Baseline Spend)","week: 241<br />predicted_sales: 17.808132<br />scenario: Forecast (Baseline Spend)","week: 242<br />predicted_sales: 14.907729<br />scenario: Forecast (Baseline Spend)","week: 243<br />predicted_sales: 5.256821<br />scenario: Forecast (Baseline Spend)","week: 244<br />predicted_sales: 16.933371<br />scenario: Forecast (Baseline Spend)","week: 245<br />predicted_sales: 13.334356<br />scenario: Forecast (Baseline Spend)","week: 246<br />predicted_sales: 10.608732<br />scenario: Forecast (Baseline Spend)","week: 247<br />predicted_sales: 8.638943<br />scenario: Forecast (Baseline Spend)","week: 248<br />predicted_sales: 18.500622<br />scenario: Forecast (Baseline Spend)","week: 249<br />predicted_sales: 29.258892<br />scenario: Forecast (Baseline Spend)","week: 250<br />predicted_sales: 10.518988<br />scenario: Forecast (Baseline Spend)","week: 251<br />predicted_sales: 21.359790<br />scenario: Forecast (Baseline Spend)","week: 252<br />predicted_sales: 20.335960<br />scenario: Forecast (Baseline Spend)","week: 253<br />predicted_sales: 18.241327<br />scenario: Forecast (Baseline Spend)","week: 254<br />
279predicted_sales: 16.647504<br />scenario: Forecast (Baseline Spend)","week: 255<br />predicted_sales: 15.517339<br />scenario: Forecast (Baseline Spend)","week: 256<br />predicted_sales: 20.550013<br />scenario: Forecast (Baseline Spend)","week: 257<br />predicted_sales: 14.321015<br />scenario: Forecast (Baseline Spend)","week: 258<br />predicted_sales: 17.023526<br />scenario: Forecast (Baseline Spend)","week: 259<br />predicted_sales: 21.816538<br />scenario: Forecast (Baseline Spend)","week: 260<br />predicted_sales: 15.788942<br />scenario: Forecast (Baseline Spend)","week: 261<br />predicted_sales: 23.021043<br />scenario: Forecast (Baseline Spend)","week: 262<br />predicted_sales: 10.242025<br />scenario: Forecast (Baseline Spend)","week: 263<br />predicted_sales: 9.815088<br />scenario: Forecast (Baseline Spend)","week: 264<br />predicted_sales: 28.631505<br />scenario: Forecast (Baseline Spend)","week: 265<br />predicted_sales: 11.313622<br />scenario: Forecast (Baseline Spend)","week: 266<br />predicted_sales: 19.232684<br />scenario: Forecast (Baseline Spend)","week: 267<br />predicted_sales: 21.298734<br />scenario: Forecast (Baseline Spend)","week: 268<br />predicted_sales: 14.736029<br />scenario: Forecast (Baseline Spend)","week: 269<br />predicted_sales: 22.312361<br />scenario: Forecast (Baseline Spend)","week: 270<br />predicted_sales: 25.365353<br />scenario: Forecast (Baseline Spend)","week: 271<br />predicted_sales: 14.186752<br />scenario: Forecast (Baseline Spend)","week: 272<br />predicted_sales: 9.463055<br />scenario: Forecast (Baseline Spend)","week: 273<br />predicted_sales: 20.007923<br />scenario: Forecast (Baseline Spend)","week: 274<br />predicted_sales: 24.445440<br />scenario: Forecast (Baseline Spend)","week: 275<br />predicted_sales: 11.067832<br />scenario: Forecast (Baseline Spend)","week: 276<br />predicted_sales: 15.097535<br />scenario: Forecast (Baseline Spend)","week: 277<br />predicted_sales: 16.058204<br />scenario: Forecast (Baseline Spend)","week: 278<br />predicted_sales: 14.227313<br />scenario: Forecast (Baseline Spend)","week: 279<br />predicted_sales: 19.474775<br />scenario: Forecast (Baseline Spend)","week: 280<br />predicted_sales: 14.217745<br />scenario: Forecast (Baseline Spend)","week: 281<br />predicted_sales: 11.863336<br />scenario: Forecast (Baseline Spend)","week: 282<br />predicted_sales: 24.026071<br />scenario: Forecast (Baseline Spend)","week: 283<br />predicted_sales: 13.957369<br />scenario: Forecast (Baseline Spend)","week: 284<br />predicted_sales: 14.911454<br />scenario: Forecast (Baseline Spend)","week: 285<br />predicted_sales: 14.987433<br />scenario: Forecast (Baseline Spend)","week: 286<br />predicted_sales: 17.005037<br />scenario: Forecast (Baseline Spend)","week: 287<br />predicted_sales: 25.671307<br />scenario: Forecast (Baseline Spend)","week: 288<br />predicted_sales: 18.669541<br />scenario: Forecast (Baseline Spend)","week: 289<br />predicted_sales: 19.277958<br />scenario: Forecast (Baseline Spend)","week: 290<br />predicted_sales: 18.303056<br />scenario: Forecast (Baseline Spend)","week: 291<br />predicted_sales: 21.131830<br />scenario: Forecast (Baseline Spend)","week: 292<br />predicted_sales: 17.127005<br />scenario: Forecast (Baseline Spend)","week: 293<br />predicted_sales: 18.063172<br />scenario: Forecast (Baseline Spend)","week: 294<br />predicted_sales: 10.545682<br />scenario: Forecast (Baseline Spend)","week: 295<br />predicted_sales: 15.203917<br />scenario: Forecast (Baseline Spend)","week: 296<br />predicted_sales: 24.192297<br />scenario: Forecast (Baseline Spend)","week: 297<br />predicted_sales: 26.907191<br />scenario: Forecast (Baseline Spend)","week: 298<br />predicted_sales: 16.054039<br />scenario: Forecast (Baseline Spend)","week: 299<br />predicted_sales: 13.180161<br />scenario: Forecast (Baseline Spend)","week: 300<br />predicted_sales: 7.862509<br />scenario: Forecast (Baseline Spend)"],"type":"scatter","mode":"lines","line":{"width":1.8897637795275593,"color":"rgba(70,130,180,1)","dash":"solid"},"hoveron":"points","name":"Forecast (Baseline Spend)","legendgroup":"Forecast (Baseline Spend)","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[200,200],"y":[1.315759351022729,31.946528505471207],"text":"xintercept: 200","type":"scatter","mode":"lines","line":{"width":1.8897637795275593,"color":"rgba(102,102,102,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":49.607305936073061,"r":7.3059360730593621,"b":46.027397260273986,"l":37.260273972602747},"font":{"color":"rgba(0,0,0,1)","family":"","size":14.611872146118724},"title":{"text":"Sales Forecast with Time-Varying Spend Plans (click to zoom)","font":{"color":"rgba(0,0,0,1)","family":"","size":17.534246575342465},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-13.950000000000001,314.94999999999999],"tickmode":"array","ticktext":["0","100","200","300"],"tickvals":[0,100,200,300],"categoryorder":"array","categoryarray":["0","100","200","300"],"nticks":null,"ticks":"","tickcolor":null,"ticklen":3.6529680365296811,"tickwidth":0,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":11.68949771689498},"tickangle":0,"showline":false,"linecolor":null,"linewidth":0,"showgrid":true,"gridcolor":"rgba(235,235,235,1)","gridwidth":0.66417600664176002,"zeroline":false,"anchor":"y","title":{"text":"Week","font":{"color":"rgba(0,0,0,1)","family":"","size":14.611872146118724}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[1.315759351022729,31.946528505471207],"tickmode":"array","ticktext":["10","20","30"],"tickvals":[10,20,30],"categoryorder":"array","categoryarray":["10","20","30"],"nticks":null,"ticks":"","tickcolor":null,"ticklen":3.6529680365296811,"tickwidth":0,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":11.68949771689498},"tickangle":0,"showline":false,"linecolor":null,"linewidth":0,"showgrid":true,"gridcolor":"rgba(235,235,235,1)","gridwidth":0.66417600664176002,"zeroline":false,"anchor":"x","title":{"text":"Predicted Sales","font":{"color":"rgba(0,0,0,1)","family":"","size":14.611872146118724}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","layer":"below","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":true,"legend":{"bgcolor":null,"bordercolor":null,"borderwidth":0,"font":{"color":"rgba(0,0,0,1)","family":"","size":11.68949771689498},"title":{"text":"Scenario","font":{"color":"rgba(0,0,0,1)","family":"","size":14.611872146118724}}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"909a4711af2a":{"x":{},"y":{},"colour":{},"type":"scatter"},"909a5a0312d9":{"xintercept":{}}},"cur_data":"909a4711af2a","visdat":{"909a4711af2a":["function (y) ","x"],"909a5a0312d9":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
279<pre><code>## [1] "Forecast sales with no Increase: $16623.31"</code></pre><pre><code>## [1] "Forecast sales with +50% Facebook spend: $16773.45"</code></pre><pre><code>## [1] "Return on Increase: $150.14"</code></pre><pre><code>## [1] "Cost of increased Facebook spend: $4520.3"</code></pre><p>So, this doesnât seem like a good ROI based on this simple simulation. A more realistic next step would be to include a capped budget and include the savings of reallocating, for example, all newspaper budget to Facebook and YouTube.</p><div id=references class="section level3"><h3>References</h3><p>Using R to Build a Simple Marketing Mix Model (MMM) and Make Predictions | Towards Data Science 280<a href=https://towardsdatascience.com/building-a-marketing-mix-model-in-r-3a7004d21239/ class=uri>https://towardsdatascience.com/building-a-marketing-mix-model-in-r-3a7004d21239/</a></p><p>Kassambara A (2019). <em>datarium: Data Bank for Statistical Analysis 281and Visualization</em>. R package version 0.1.0.999, 282<a href=https://github.com/kassambara/datarium class=uri>https://github.com/kassambara/datarium</a>.</p></div></div></div><div class=article-tags><a class="badge badge-light" href=/tag/r/>R</a></div><div class=share-box aria-hidden=true><ul class=share><li><a href="https://twitter.com/intent/tweet?url=https://ejhudson.netlify.app/project/mediamix-project/&text=Media%20Mix%20Modeling%20Demo" target=_blank rel=noopener class=share-btn-twitter><i class="fab fa-twitter"></i></a></li><li><a href="https://www.facebook.com/sharer.php?u=https://ejhudson.netlify.app/project/mediamix-project/&t=Media%20Mix%20Modeling%20Demo" target=_blank rel=noopener class=share-btn-facebook><i class="fab fa-facebook"></i></a></li><li><a href="mailto:?subject=Media%20Mix%20Modeling%20Demo&body=https://ejhudson.netlify.app/project/mediamix-project/" target=_blank rel=noopener class=share-btn-email><i class="fas fa-envelope"></i></a></li><li><a href="https://www.linkedin.com/shareArticle?url=https://ejhudson.netlify.app/project/mediamix-project/&title=Media%20Mix%20Modeling%20Demo" target=_blank rel=noopener class=share-btn-l
282inkedin><i class="fab fa-linkedin-in"></i></a></li><li><a href="whatsapp://send?text=Media%20Mix%20Modeling%20Demo%20https://ejhudson.netlify.app/project/mediamix-project/" target=_blank rel=noopener class=share-btn-whatsapp><i class="fab fa-whatsapp"></i></a></li></ul></div><div class="media author-card content-widget-hr"><a href=https://ejhudson.netlify.app><img class="avatar mr-3 avatar-circle" src=/author/emily-j.-hudson/avatar_hubb3e307997cdec075ccc12f9f4c80754_139917_270x270_fill_q75_lanczos_center.jpg alt="Emily J. Hudson"></a><div class=media-body><h5 class=card-title><a href=https://ejhudson.netlify.app>Emily J. Hudson</a></h5><h6 class=card-subtitle>evolutionary biologist and data enthusiast | she/they</h6><ul class=network-icon aria-hidden=true><li><a href=mailto:[email protected]><i class="fas fa-envelope"></i></a></li><li><a href=/><i class="fas fa-"></i></a></li><li><a href="https://scholar.google.com/citations?user=aeKQCqoAAAAJ&hl=en" target=_blank rel=noopener><i class="fas fa-graduation-cap"></i></a></li><li><a href=https://github.com/emhudson target=_blank rel=noopener><i class="fab fa-github"></i></a></li><li><a href=https://www.linkedin.com/in/ejhudson1/ target=_blank rel=noopener><i class="fab fa-linkedin"></i></a></li></ul></div></div><div class="article-widget content-widget-hr"><h3>Related</h3><ul><li><a href=/project/nash-sm4-project/>Nashville Autonomous Recording + BirdNET Project</a></li><li><a href=/project/landmap-project/>Endangered species critical habitat for sale</a></li><li><a href=/project/rangemap-project/>Sister species range maps</a></li><li><a href=/project/ggplot-test/>Songmeter Analysis</a></li></ul></div><div class="project-related-pages content-widget-hr"></div></div></article></div><div class=page-footer><div class=container><footer class=site-footer><p class=powered-by></p><p class=powered-by>Published with <a href="https://wowchemy.com/?utm_campaign=poweredby" target=_blank rel=noopener>Wowchemy</a> â the free, <a href=https://github.com/wowchemy/wowchemy-hugo-modules target=_blank rel=noopener>open source</a> website builder that empowers creators.</p></footer></div></div><div id=modal class="modal fade" role=dialog><div class=modal-dialog><div class=modal-content><div class=modal-header><h5 class=modal-title>Cite</h5><button type=button class=close data-dismiss=modal aria-label=Close> 283<span aria-hidden=true>×</span></button></div><div class=modal-body><pre><code class="tex hljs"></code></pre></div><div class=modal-footer><a class="btn btn-outline-primary my-1 js-copy-cite" href=# target=_blank><i class="fas fa-copy"></i>Copy</a> 284<a class="btn btn-outline-primary my-1 js-download-cite" href=# target=_blank><i class="fas fa-download"></i>Download</a><div id=modal-error></div></div></div></div></div>
284<script src=https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
284<script src=https://cdnjs.cloudflare.com/ajax/libs/instant.page/5.1.0/instantpage.min.js integrity="sha512-1+qUtKoh9XZW7j+6LhRMAyOrgSQKenQ4mluTR+cvxXjP1Z54RxZuzstR/H9kgPXQsVB8IW7DMDFUJpzLjvhGSQ==" crossorigin=anonymous></script>
284<script src=https://cdnjs.cloudflare.com/ajax/libs/jquery.imagesloaded/4.1.4/imagesloaded.pkgd.min.js integrity="sha256-lqvxZrPLtfffUl2G/e7szqSvPBILGbwmsGE1MKlOi0Q=" crossorigin=anonymous></script>
284<script src=https://cdnjs.cloudflare.com/ajax/libs/jquery.isotope/3.0.6/isotope.pkgd.min.js integrity="sha256-CBrpuqrMhXwcLLUd5tvQ4euBHCdh7wGlDfNz8vbu/iI=" crossorigin=anonymous></script>
284<script src=https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.2.0/highlight.min.js integrity="sha512-TDKKr+IvoqZnPzc3l35hdjpHD0m+b2EC2SrLEgKDRWpxf2rFCxemkgvJ5kfU48ip+Y+m2XVKyOCD85ybtlZDmw==" crossorigin=anonymous></script>
284<script src=https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.2.0/languages/r.min.js></script>
284<script src=https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.2.0/languages/python.min.js></script>
284<script src=https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.2.0/languages/latex.min.js></script>
284<script src=https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.min.js integrity="sha512-SeiQaaDh73yrb56sTW/RgVdi/mMqNeM2oBwubFHagc5BkixSpP1fvqF47mKzPGWYSSy4RwbBunrJBQ4Co8fRWA==" crossorigin=anonymous></script>
284<script id=search-hit-fuse-template type=text/x-template> 285 <div class="search-hit" id="summary-{{key}}"> 286 <div class="search-hit-content"> 287 <div class="search-hit-name"> 288 <a href="{{relpermalink}}">{{title}}</a> 289 <div class="article-metadata search-hit-type">{{type}}</div> 290 <p class="search-hit-description">{{snippet}}</p> 291 </div> 292 </div> 293 </div> 294 </script>
294<script src=https://cdnjs.cloudflare.com/ajax/libs/fuse.js/3.2.1/fuse.min.js integrity="sha256-VzgmKYmhsGNNN4Ph1kMW+BjoYJM2jV5i4IlFoeZA9XI=" crossorigin=anonymous></script>
294<script src=https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/jquery.mark.min.js integrity="sha256-4HLtjeVgH0eIB3aZ9mLYF6E8oU5chNdjU6p6rrXpl9U=" crossorigin=anonymous></script>
294<script src=/js/_vendor/bootstrap.bundle.min.f81d0a1705048649befc8b595e455a94.js></script>
294<script src=/en/js/wowchemy.min.e20609e6ad3f7fce339ee2e74f13682b.js></script>
294<script async defer src=https://buttons.github.io/buttons.js></script>
294</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.