# Lead/Lag Transformations

### Shifting Variables in Time

Lead/Lag transformations shift variables forward (lead) or backward (lag) in time, allowing you to model delayed or anticipated effects in your MMM.

***

### What Are Lags and Leads?

#### Lag (Backward Shift)

**Definition:** Use past values of a variable

**Example:**

```
Original TV_Spend:
Week 1: $10,000
Week 2: $12,000
Week 3: $8,000

TV_Spend_lag1 (1-week lag):
Week 1: (missing)
Week 2: $10,000  ← Last week's value
Week 3: $12,000  ← Last week's value
```

**Use Case:** Model delayed effects

***

#### Lead (Forward Shift)

**Definition:** Use future values of a variable

**Example:**

```
Original Sales:
Week 1: $150,000
Week 2: $148,000
Week 3: $152,000

Sales_lead1 (1-week lead):
Week 1: $148,000  ← Next week's value
Week 2: $152,000  ← Next week's value
Week 3: (missing)
```

**Use Case:** Model anticipatory behavior (rare in MMM)

***

### When to Use Lags

#### Delayed Marketing Effects

**Scenario:** Direct mail takes 2-3 weeks to generate responses

**Solution:**

```
Create: DirectMail_lag2
Model: Sales ~ DirectMail_lag2
```

**Interpretation:** Direct mail sent 2 weeks ago affects today's sales

***

#### Price Adjustments

**Scenario:** Price changes take time for consumers to notice

**Solution:**

```
Create: Price_lag1
Model: Sales ~ Price_lag1
```

***

#### Economic Indicators

**Scenario:** Macroeconomic factors affect business with delay

**Solution:**

```
Create: Unemployment_lag4  (monthly data)
Model: Sales ~ Unemployment_lag4
```

***

### When NOT to Use Lags

#### Don't Confuse with Adstock

**Lag ≠ Adstock:**

* **Lag:** Uses only the past value (single period)
* **Adstock:** Accumulates decaying effects across multiple periods

**Example:**

```
Lag: Only Week 2 spend affects Week 3
Adstock: Week 1, 2, 3... all affect Week 3 (with decay)
```

**For media channels, use Adstock, not Lag**

***

### Creating Lead/Lag Variables

#### In Variable Workshop

**Step 1:** Select base variable

**Step 2:** Choose "Lead/Lag Transformation"

**Step 3:** Configure:

* **Direction:** Lag (backward) or Lead (forward)
* **Periods:** Number of weeks/months to shift (1, 2, 3...)

**Step 4:** Preview transformation

**Step 5:** Create variable

***

#### Naming Convention

**Recommended format:**

```
{Variable}_lag{n}   for lags
{Variable}_lead{n}  for leads

Examples:
Price_lag1
DirectMail_lag3
Sales_lead1  (rare)
```

***

### Multiple Lags

#### Testing Different Lag Lengths

**Create multiple lags to test:**

```
TV_lag1
TV_lag2
TV_lag3
```

**Test in model:** Which lag has highest t-statistic?

**Use:** Most significant lag period

***

#### Distributed Lag Models (Advanced)

**Include multiple lags simultaneously:**

```
Sales ~ TV_lag0 + TV_lag1 + TV_lag2
```

**Captures:** Effect distributed across multiple periods

**Note:** Can cause multicollinearity - use cautiously

***

### Handling Missing Values

#### First Period Issue

**Problem:** Lag creates missing value for first observation

**Example:**

```
TV_lag1:
Week 1: (missing)  ← No prior week
Week 2: $10,000
Week 3: $12,000
```

**MixModeler Solution:** First period automatically filled with zero or excluded from analysis

***

### Best Practices

✅ **Use lags for non-media variables** (price, promotions, direct mail)

✅ **Test multiple lag lengths** (1, 2, 3 periods) to find optimal

✅ **Use adstock for media channels** (not lags)

✅ **Document lag choice rationale** (why 2 weeks, not 1 or 3?)

❌ **Don't over-lag** (rarely need more than 4-week lag)

***

### Summary

**Key Points:**

⏮️ **Lags shift backward** - use past values

⏭️ **Leads shift forward** - use future values (rare)

⏱️ **For delayed effects** - direct mail, price changes, economic factors

🎯 **Test multiple periods** - find optimal lag length

🚫 **Not for media channels** - use adstock instead for carryover

Simple but powerful transformation for modeling time-delayed relationships!
