You’re an avid information scientist and experimenter. You understand that randomisation is the summit of Mount Proof Credibility, and also you additionally know that when you possibly can’t randomise, you resort to observational information and Causal Inference methods. At your disposal are numerous strategies for spinning up a management group — difference-in-differences, inverse propensity rating weighting, and others. With an assumption right here or there (some shakier than others), you estimate the causal impact and drive decision-making. However for those who thought it couldn’t get extra thrilling than “vanilla” causal inference, learn on.
Personally, I’ve typically discovered myself in no less than two situations the place “simply doing causal inference” wasn’t simple. The widespread denominator in these two situations? A lacking management group — at first look, that’s.
First, the cold-start situation: the corporate needs to interrupt into an uncharted alternative house. Usually there isn’t a experimental information to be taught from, nor has there been any change (learn: “exogenous shock”), from the enterprise or product aspect, to leverage within the extra widespread causal inference frameworks like difference-in-differences (and different cousins within the pre-post paradigm).
Second, the unfeasible randomisation situation: the organisation is completely intentional about testing an thought, however randomisation shouldn’t be possible—or not even wished. Even emulating a pure experiment could be constrained legally, technically, or commercially (particularly when it’s about pricing), or when interference bias arises within the market.
These conditions open up the house for a “completely different” sort of causal inference. Though the tactic we’ll give attention to right here shouldn’t be the one one fitted to the job, I’d love so that you can tag alongside on this deep dive into Regression Discontinuity Design (RDD).
On this publish, I’ll offer you a crisp view of how and why RDD works. Inevitably, it will contain a little bit of math — a nice sight for some — however I’ll do my greatest to maintain it accessible with traditional examples from the literature.
We’ll additionally see how RDD can sort out a thorny causal inference problem in e-commerce and on-line marketplaces: the influence of itemizing place on itemizing efficiency. On this sensible part we’ll cowl key modelling concerns that practitioners typically face: parametric versus non-parametric RDD, selecting the best bandwidth parameter, and extra. So, seize your self a cup of of espresso and let’s leap in!
Define
How and why RDD works
Regression Discontinuity Design exploits cutoffs — thresholds — to get better the impact of a remedy on an consequence. Extra exactly, it seems to be for a pointy change within the likelihood of remedy project on a ‘operating’ variable. If remedy project relies upon solely on the operating variable, and the cutoff is bigoted, i.e. exogenous, then we are able to deal with the items round it as randomly assigned. The distinction in outcomes simply above and beneath the cutoff offers us the causal impact.
For instance, a scholarship awarded solely to college students scoring above 90, creates a cutoff primarily based on check scores. That the cutoff is 90 is bigoted — it might have been 80 for that matter; the road had simply to be drawn someplace. Furthermore, scoring 91 vs. 89 makes the entire distinction as for the remedy: both you get it or not. However concerning functionality, the 2 teams of scholars that scored 91 and 89 should not actually completely different, are they? And those that scored 89.9 versus 90.1 — for those who insist?
Making the cutoff might come right down to randomness, when it’s only a bout a number of factors. Possibly the scholar drank an excessive amount of espresso proper earlier than the check — or too little. Possibly they bought unhealthy information the evening earlier than, have been thrown off by the climate, or anxiousness hit on the worst doable second. It’s this randomness that makes the cutoff so instrumental in RDD.
With out a cutoff, you don’t have an RDD — only a scatterplot and a dream. However, the cutoff by itself shouldn’t be geared up with all it takes to determine the causal impact. Why it really works hinges on one core identification assumption: continuity.
The continuity assumption, and parallel worlds
If the cutoff is the cornerstone of the method, then its significance comes solely from the continuity assumption. The thought is a straightforward, counterfactual one: had there been no remedy, then there would’ve been no impact.
To floor the thought of continuity, let’s leap straight right into a traditional instance from public well being: does authorized alcohol entry enhance mortality?
Think about two worlds the place everybody and all the pieces is identical. Aside from one factor: a regulation that units the minimal authorized ingesting age at 18 years (we’re in Europe, of us).
On the earth with the regulation (the factual world), we’d anticipate alcohol consumption to leap proper after age 18. Alcohol-related deaths ought to leap too, if there’s a hyperlink.
Now, take the counterfactual world the place there isn’t a such regulation; there needs to be no such leap. Alcohol consumption and mortality would probably comply with a {smooth} development throughout age teams.
Now, that’s a great factor for figuring out the causal impact; the absence of a leap in deaths within the counterfactual world is the obligatory situation to interpret a leap within the factual world because the influence of the regulation.
Put merely: if there isn’t a remedy, there shouldn’t be a leap in deaths. If there may be, then one thing apart from our remedy is inflicting it, and the RDD shouldn’t be legitimate.

