After exploring the data, we found that the main concern of missingness is about “fxtosurgwk” and outcome “chronicpain”.

Part 1: Missing patterns

We divide the data into two groups according to the missingness of outcome “chronic_pain” . Then we compare two groups in term of all other variables.

For continuous variables, we use two sample paired t-test, and for categorical variables, we use pearson chi square test. The following are the p-values of all other variables, under the null hypothesis that for every single variable, two groups have the same distribution.

Table 1

with missing outcome with observed outcome p.value
astreat exfix 13 (33.3%) 47 (32.4%) 0.789
astreat pinning 12 (30.8%) 38 (26.2%) .
astreat VLPS 14 (35.9%) 60 (41.4%) .
gender male 4 (10.3%) 18 (12.4%) 0.928
gender female 35 (89.7%) 127 (87.6%) .
rapa active 13 (33.3%) 69 (47.9%) 0.26
rapa underactive 21 (53.8%) 62 (43.1%) .
rapa sedentary 5 (12.8%) 13 (9%) .
osteoatrts_yes no 26 (68.4%) 92 (63.4%) 0.704
osteoatrts_yes yes 12 (31.6%) 53 (36.6%) .
smoke simple Yes 23 (60.5%) 64 (44.1%) 0.106
smoke simple No 15 (39.5%) 81 (55.9%) .
education simple < high school 6 (16.2%) 13 (9.2%) 0.354
education simple high 31 (83.8%) 128 (90.8%) .
income 10-30K 14 (41.2%) 31 (25.4%) 0.114
income >60K 11 (32.4%) 46 (37.7%) .
income 30-60K 9 (26.5%) 45 (36.9%) .
employ retired 18 (54.5%) 103 (71%) 0.104
employ fulltime 15 (45.5%) 42 (29%) .
inj_dom No 24 (70.6%) 78 (54.2%) 0.122
inj_dom Yes 10 (29.4%) 66 (45.8%) .
usfx Yes 10 (27.8%) 65 (46.8%) 0.063
usfx No 26 (72.2%) 74 (53.2%) .
ao simple A 20 (55.6%) 87 (63%) 0.529
ao simple C 16 (44.4%) 51 (37%) .
fxtosurgwk 1.3 (0.74) 1.2 (0.68) 0.402
age 66.7 (6.88) 68.9 (7.18) 0.08
nocomorb 3.7 (2.68) 3.3 (2.18) 0.391
b_radhi 7.9 (4.26) 8.4 (3.36) 0.527
b_radinc 15.8 (7.62) 16.1 (5.34) 0.812
b_vdtilt -13.1 (15.13) -14.5 (13.59) 0.609
b_ulnavar 1.5 (2.57) 2.6 (2.98) 0.035
b_PCS 33.2 (9.76) 34.3 (10.38) 0.535
b_MCS 47.6 (13.43) 50.2 (13.88) 0.297
b_painnorm 6.8 (15.91) 3.2 (10.94) 0.194
b_paindiff 63.2 (27.78) 60.8 (27.65) 0.628

Part 2: Covariates adjusted for missing probability — propensity score

Table 2: propensity score model

## glm(formula = miss_y ~ ., family = binomial(link = "logit"), 
##     data = D)
##                                       Estimate Std. Error p.value significance
## (Intercept)                             -10.78    1466.08   0.994             
## as.factor.dat.astreat.pinning            -0.49       0.89   0.583             
## as.factor.dat.astreat.VLPS               -1.30       1.02   0.201             
## as.factor.dat.gender.male                 0.23       1.19   0.849             
## as.factor.dat.rapa.sedentary              1.40       1.60   0.381             
## as.factor.dat.rapa.underactive            0.87       0.79   0.275             
## as.factor.dat.osteoatrts_yes.yes         -1.34       1.12   0.233             
## as.factor.dat..smoke.simple..Yes          0.71       0.83   0.395             
## as.factor.dat..education.simple..high    -4.86       1.81   0.007           **
## as.factor.dat.income.>60K                22.46    1466.07   0.988             
## as.factor.dat.income.10-30K              23.11    1466.07   0.987             
## as.factor.dat.income.30-60K              21.91    1466.07   0.988             
## as.factor.dat.employ.retired             -2.01       1.07   0.060            .
## as.factor.dat.inj_dom.Yes                -0.89       0.78   0.252             
## as.factor.dat.usfx.Yes                   -1.98       0.95   0.037            *
## as.factor.dat..ao.simple..C               1.45       0.81   0.073            .
## dat.fxtosurgwk                            0.83       0.56   0.140             
## dat.age                                  -0.13       0.10   0.185             
## dat.nocomorb                              0.01       0.18   0.972             
## dat.b_radhi                               0.05       0.17   0.776             
## dat.b_radinc                             -0.11       0.11   0.339             
## dat.b_vdtilt                             -0.03       0.03   0.317             
## dat.b_ulnavar                            -0.55       0.25   0.030            *
## dat.b_PCS                                 0.00       0.04   0.945             
## dat.b_MCS                                 0.00       0.03   0.885             
## dat.b_painnorm                            0.01       0.03   0.818             
## dat.b_paindiff                            0.02       0.02   0.340

