{"id":3298,"date":"2026-05-14T12:14:35","date_gmt":"2026-05-14T16:14:35","guid":{"rendered":"https:\/\/ozer.gt\/log\/?p=3298"},"modified":"2026-05-14T12:42:06","modified_gmt":"2026-05-14T16:42:06","slug":"new-chapters-in-the-causal-book-rd-and-doubleml","status":"publish","type":"post","link":"https:\/\/ozer.gt\/log\/2026\/05\/14\/new-chapters-in-the-causal-book-rd-and-doubleml\/","title":{"rendered":"New chapters in the Causal Book: RD and DoubleML"},"content":{"rendered":"<div id='gallery-1' class='gallery galleryid-3298 gallery-columns-2 gallery-size-thumbnail'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/ozer.gt\/log\/2026\/05\/14\/new-chapters-in-the-causal-book-rd-and-doubleml\/oh-my-bandwidth-sensitivity\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/ozer.gt\/log\/wp-content\/uploads\/2026\/05\/oh-my-bandwidth-sensitivity-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/div><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/ozer.gt\/log\/2026\/05\/14\/new-chapters-in-the-causal-book-rd-and-doubleml\/screenshot-2026-05-14-112755\/'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/ozer.gt\/log\/wp-content\/uploads\/2026\/05\/Screenshot-2026-05-14-112755-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/div><\/figure>\n\t\t<\/div>\n\n<p>In OTA loyalty programs, customers typically earn &#8220;Platinum&#8221; status once their spending exceeds a threshold (e.g., Expedia&#8217;s One Key or Booking.com&#8217;s Genius). Platinum comes with perks to incentivize higher spend.<\/p>\n<p>Regression Discontinuity is an ideal framework to estimate the causal effect: Do customers actually spend more because of the Platinum status, and how much?<\/p>\n<p>In newly published chapters of <a href=\"https:\/\/causalbook.com\">the Causal Book<\/a>, we simulate data using the Synthetic Data Vault to estimate the incremental spend driven by Platinum status. While a na\u00efve comparison suggests a $2,100 increase in spend, the RD estimate via <em>rdrobust<\/em> yields $1,567 at the threshold, remarkably close to the ground truth of $1,500.<\/p>\n<p>We also explore bandwidth selection, highlighting the bias-variance tradeoff when choosing between MSE-optimal and CER-optimal bandwidths.<\/p>\n<p>Next is the role of <em>DoubleML<\/em>. In a clean, sharp RD design like this, <em>rdrobust<\/em> already uses a local polynomial fit around the threshold. But do we gain precision from flexible covariate adjustment? We find that <em>DoubleML<\/em> does worse (see <em>Oh my! DoubleML is worse for the RD design<\/em>). We then run a diagnostic to understand why.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In OTA loyalty programs, customers typically earn &#8220;Platinum&#8221; status once their spending exceeds a threshold (e.g., Expedia&#8217;s One Key or Booking.com&#8217;s Genius). Platinum comes with perks to incentivize higher spend. Regression Discontinuity is an ideal framework to estimate the causal effect: Do customers actually spend more because of the Platinum status, and how much? In [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"cybocfi_hide_featured_image":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-3298","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/ozer.gt\/log\/wp-json\/wp\/v2\/posts\/3298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ozer.gt\/log\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ozer.gt\/log\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ozer.gt\/log\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ozer.gt\/log\/wp-json\/wp\/v2\/comments?post=3298"}],"version-history":[{"count":9,"href":"https:\/\/ozer.gt\/log\/wp-json\/wp\/v2\/posts\/3298\/revisions"}],"predecessor-version":[{"id":3310,"href":"https:\/\/ozer.gt\/log\/wp-json\/wp\/v2\/posts\/3298\/revisions\/3310"}],"wp:attachment":[{"href":"https:\/\/ozer.gt\/log\/wp-json\/wp\/v2\/media?parent=3298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ozer.gt\/log\/wp-json\/wp\/v2\/categories?post=3298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ozer.gt\/log\/wp-json\/wp\/v2\/tags?post=3298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}