The continuity assumption may be written within the potential outcomes framework as:
start{equation}
lim_{x to c^-} mathbb{E}[Y_i(0) mid X_i = x] = lim_{x to c^+} mathbb{E}[Y_i(0) mid X_i = x]
label{eq: continuity_po}
finish{equation}
The place (Y_i(0)) is the potential consequence, say, threat of loss of life of topic (/mathbb{i}) below no remedy.
Discover that the right-hand aspect is a amount of the counterfactual world; not one that may be noticed within the factual world, the place topics are handled in the event that they fall above the cutoff.
Sadly for us, we solely have entry to the factual world, so the idea can’t be examined instantly. However, fortunately, we are able to proxy it. We’ll see placebo teams obtain this later within the publish. However first, we begin by figuring out what can break the idea:
- Confounders: one thing apart from the remedy occurs on the cutoff that additionally impacts the end result. As an example, adolescents resorting to alcohol to alleviate the crushing stress of being an grownup now — one thing that has nothing to do with the regulation on the minimal age to eat alcohol (within the no-law world), however that does confound the impact we’re after, occurring on the similar age — the cutoff, that’s.
- Manipulating the operating variable:
When items can affect their place with regard to the cutoff, it might be that items who did so are inherently completely different from those that didn’t. Therefore, cutoff manipulation may end up in choice bias: a type of confounding. Particularly if remedy project is binding, topics might attempt their greatest to get one model of the remedy over the opposite.
Hopefully, it’s clear what constitutes a RDD: the operating variable, the cutoff, and most significantly, affordable grounds to defend that continuity holds. With that, you’ve gotten your self a neat and efficient causal inference design for questions that may’t be answered by an A/B check, nor by a number of the extra widespread causal inference methods like diff-in-diff, nor with stratification.
Within the subsequent part, we proceed shaping our understanding of how RDD works; how does RDD “management” confounding relationships? What precisely does it estimate? Can we not simply management for the operating variable too? These are questions that we sort out subsequent.
RDD and devices
In case you are already conversant in instrumental variables (IV), you may even see the similarities: each RDD and IV leverage an exogenous variable that doesn’t trigger the end result instantly, however does affect the remedy project, which in flip might affect the end result. In IV it is a third variable Z; in RDD it’s the operating variable that serves as an instrument.
Wait. A 3rd variable; possibly. However an exogenous one? That’s much less clear.
In our instance of alcohol consumption, it’s not laborious to think about that age — the operating variable — is a confounder. As age will increase, so may tolerance for alcohol, and with it the extent of consumption. That’s a stretch, possibly, however not implausible.
Since remedy (authorized minimal age) is dependent upon age — solely items above 18 are handled — handled and untreated items are inherently completely different. If age additionally influences the end result, by a mechanism just like the one sketched above, we bought ourselves an apex confounder.
Nonetheless, the operating variable performs a key position. To know why, we have to have a look at how RDD and devices leverage the frontdoor criterion to determine causal results.
Backdoor vs. frontdoor
Maybe nearly instinctively, one might reply with controlling for the operating variable; that’s what stratification taught us. The operating variable is confounder, so we embody it in our regression, and shut the backdoor. However doing so would trigger some hassle.
Bear in mind, remedy project is dependent upon the operating variable so that everybody above the cutoff is handled with all certainty, and actually not beneath it. So, if we management for the operating variable, we run into two very associated issues:
- Violation of the Positivity assumption: this assumption says that handled items ought to have a non-zero likelihood to obtain the other remedy, and vice versa. Intuitively, conditioning on the operating variable is like saying: “Let’s estimate the impact of being above the minimal age for alcohol consumption, whereas holding age mounted at 14.” That doesn’t make sense. At any given worth of operating variable, remedy is both at all times 1 or at all times 0. So, there’s no variation in remedy conditional on the operating variable to assist such a query.
- Good collinearity on the cutoff: in estimating the remedy impact, the mannequin has no strategy to separate the impact of crossing the cutoff from the impact of being at a specific worth of X. The consequence? No estimate, or a forcefully dropped variable from the mannequin design matrix. Singular design matrix, doesn’t have full rank, these ought to sound acquainted to most practitioners.
So no — conditioning on the operating variable doesn’t make the operating variable the exogenous instrument that we’re after. As a substitute, the operating variable turns into exogenous by pushing it to the restrict—fairly actually. There the place the operating variable approaches the cutoff from both aspect, the items are the identical with respect to the operating variable. But, falling simply above or beneath makes the distinction as for getting handled or not. This makes the operating variable a sound instrument, if remedy project is the one factor that occurs on the cutoff. Judea Pearl refers to devices as assembly the front-door criterion.

