Set up our causal model.

n <- 1e2
U <- rnorm(n)
T <- 4 * U + rnorm(n)
Y <- 8 * T -5 * U + rnorm(n)
O <- as.numeric(cut(U, 5)) # other ways to generate ordinal variables

dat <- data.frame(cbind(U, T, Y, O))

Look at our Naive estimate

lm(Y ~ T + O, dat)
## 
## Call:
## lm(formula = Y ~ T + O, data = dat)
## 
## Coefficients:
## (Intercept)            T            O  
##       5.281        7.286       -1.813

Look at our bayesian bootstrapping method

library(ordinalconfounder)
print(estimate(dat, family = "continuous"))
## $what
##            1            2            3            4            5            6 
##  -5.90874831   0.99302817  -7.29296911  11.89366546   0.97543718  -3.77515588 
##            7            8            9           10           11           12 
##   3.44668144   6.68329047   5.19744460   0.63690225  10.56286909   1.48901970 
##           13           14           15           16           17           18 
##  -3.16161344 -15.83836262   7.45645610  -0.79947435  -0.56509021   6.38100172 
##           19           20           21           22           23           24 
##   6.66036448   4.58889799   5.75327595   7.45794469   0.14964064 -14.10257424 
##           25           26           27           28           29           30 
##   4.93957190   0.59715335  -0.79966339 -11.28158350  -5.03495842   1.72085466 
##           31           32           33           34           35           36 
##   8.78280117  -1.23694076   2.75336225  -2.14447227 -10.32363211  -5.81509202 
##           37           38           39           40           41           42 
##  -4.20334837  -1.04740493   6.64574876   5.53156181  -3.28293349   0.23082904 
##           43           44           45           46           47           48 
##   3.33573268   4.14364894  -6.84127908  -6.34492449   4.43456093   5.78468308 
##           49           50           51           52           53           54 
##  -2.27028508   4.23897038   2.73639927  -5.01251614   1.35983101  -8.85347413 
##           55           56           57           58           59           60 
##   7.36201956  12.40709863  -0.54686580  -8.04078711   3.03850334   1.74582112 
##           61           62           63           64           65           66 
##  16.63084619  -0.63784793   6.67394022   1.27231519  -6.36942640   3.81804717 
##           67           68           69           70           71           72 
## -13.35472609   7.55607378   0.64185259  15.14667003   5.27856228  -5.30777596 
##           73           74           75           76           77           78 
##   5.38178282  -6.60439660  -8.83843384   1.50405912  -3.05296309   2.73816341 
##           79           80           81           82           83           84 
##   1.74108283  -3.27191982  -6.24794196   0.49590239   8.34174561 -13.37840708 
##           85           86           87           88           89           90 
##   5.63147812   1.66459909   9.25112091  -2.53160451   1.42886494   0.04849067 
##           91           92           93           94           95           96 
##  -4.79713913   8.60778289   6.99238677   6.52556458  10.28347372   3.38401064 
##           97           98           99          100 
##  -6.64421442  -5.98610562  -7.64804041  -4.70059214