Set up our causal model.

n <- 1e2
U <- rnorm(n)
O <- as.numeric(cut(U, 5)) # other ways to generate ordinal variables

Tstar <- 0.75 * U + rlogis(n)
T <- 1*(Tstar > 0)
Ystar <- -0.75 * T + U + rlogis(n)
Y <- 1*(Ystar > 0)

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

Look at our Naive estimate

glm(Y ~ T + O, dat, family = binomial())
## 
## Call:  glm(formula = Y ~ T + O, family = binomial(), data = dat)
## 
## Coefficients:
## (Intercept)            T            O  
##     -2.1202      -0.4108       0.8288  
## 
## Degrees of Freedom: 99 Total (i.e. Null);  97 Residual
## Null Deviance:       138.3 
## Residual Deviance: 126.1     AIC: 132.1

Look at our bayesian bootstrapping method

library(ordinalconfounder)
print(estimate(dat, "binomial"))
## $what
##            [,1]
## 1   -2.30925754
## 2    0.01791351
## 3   -3.73027060
## 4   -1.00461215
## 5    0.79989027
## 6    2.03465301
## 7   -3.65028161
## 8   -0.93373371
## 9   -0.96169727
## 10   0.06363433
## 11  -2.28166849
## 12   1.76523290
## 13   3.26317811
## 14  -3.10056065
## 15  -0.42846523
## 16  -2.93333885
## 17  -2.26257898
## 18   0.10041404
## 19  -0.01867353
## 20  -1.47925400
## 21   0.33716795
## 22  -0.65344191
## 23  -2.21605908
## 24   1.53905815
## 25   3.38840068
## 26   0.24444649
## 27  -2.22225864
## 28   0.10094314
## 29  -1.51777081
## 30  -1.52682377
## 31   1.55662474
## 32  -0.71753593
## 33   0.05128253
## 34   1.65128001
## 35  -0.70454677
## 36  -0.13481575
## 37  -3.76750277
## 38  -0.47427305
## 39   0.14354999
## 40   1.68108947
## 41   0.04144657
## 42  -2.35532594
## 43  -0.01417697
## 44  -0.56783396
## 45  -0.25027792
## 46   3.21410529
## 47  -0.05690095
## 48   0.14634405
## 49  -0.05125560
## 50  -3.89469156
## 51   1.73281829
## 52  -0.55476168
## 53   0.02464755
## 54  -0.21122014
## 55  -0.56491529
## 56   0.17020207
## 57  -3.78992459
## 58   2.49274065
## 59   0.07316771
## 60  -0.88319049
## 61   0.92117390
## 62  -1.46732385
## 63   1.58865945
## 64   0.28175056
## 65  -2.19616329
## 66  -2.44441314
## 67   0.85083244
## 68  -0.87465174
## 69  -0.46054775
## 70  -3.65297207
## 71  -2.36116031
## 72   0.30538330
## 73   0.78916202
## 74   0.31961819
## 75   1.60504871
## 76  -0.18738421
## 77   0.18253588
## 78  -0.49862630
## 79   0.24165384
## 80   0.08562559
## 81   3.28550293
## 82   1.63207624
## 83   1.04832227
## 84  -0.69523720
## 85  -1.52991316
## 86   0.89754948
## 87  -3.78204328
## 88  -0.05897442
## 89  -0.17613918
## 90  -0.04940090
## 91   0.36342066
## 92   0.80248891
## 93   0.94688646
## 94  -0.89398571
## 95  -0.13309189
## 96   1.86304090
## 97  -0.52968585
## 98   0.81884186
## 99   1.59740928
## 100 -0.67784965