LATE, not ATE
So, in essence, we’re controlling for the operating variable — however solely close to the cutoff. That’s why RDD identifies the native common remedy impact (LATE), a particular flavour of the common remedy impact (ATE). The LATE seems to be like:
$$delta_{SRD}=Ebig[Y^1_i – Y_i^0mid X_i=c_0]$$
The native bit refers back to the partial scope of the inhabitants we’re estimating the ATE for, which is the subpopulation across the cutoff. The truth is, the additional away the information level is from the cutoff, the extra the operating variable acts as a confounder, working towards the RDD as a substitute of in its favour.
Again to the context of the minimal age for authorized alcohol consumption instance. Adolescents who’re 17 years and 11 months outdated are actually not so completely different from these which might be 18 years and 1 month outdated, on common. If something, a month or two distinction in age shouldn’t be going to be what units them aside. Isn’t that the essence of conditioning on, or holding a variable fixed? What units them aside is that the latter group can eat alcohol legally for being above the cutoff, and never the previous.
This setup permits us to estimate the LATE for the items across the cutoff and with that, the impact of the minimal age coverage on alcohol-related deaths.
We’ve seen how the continuity assumption has to carry to make the cutoff an attention-grabbing level alongside the operating variable in figuring out the causal impact of a remedy on the end result. Specifically, by letting the leap within the consequence variable be solely attributable to the remedy. If continuity holds, the remedy is as-good-as-random close to the cutoff, permitting us to estimate the native common remedy impact.
Within the subsequent part, we’ll stroll by the sensible setup of a real-world RDD: we determine the important thing ideas; the operating variable and cutoff, remedy, consequence, covariates, and at last, we estimate the RDD after discussing some essential modelling selections, and finish the part with a placebo check.
RDD in Motion: Search Rating and itemizing efficiency Instance
In e-commerce and on-line marketplaces, the start line of the client expertise is trying to find an inventory. Consider the customer typing “Nikon F3 analogue digital camera” within the search bar. Upon finishing up this motion, algorithms frantically kind by the stock on the lookout for the very best matching listings to populate the search outcomes web page.
Time and a focus are two scarce assets. So, it’s within the curiosity of everybody concerned — the client, the vendor and the platform — to order probably the most outstanding positions on the web page for the matches with the best anticipated probability to turn into profitable trades.
Moreover, place results in shopper behaviour recommend that customers infer greater credibility and desirability from gadgets “ranked” on the high. Take into consideration high-tier merchandise being positioned at eye-height or above in supermarkets, and highlighted gadgets on an e-commerce platform, on the high of the homepage.
So, the query then turns into: how does positioning on the search outcomes web page affect an inventory’s probabilities to be bought?
Speculation:
If an inventory is ranked greater on the search outcomes web page, then it is going to have a better probability of being bought, as a result of higher-ranked listings get extra visibility and a focus from customers.
Intermezzo: enterprise or idea?
As with all good speculation, we want a little bit of idea to floor it. Good for us is that we aren’t looking for the remedy for most cancers. Our idea is about well-understood psychological phenomena and behavioural patterns, to place it overly refined.
Consider primacy impact, anchoring bias and the useful resource idea of consideration. These are effectively concepts in behavioural and cognitive psychology that again up our plan right here.
Kicking off the dialog with a product supervisor will probably be extra enjoyable this fashion. Personally, I additionally get excited when I’ve to brush up on some psychology.
However I’ve discovered by and thru {that a} idea is basically secondary to any initiative in my business (tech). Aside from a analysis workforce and undertaking, arguably. And it’s truthful to say it helps us keep on-purpose: what we’re doing is to deliver enterprise ahead, not mom science.
Figuring out the reply has actual enterprise worth. Product and industrial groups might use it to design new paid options that assist sellers get their listings on greater positions — a win for each the enterprise and the person. It might additionally make clear the worth of on-site actual property like banner positions and advert slots, serving to drive development in B2B promoting.
The query is about incrementality: would’ve itemizing (mathbb{j}) been bought, had it been ranked 1st on the outcomes web page, as a substitute of fifteenth. So, we wish to make a causal assertion. That’s laborious for no less than two causes:
- A/B testing comes with a value, and;
- there are confounders we have to cope with if we resort to observational strategies.
Let’s develop on that.
The price of A/B testing
One experiment design might randomise the fetched listings throughout the web page slots, unbiased of the itemizing relevance. Breaking the inherent hyperlink between relevance and place, we might be taught the impact of place on itemizing efficiency. It’s an attention-grabbing thought — however a expensive one.
Whereas it’s an affordable design for statistical inference, this setup is form of horrible for the person and enterprise. The person might need discovered what they wanted—possibly even made a purchase order. However as a substitute, possibly half of the stock they’d have seen was remotely a great match due to our experiment. This suboptimal person expertise probably hurts engagement in each the quick and long run — particularly for brand new customers who’re nonetheless to see what worth the platform holds for them.
Can we consider a strategy to mitigate this loss? Nonetheless dedicated to A/B testing, one might expose a smaller set of customers to the experiment. Whereas it is going to scale down the implications, it might additionally stand in the best way of reaching enough statistical energy by decreasing the pattern measurement. Furthermore, even small audiences may be chargeable for substantial income for some corporations nonetheless — these with hundreds of thousands of customers. So, slicing the uncovered viewers shouldn’t be a silver bullet both.
Naturally, the best way to go is to go away the platform and its customers undisturbed — and nonetheless discover a strategy to reply the query at hand. Causal inference is the best mindset for this, however the query is: how can we try this precisely?
Confounders
Listings don’t simply make it to the highest of the web page on a great day; it’s their high quality, relevance, and the sellers’ popularity that promote the rating of an inventory. Let’s name these three variables W.
What makes W tough is that it influences each the rating of the itemizing and likewise the likelihood that the itemizing will get clicked, a proxy for efficiency.
In different phrases, W impacts each our remedy (place) and consequence (click on), serving to itself with the standing of confounder.

