[R] BMA, logistic regression, odds ratio, model reduction etc

khosoda at med.kobe-u.ac.jp khosoda at med.kobe-u.ac.jp
Wed Apr 20 10:23:52 CEST 2011


Hi everybody,
I apologize for long mail in advance.

I have data of 104 patients, which consists of 15 explanatory variables
and one binary outcome (poor/good). The outcome consists of 25 poor
results and 79 good results. I tried to analyze the data with logistic
regression. However, the 15 variables and 25 events means events per
variable (EPV) is much less than 10 (rule of thumb). Therefore, I used R
package, "BMA" to perform logistic regression with BMA to avoid this
problem.

model 1 (full model):
x1, x2, x3, x4 are continuous variables and others are binary data.

> x16.bic.glm <- bic.glm(outcome ~ ., data=x16.df,
glm.family="binomial", OR20, strict=FALSE)
> summary(x16.bic.glm)
(The output below has been cut off at the right edge to save space)

  62  models were selected
 Best  5  models (cumulative posterior probability =  0.3606 ):

                         p!=0    EV         SD        model 1    model2
Intercept                100    -5.1348545  1.652424    -4.4688  -5.15
-5.1536
age                        3.3   0.0001634  0.007258      .
sex                        4.0
   .M                           -0.0243145  0.220314      .
side                      10.8
    .R                           0.0811227  0.301233      .
procedure                 46.9  -0.5356894  0.685148      .      -1.163
symptom                    3.8  -0.0099438  0.129690      .          .
stenosis                   3.4  -0.0003343  0.005254      .
x1                        3.7  -0.0061451  0.144084      .
x2                       100.0   3.1707661  0.892034     3.2221     3.11
x3                        51.3  -0.4577885  0.551466    -0.9154     .
HT                         4.6
  .positive                      0.0199299  0.161769      .          .
DM                         3.3
  .positive                     -0.0019986  0.105910      .          .
IHD                        3.5
   .positive                     0.0077626  0.122593      .          .
smoking                    9.1
       .positive                 0.0611779  0.258402      .          .
hyperlipidemia            16.0
              .positive          0.1784293  0.512058      .          .
x4                         8.2   0.0607398  0.267501      .          .


nVar                                                       2          2
         1          3          3
BIC                                                   -376.9082
-376.5588  -376.3094  -375.8468  -374.5582
post prob                                                0.104
0.087      0.077      0.061      0.032

[Question 1]
Is it O.K to calculate odds ratio and its 95% confidence interval from
"EV" (posterior distribution mean) and“SD”(posterior distribution
standard deviation)?
For example, 95%CI of EV of x2 can be calculated as;
> exp(3.1707661)
[1] 23.82573     -----> odds ratio
> exp(3.1707661+1.96*0.892034)
[1] 136.8866
> exp(3.1707661-1.96*0.892034)
[1] 4.146976
------------------> 95%CI (4.1 to 136.9)
Is this O.K.?

[Question 2]
Is it permissible to delete variables with small value of "p!=0" and
"EV", such as age (3.3% and 0.0001634) to reduce the number of
explanatory variables and reconstruct new model without those variables
for new session of BMA?

model 2 (reduced model):
I used R package, "pvclust", to reduce the model. The result suggested
x1, x2 and x4 belonged to the same cluster, so I picked up only x2.
Based on the subject knowledge, I made a simple unweighted sum, by
counting the number of clinical features. For 9 features (sex, side,
HT2, hyperlipidemia, DM, IHD, smoking, symptom, age), the sum ranges
from 0 to 9. This score was defined as ClinicalScore. Consequently, I
made up new data set (x6.df), which consists of 5 variables (stenosis,
x2, x3, procedure, and ClinicalScore) and one binary outcome
(poor/good). Then, for alternative BMA session...

> BMAx6.glm <- bic.glm(postopDWI_HI ~ ., data=x6.df,
glm.family="binomial", OR=20, strict=FALSE)
> summary(BMAx6.glm)
(The output below has been cut off at the right edge to save space)
Call:
bic.glm.formula(f = postopDWI_HI ~ ., data = x6.df, glm.family =
"binomial",     strict = FALSE, OR = 20)


  13  models were selected
 Best  5  models (cumulative posterior probability =  0.7626 ):

                p!=0    EV         SD       model 1    model 2
Intercept       100    -5.6918362  1.81220    -4.4688    -6.3166
stenosis          8.1  -0.0008417  0.00815      .          .
x2              100.0   3.0606165  0.87765     3.2221     3.1154
x3               46.5  -0.3998864  0.52688    -0.9154      .
procedure       49.3   0.5747013  0.70164      .         1.1631
ClinicalScore   27.1   0.0966633  0.19645      .          .


nVar                                             2          2          1
         3          3
BIC                                         -376.9082  -376.5588
-376.3094  -375.8468  -375.5025
post prob                                      0.208      0.175
0.154      0.122      0.103

[Question 3]
Am I doing it correctly or not?
I mean this kind of model reduction is permissible for BMA?

[Question 4]
I still have 5 variables, which violates the rule of thumb, "EPV > 10".
Is it permissible to delete "stenosis" variable because of small value
of "EV"? Or is it O.K. because this is BMA?

Sorry for long post.

I appreciate your help very much in advance.

--
KH



More information about the R-help mailing list