Part 3: inverse probability weighted (IPW) logistic regression

We use inverse-propensity as every sample’s weight to fit a logistic regression.

Table 3: IPW Full model

## glm(formula = y0 ~ ., family = binomial(link = "logit"), data = D, 
##     weights = w)
##                                       Estimate Std. Error p.value significance
## (Intercept)                              -1.47       3.59   0.683             
## as.factor.dat.astreat.pinning             0.06       0.69   0.926             
## as.factor.dat.astreat.VLPS               -1.58       0.65   0.014            *
## as.factor.dat.gender.male                 1.36       0.88   0.123             
## as.factor.dat.rapa.sedentary             -1.27       0.95   0.182             
## as.factor.dat.rapa.underactive            0.12       0.50   0.817             
## as.factor.dat.osteoatrts_yes.yes          0.57       0.59   0.331             
## as.factor.dat..smoke.simple..Yes          0.69       0.50   0.167             
## as.factor.dat..education.simple..high    -0.80       1.05   0.445             
## as.factor.dat.income.>60K                 1.23       1.13   0.274             
## as.factor.dat.income.10-30K               0.79       1.10   0.474             
## as.factor.dat.income.30-60K              -0.12       1.04   0.910             
## as.factor.dat.employ.retired              0.46       0.56   0.415             
## as.factor.dat.inj_dom.Yes                -0.49       0.47   0.297             
## as.factor.dat.usfx.Yes                   -0.07       0.46   0.886             
## as.factor.dat..ao.simple..C               0.20       0.51   0.700             
## dat.fxtosurgwk                            1.28       0.39   0.001           **
## dat.age                                   0.01       0.04   0.751             
## dat.nocomorb                             -0.07       0.14   0.621             
## dat.b_radhi                              -0.04       0.12   0.720             
## dat.b_radinc                              0.06       0.07   0.427             
## dat.b_vdtilt                             -0.02       0.02   0.216             
## dat.b_ulnavar                             0.07       0.09   0.392             
## dat.b_PCS                                -0.01       0.03   0.800             
## dat.b_MCS                                -0.03       0.02   0.068            .
## dat.b_painnorm                           -0.01       0.02   0.765             
## dat.b_paindiff                            0.01       0.01   0.277

Table 4: IPW Model after feature selecting

## glm(formula = y0 ~ as.factor.dat.astreat. + as.factor.dat.gender. + 
##     as.factor.dat..smoke.simple.. + dat.fxtosurgwk + dat.b_vdtilt + 
##     dat.b_MCS + dat.b_paindiff, family = binomial(link = "logit"), 
##     data = D, weights = w)
##                                  Estimate Std. Error p.value significance
## (Intercept)                         -0.95       1.13   0.400             
## as.factor.dat.astreat.pinning        0.37       0.55   0.499             
## as.factor.dat.astreat.VLPS          -1.37       0.52   0.009           **
## as.factor.dat.gender.male            1.11       0.65   0.089            .
## as.factor.dat..smoke.simple..Yes     0.69       0.43   0.108             
## dat.fxtosurgwk                       1.02       0.33   0.002           **
## dat.b_vdtilt                        -0.02       0.02   0.137             
## dat.b_MCS                           -0.02       0.02   0.099            .
## dat.b_paindiff                       0.02       0.01   0.021            *