Due to this fact, our job is to discover a design that’s match for goal; one which successfully controls the confounding impact of W.
You don’t select regression discontinuity — it chooses you
Not all causal inference designs are simply sitting round ready to be picked. Typically they present up if you least want them, and generally you get fortunate if you want them most — like at present.
It seems to be like we are able to use the web page cutoff to determine the causal influence of place on clicks-through charge.
Abrupt cutoff in search outcomes pagination
Let’s unpack the itemizing advice mechanism to see precisely how. Right here’s what occurs below the hood when a outcomes web page is generated for a search:
- Fetch listings matching the question
A rough set of listings is pulled from the stock, primarily based on filters like location, radius, and class, and so on. - Rating listings on private relevance
This step makes use of person historical past and itemizing high quality proxies to foretell what the person is most certainly to click on. - Rank listings by rating
Greater scores get greater ranks. Enterprise guidelines combine in advertisements and industrial content material with natural outcomes. - Populate pages
Listings are slotted by absolute relevance rating. A outcomes web page ends on the okth itemizing, so the ok+1th itemizing seems on the high of the subsequent web page. That is goes to be essential to our design. - Impressions and person interplay
Customers see the leads to order of relevance. If an inventory catches their eye, they could click on and consider extra particulars: one step nearer to the commerce.
Sensible setup and variables
So, what is precisely our design? Subsequent, we stroll by the reasoning and identification of the important thing substances of our design.
The operating variable
In our setup, the operating variable is the relevance rating (s_j) for itemizing j. This rating is a steady, advanced operate of each person and itemizing properties:
$$s_j = f(u_i, l_j)$$
The itemizing’s rank (r_j) is solely a rank transformation of (s_j), outlined as:
$$r_i = sum_{j=1}^{n} mathbf{1}(s_j leq s_i)$$
Virtually talking, because of this for analytic functions—comparable to becoming fashions, making native comparisons, or figuring out cutoff factors—realizing an inventory’s rank conveys practically the identical info as realizing its underlying relevance rating, and vice versa.
Particulars: Relevance rating vs. rank
The relevance rating (s_j) displays how effectively an inventory matches a particular person’s question, given parameters like location, value vary, and different filters. However this rating is relative—it solely has that means inside the context of the listings returned for that individual search.
In distinction, rank (or place) is absolute. It instantly determines an inventory’s visibility. I consider rank as a standardising transformation of (s_j). For instance, Itemizing A in search Z might need the best rating of 5.66, whereas Itemizing B in search Ok tops out at 0.99. These uncooked scores aren’t comparable throughout searches—however each listings are ranked first of their respective consequence units. That makes them equal by way of what actually issues right here: how seen they’re to customers.
The cutoff, and remedy
If an inventory simply misses the primary web page, it doesn’t fall to the underside of web page two — it’s artificially bumped to the highest. That’s a fortunate break. Usually, solely probably the most related listings seem on the high, however right here an inventory of merely average relevance results in a major slot —albeit on the second web page — purely as a result of arbitrary place of the web page break. Formally, the remedy project (D_j) goes like:
$$D_j = start{circumstances} 1 & textual content{if } r_j > 30 0 & textual content{in any other case} finish{circumstances}$$
(Observe on world rank: Rank 31 isn’t simply the primary itemizing on web page two; it’s nonetheless the thirty first itemizing general)
The power of this setup lies in what occurs close to the cutoff: an inventory ranked 30 could also be practically an identical in relevance to at least one ranked 31. A small scoring fluctuation — or a high-ranking outlier — can push an inventory over the brink, flipping its remedy standing. This native randomness is what makes the setup legitimate for RDD.
The end result: Impression-to-click
Lastly, we operationalise the end result of curiosity because the click-though charge from impressions to clicks. Do not forget that all listings are ‘impressed’ when when the web page is populated. The clicking is the binary indicator of the specified person behaviour.
In abstract, that is our setup:
- Final result: impression-to-click conversion
- Therapy: Touchdown on the primary vs. second web page
- Operating variable: itemizing rank; web page cutoff at 30
Subsequent we stroll by the right way to estimate the RDD.
Estimating RDD
On this part, we’ll estimate the causal parameter, interpret it, and join them again to our core speculation: how place impacts itemizing visibility.
Right here’s what we’ll cowl:
- Meet the information: Intro to the dataset
- Covariates: Why and the right way to embody them
- Modelling selections: parametric RDD vs. not. Selecting the polynomial diploma and bandwidth.
- Placebo-testing
- Density continuity testing
Meet the information
We’re working with impressions information from one in all Adevinta’s (ex-eBay Classifieds Group) marketplaces. It’s actual information, which makes the entire train really feel grounded. That mentioned, values and relationships are censored and scrambled the place obligatory to guard its strategic worth.
An vital word to how we interpret the RDD estimates and drive choices, is how the information was collected: solely these searches the place the person noticed each the primary and second web page have been included.
This fashion, we partial out the web page mounted impact if any, however the actuality is that many customers don’t make it to the second web page in any respect. So there’s a huge quantity hole. We focus on the repercussion within the evaluation recap.
The dataset consists of those variables:
- Clicked: 1 if the itemizing was clicked, 0 in any other case – binary
- Place: the rank of the itemizing – numeric
- D: remedy indicator, 1 if place > 30, 0 in any other case – binary
- Class: product class of the itemizing – nominal
- Natural: 1 if natural, 0 if from knowledgeable vendor – binary
- Boosted: 1 if was paid to be on the high, 0 in any other case – binary
click on | rel_position | D | class | natural | boosted |
1 | -3 | 0 | A | 1 | 0 |
1 | -14 | 0 | A | 1 | 0 |
0 | 3 | 1 | C | 1 | 0 |
0 | 10 | 1 | D | 0 | 0 |
1 | -1 | 0 | Ok | 1 | 1 |
Covariates: the right way to embody them to extend accuracy?
The operating variable, the cutoff, and the continuity assumption, offer you all it’s good to determine the causal impact. However together with covariates can sharpen the estimator by lowering variance — if finished proper. And, oh is it simple to do it unsuitable.
The simplest factor to “break” concerning the RDD design, is the continuity assumption. Concurrently, that’s the final factor we wish to break (I already rambled lengthy sufficient about this).
Due to this fact, the principle quest in including covariates is to it in such method that we cut back variance, whereas holding the continuity assumption intact. One strategy to formulate that, is to imagine continuity with out covariates and with covariates:
start{equation}
lim_{x to c^-} mathbb{E}[Y_i(0) mid X_i = x] = lim_{x to c^+} mathbb{E}[Y_i(0) mid X_i = x] textual content{(no covariates)}
finish{equation}
start{equation}
lim_{x to c^-} mathbb{E}[Y_i(0) mid X_i = x, Z_i] = lim_{x to c^+} mathbb{E}[Y_i(0) mid X_i = x, Z_i] textual content{(covariates)}
finish{equation}
The place (Z_i) is a vector of covariates, for topic i. Much less mathy, two issues ought to stay unchanged after including covariates:
- The practical type of the operating variable, and;
- The (absence of the) leap in remedy project on the cutoff
I didn’t discover out the above myself; Calonico, Cattaneo, Farrell, and Titiunik (2018) did. They developed a proper framework for incorporating covariates into RDD. I’ll depart the small print to the paper. For now, some modelling pointers can preserve us going:
- Mannequin covariates linearly in order that the remedy impact stays the identical with and with out covariates, because of a easy and {smooth} partial impact of the covariates;
- Preserve the mannequin phrases additive, in order that the remedy impact stays the LATE, and doesn’t turn into conditional on covariates (CATE); and to keep away from including a leap on the cutoff.
- The above implies that there be no interactions with the remedy indicator, nor with the operating variable. Doing any of those might break continuity and invalidate our RDD design.
Our goal mannequin might appear to be this:
start{equation}
Y_i = alpha + tau D_i + f(X_i – c) + beta^high Z_i + varepsilon_i
finish{equation}
For letting the covariates work together with the remedy indicator, the type of mannequin we wish to keep away from seems to be like this:
start{equation}
Y_i = alpha + tau D_i + f(X_i – c) + beta^high (Z_i cdot D_i) + varepsilon_i
finish{equation}
Now, let’s distinguish between two methods of virtually together with covariates:
- Direct inclusion: Add them on to the end result mannequin alongside the remedy and operating variable.
- Residualisation: First regress the end result on the covariates, then use the residuals within the RDD.
We’ll use residualisation in our case. It’s an efficient method cut back noise, produces cleaner visualisations, and protects the strategic worth of the information.
The snippet beneath defines the end result de-noising mannequin and computes the residualised consequence, click_res
. The thought is straightforward: as soon as we strip out the variance defined by the covariates, what stays is a much less noisy model of our consequence variable—no less than in idea. Much less noise means extra accuracy.
In follow, although, the residualisation barely moved the needle this time. We are able to see that by checking the change in commonplace deviation:
SD(click_res) / SD(click on) - 1
offers us about -3%, which is small virtually talking.
# denoising clicks
mod_outcome_model <- lm(click on ~ l1 + natural + boosted,
information = df_listing_level)
df_listing_level$click_res <- residuals(mod_outcome_model)
# the influence on variance is proscribed: ~ -3%
sd(df_listing_level$click_res) / sd(df_listing_level$click on) - 1
Though the denoising didn’t have a lot impact, we’re nonetheless in a great place. The unique consequence variable already has low conditional variance, and patterns across the cutoff are seen to the bare eye, as we are able to see beneath.

We transfer on to a couple different modelling choices that typically have a much bigger influence: selecting between parametric and non-parametric RDD, the polynomial diploma and the bandwidth parameter (h).
Modelling selections in RDD
Parametric vs non-parametric RDD
You may surprise why we even have to decide on between parametric and non-parametric RDD. The reply lies in how every method trades off bias and variance in estimating the remedy impact.
Selecting parametric RDD is basically selecting to cut back variance. It assumes a particular practical kind for the connection between the end result and the operating variable, (mathbb{E}[Y mid X]), and matches that mannequin throughout the whole dataset. The remedy impact is captured as a discrete leap in an in any other case steady operate. The everyday kind seems to be like this:
$$Y = beta_0 + beta_1 D + beta_2 X + beta_3 D cdot X + varepsilon$$
Non-parametric RDD, then again, is about lowering bias. It avoids sturdy assumptions concerning the world relationship between Y and X and as a substitute estimates the end result operate individually on both aspect of the cutoff. This flexibility permits the mannequin to extra precisely seize what’s occurring proper across the threshold. The non-parametric estimator is:
(tau = lim_{x downarrow c} mathbb{E}[Y mid X = x] – lim_{x uparrow c} mathbb{E}[Y mid X = x])
So, which do you have to select? Actually, it might really feel arbitrary. And that’s okay. That is the primary in a sequence of judgment calls that practitioners typically name the enjoyable a part of RDD. It’s the place modelling turns into as a lot an artwork as it’s a science.
I’ll stroll by how I method that selection. However first, let’s have a look at two key tuning parameters (particularly for non-parametric RDD) that can information our last resolution: the polynomial diploma and the bandwidth, h.
Polynomial diploma
The connection between consequence and the operating variable can take many kinds, and capturing its true form is essential for estimating the causal impact precisely. When you’re fortunate, all the pieces is linear and there’s no want to think about polynomials — When you’re a realist, then you definitely in all probability wish to find out how they will serve you within the course of.
In deciding on the best polynomial diploma, the objective is to cut back bias, with out inflating the variance of the estimator. So we wish to permit for flexibility, however we don’t wish to do it greater than obligatory. Take the examples within the picture beneath: with an consequence of low sufficient variance, the linear kind naturally invitations the eyes to estimate the end result on the cutoff. However the estimate turns into biased with solely a barely extra advanced kind, if we implement a linear form within the mannequin. Insisting on a linear kind in such a fancy case is like becoming your ft right into a glove: It form of works, but it surely’s very ugly.
As a substitute, we give the mannequin extra levels of freedom with a higher-degree polynomial, and estimate the anticipated (tau = lim_{x downarrow c} mathbb{E}[Y mid X = x] – lim_{x uparrow c} mathbb{E}[Y mid X = x]), with decrease bias.

The bandwidth parameter: h
Working with polynomials in the best way that’s described above doesn’t come freed from worries. Two issues are required and pose a problem on the similar time:
- we have to get the modelling proper for whole vary, and;
- the whole vary needs to be related for the duty at hand, which is estimating (tau = lim_{x downarrow c} mathbb{E}[Y mid X = x] – lim_{x uparrow c} mathbb{E}[Y mid X = x])
Solely then we cut back bias as supposed; If one in all these two shouldn’t be the case, we threat including extra of it.
The factor is that modelling the whole vary correctly is tougher than modelling a smaller vary, specifically if the shape is advanced. So, it’s simpler to make errors. Furthermore, the whole vary is nearly sure to not be related to estimate the causal impact — the “native” in LATE offers it away. How can we work round this?
Enter the bandwidth parameter, h. The bandwidth parameters aids the mannequin in leveraging information that’s nearer to the cutoff, dropping the world information thought, and bringing it again to the native scope RDD estimates the impact for. It does so by weighting the information by some operate (mathbb{w}(X)) in order that extra weight is given to entries close to the cutoff, and fewer to the entries additional away.
For instance, with h = 10, the mannequin considers the vary of complete size 20; 10 on either side of the cutoff.
The efficient weight is dependent upon the operate, (mathbb{w}). A bandwidth operate that has a hard-boundary behaviour is named a sq., or uniform, kernel. Consider it as a operate that offers weights 1 when the information is inside bandwidth, and 0 in any other case. The gaussian and triangular kernels are two different ceaselessly used kernels by practitioners. The important thing distinction is that these behave much less abruptly in weighting of the entries, in comparison with the sq. kernel. The picture beneath visualises the behaviour of the three kernels features.

Every little thing put collectively: non- vs. parametric RDD, polynomial diploma and bandwidth
To me, selecting the ultimate mannequin boils right down to the query: what’s the easiest mannequin that does the nice job? Certainly — the precept of Occam’s razor by no means goes out of style. In practise, this implies:
- Non- vs. Parametric: is the practical kind easy on either side of the cutoff? Then a single match, pooling information from either side will do. In any other case, nonparametric RDD provides the pliability that’s wanted to embrace two completely different dynamics on both aspect of the cutoff.
- Polynomial diploma: when the operate is advanced, I opt-in for greater levels to comply with the development higher flexibly.
- Bandwidth: if simply picked a excessive polynomial diploma, then I’ll let h be bigger too. In any other case, decrease values for h typically go effectively with decrease levels of polynomials in my expertise*, **.
* This brings us to the widely accepted advice within the literature: preserve the polynomial diploma decrease than 3. In most use circumstances 2 works effectively sufficient. Simply ensure you choose mindfully.
** Additionally, word that h matches particularly effectively within the non-parametric mentality; I see these two selections as co-dependent.
Again to the itemizing place situation. That is the ultimate mannequin to me:
# modelling the residuals of the end result (de-noised)
mod_rdd <- lm(click_res ~ D + ad_position_idx,
weight = triangular_kernel(x = ad_position_idx, c = 0, h = 10), # that is h
information = df_listing_level)
Decoding RDD outcomes
Let’s have a look at the mannequin output. The picture beneath reveals us the mannequin abstract. When you’re conversant in that, all of it will come right down to decoding the parameters.
The very first thing to take a look at is that handled listings have ~1% level greater likelihood of being clicked, than untreated listings. To place that in perspective, that’s a +20% change if the press charge of the management is 5%, and ~ +1% enhance if the management is 80%. With regards to sensible significance of this causal impact, these two uplifts are day and evening. I’ll depart this open-ended with a number of inquiries to take house: when would you and your workforce label this influence as a chance to leap on? What different information/solutions do we have to declare this observe worthy of following?
The rest of the parameters don’t actually add a lot to the interpretation of the causal impact. However let’s go over them shortly, nonetheless. The second estimate (x) is that of the slope beneath cutoff slope; the third one (D x (mathbb(x))) is the extra [negative] factors added to the earlier slope to replicate the slope above the cutoff; Lastly, the intercept is the common for the items proper beneath the cutoff. As a result of our consequence variable is residualised, the worth -0.012 is the demeaned consequence; it not is on the size of the unique consequence.

Completely different selections, completely different fashions
I’ve put this picture collectively to point out a set of different doable fashions, had we made completely different selections in bandwidth, polynomial diploma, and parametric-versus-not. Though hardly any of those fashions would have put the choice maker on a completely unsuitable path on this explicit dataset, every mannequin comes with its bias and variance properties. This does color our confidence of the estimate.

Placebo testing
In any causal inference methodology, the identification assumption is all the pieces. One factor is off, and the whole evaluation crumbles. We are able to faux all the pieces is alright, or we put our strategies to the check ourselves (imagine me, it’s higher if you break your personal evaluation earlier than it goes on the market)
Placebo testing is one strategy to corroborate the outcomes. Placebo testing checks the validity of outcomes through the use of a setup an identical to the true one, minus the precise remedy. If we nonetheless see an impact, it alerts a flawed design — continuity can’t be assumed, and causal results can’t be recognized.
Good for us, now we have a placebo group. The 30-listing web page lower solely exists on the desktop model of the platform. On cell, infinite scroll makes it one lengthy web page; no pagination, no web page leap. So the impact of “going to the subsequent web page” shouldn’t seem, and it doesn’t.
I don’t suppose we have to do a lot inference. The graph beneath already tells us the whole story: with out pages, going from the thirtieth place to the thirty first shouldn’t be completely different from going from every other place to the subsequent. Extra importantly, the operate is {smooth} on the cutoff. This discovering provides an excessive amount of credibility to our evaluation by showcasing that continuity holds on this placebo group.

The placebo check is without doubt one of the strongest checks in an RDD. It exams the continuity assumption nearly instantly, by treating the placebo group as a stand-in for the counterfactual.
After all, this depends on a brand new assumption: that the placebo group is legitimate; that it’s a sufficiently good counterfactual. So the check is highly effective provided that that assumption is extra credible than assuming continuity with out proof.
Which signifies that we must be open to the chance that there isn’t a correct placebo group. How can we stress-test our design then?
No-manipulation and the density continuity check
Fast recap. There are two associated sources of confounding and therefore to violating the continuity assumption:
- direct confounding from a 3rd variable on the cutoff, and
- manipulation of the operating variable.
The primary can’t be examined instantly (besides with a placebo check). The second can.
If items can shift their operating variable, they self-select into remedy. The comparability stops being truthful: we’re now evaluating manipulators to those that couldn’t or didn’t. That self-selection turns into a confounder, if it additionally impacts the end result.
As an example, college students who didn’t make the lower for a scholarship, however go on to successfully smooth-talk their establishment into letting them go with a better rating. That silver tongue may also assist them getting higher salaries, and act as confounder once we examine the impact of scholarships on future earnings.

So, what are the indicators that we’re in such situation? An unexpectedly excessive variety of items simply above the cutoff, and a dip slightly below (or vice versa). We are able to see this as one other continuity query, however this time by way of the density of the samples.
Whereas we are able to’t check the continuity of the potential outcomes instantly, we are able to check the continuity of the density of the operating variable on the cutoff. The McCrary check is the usual instrument for this, precisely testing:
(H_0: lim_{x to c^-} f(x) = lim_{x to c^+} f(x) quad textual content{(No manipulation)})
(H_A: lim_{x to c^-} f(x) neq lim_{x to c^+} f(x) quad textual content{(Manipulation)})
the place (f(x)) is the density operate of the operating variable. If (f(x)) jumps at x = c, it means that items have sorted themselves simply above or beneath the cutoff — violating the idea that the operating variable was not manipulable at that margin.
The internals of this check is one thing for a special publish, as a result of fortunately we are able to rely rdrobust::rddensity
to run this check, off-the-shelf.
require(rddensity)
density_check_obj <- rddensity(X = df_listing_level$ad_position_idx,
c = 0)
abstract(density_check_obj)
# for the plot beneath
rdplotdensity(density_check_obj, X = df_listing_level$ad_position_idx)

The check reveals marginal proof of a discontinuity within the density of the operating variable (T = 1.77, p = 0.077). Binomial counts are unbalanced throughout the cutoff, suggesting fewer observations slightly below the brink.
Normally, it is a purple flag as it might pose a thread to the continuity assumption. This time nonetheless, we all know that continuity truly holds (see placebo check).
Furthermore, rating is completed by the algorithm: sellers haven’t any means to govern the rank of their listings in any respect. That’s one thing we all know by design.
Therefore, a extra believable rationalization is that the discontinuity within the density is pushed by platform-side impression logging (not rating), or my very own filtering within the SQL question (which is elaborate, and lacking values on the filter variables should not unusual).
Inference
The outcomes will do that time round. However Calonico, Cattaneo, and Titiunik (2014) spotlight a number of points with OLS RDD estimates like ours. Particularly, about 1) the bias in estimating the anticipated consequence on the cutoff, that not is basically at the cutoff once we take samples additional away from it, and a couple of) the bandwidth-induced uncertainty that’s neglected of the mannequin (as h is handled as a hyperparameter, not a mannequin parameter).
Their strategies are carried out in rdrobust
, an R and Stata package deal. I like to recommend utilizing that software program in analyses which might be about driving real-life choices.
Evaluation recap
We checked out how an inventory’s spot within the search outcomes impacts how typically it will get clicked. By specializing in the cutoff between the primary and second web page, we discovered a transparent (although modest) causal impact: listings on the high of web page two bought extra clicks than these caught on the backside of web page one. A placebo check backed this up—on cell, the place there’s infinite scroll and no actual “pages,” the impact disappears. That offers us extra confidence within the consequence. Backside line: the place an inventory reveals up issues, and prioritising high positions might increase engagement and create new industrial potentialities.
However earlier than we run with it, a few vital caveats.
First, our result’s native—it solely tells us what occurs close to the page-two cutoff. We don’t know if the identical impact holds on the high of web page one, which in all probability alerts much more worth to customers. So this could be a lower-bound estimate.
Second, quantity issues. The primary web page will get much more eyeballs. So even when a high slot on web page two will get extra clicks per view, a decrease spot on web page one may nonetheless win general.
Conclusion
Regression Discontinuity Design shouldn’t be your on a regular basis causal inference methodology — it’s a nuanced method greatest saved for when the celebrities align, and randomisation isn’t doable. Just be sure you have a great grip on the design, and be thorough concerning the core assumptions: attempt to break them, after which attempt more durable. When you’ve gotten what you want, it’s an extremely satisfying design. I hope this studying serves you effectively the subsequent time you get a chance to use this methodology.
It’s nice seeing that you just bought this far into this publish. If you wish to learn extra, it’s doable; simply not right here. So, I compiled a small listing of assets for you:
Additionally try the reference part beneath for some deep-reads.
Completely happy to attach on LinkedIn, the place I focus on extra subjects just like the one right here. Additionally, be happy to bookmark my private web site that’s a lot cosier than right here.
All pictures on this publish are my very own. The dataset that I used is actual, and it’s not publicly obtainable. Furthermore, the values extracted from it are anonymised; modified or omitted, to keep away from revealing strategic insights concerning the firm.
References
Calonico, S., Cattaneo, M. D., Farrell, M. H., & Titiunik, R. (2018). Regression Discontinuity Designs Utilizing Covariates. Retrieved from http://arxiv.org/abs/1809.03904v1
Calonico, S., Cattaneo, M. D., & Titiunik, R. (2014). Sturdy nonparametric confidence intervals for regression-discontinuity designs. Econometrica, 82(6), 2295–2326. https://doi.org/10.3982/ECTA11757