Sophia’s Analysis

Author

Bonnie LaFleur

Description

This analysis uses logistic regression to evaluate the association between those NACC participants that began taking medication for cardiovascular disease (CVD) during the first five years of follow-up and either had normal cognition at baseline and were diagnosed with Mild Cognitive Impairment (MCI) or remained with no diagnosis of MCI or dementia. We examine two medications, beta-blockers and statins, and define seven ordinal categories (0-7) for the visit of their first captured prescription: never prescribed; baseline; year 1 follow-up; year 2 follow-up; year 3 follow-up; year 4 follow-up; and year 5 follow-up. We examine each medication as separate models, and include any prior history of CVD prior to enrollment.

Data

knitr::opts_chunk$set(echo=TRUE, warning=FALSE, message=FALSE)

First we need to find the first time a medication was prescribed (if it was).

library(dplyr)

cvd.med <-read.csv("cvd_med_long_dat.csv")

beta.blockers <-read.csv("beta_nacc_dat.csv")
statin <- read.csv("statin_nacc_dat.csv")
statin <-rename(statin, statin_start='beta_start')

Methods

Regression models are of the form:

\(logit(y) = \beta_0 + \beta_1(start) +\beta_2(history) + \beta_3(history*start) +\epsilon\)

The \(\beta_3(group*start)\) is called an “interaction” and it tests whether there is a difference between the start of treatment and the group (MCI/No MCI); \(y\) is measuring the probability of never transitioning to MCI. The coefficients from this type of modeling are on the log odds scale, positive values mean that the probability is greater in the no MCI group.

The hypothesis is

\(H_0: \beta_3= 0\)

\(H_a: \beta_3 \ne 0\)

I am viewing this hypothesis as a test for whether or not there is an association between MCI/No MCI and when a participant started a drug for CVD, and whether this relationship is moderated by prior history of CVD.

Results

Exploratory Tables

Most prescriptions were in the first year of follow-up, in both the MCI and no MCI groups. There were few prescriptions for beta-blockers in those without a history of CVD, with 62% of MCI and 71% of no MCI (47% and 59%, respectively, in those with no prior history of CVD). Over half of participants did receive a prescription for a statin medication over the 5-year follow-up period, 60% of those that transitioned to MCI and 55% of those that did not transition; most of these prescriptions were given in the first year of follow-up (41% and 37%, respectively). Interestingly, in all cases, prescription rates were higher in those without a history of CVD.

library(knitr)

### How many MCI versus Non MCI had a history of CVD?
prop.table(xtabs( ~ cvd + group, data=beta.blockers), margin=2)
           group
cvd               MCI Normal cognition
  CVD Hx    0.3563941        0.2482370
  No CVD Hx 0.6436059        0.7517630
### Beta-Blockers

with.hx <-xtabs(~ group +beta_start + cvd, data=beta.blockers)
prop.table(with.hx, margin=1)
, , cvd = CVD Hx

                  beta_start
group                        0           1           2           3           4
  MCI              0.150943396 0.140461216 0.018867925 0.014675052 0.016771488
  Normal cognition 0.118476728 0.087447109 0.011753644 0.007992478 0.009402915
                  beta_start
group                        5           6
  MCI              0.008385744 0.006289308
  Normal cognition 0.006111895 0.007052186

, , cvd = No CVD Hx

                  beta_start
group                        0           1           2           3           4
  MCI              0.467505241 0.088050314 0.027253669 0.012578616 0.016771488
  Normal cognition 0.586741890 0.083685943 0.016925247 0.014574518 0.018805830
                  beta_start
group                        5           6
  MCI              0.018867925 0.012578616
  Normal cognition 0.016455101 0.014574518
### This table averages across CVD hisory

without.hx <-xtabs(~ group +beta_start, data=beta.blockers)
prop.table(without.hx, margin=1)
                  beta_start
group                       0          1          2          3          4
  MCI              0.61844864 0.22851153 0.04612159 0.02725367 0.03354298
  Normal cognition 0.70521862 0.17113305 0.02867889 0.02256700 0.02820874
                  beta_start
group                       5          6
  MCI              0.02725367 0.01886792
  Normal cognition 0.02256700 0.02162670
### STATINS
with.hx.statin <-xtabs(~ group +statin_start + cvd, data=statin)
prop.table(with.hx.statin, margin=1)
, , cvd = CVD Hx

                  statin_start
group                        0           1           2           3           4
  MCI              0.092243187 0.190775681 0.035639413 0.018867925 0.012578616
  Normal cognition 0.065350259 0.136342266 0.017865538 0.012693935 0.007522332
                  statin_start
group                        5           6
  MCI              0.002096436 0.004192872
  Normal cognition 0.003291020 0.005171603

, , cvd = No CVD Hx

                  statin_start
group                        0           1           2           3           4
  MCI              0.306079665 0.220125786 0.041928721 0.012578616 0.033542977
  Normal cognition 0.387400094 0.236953456 0.040432534 0.034320639 0.020216267
                  statin_start
group                        5           6
  MCI              0.018867925 0.010482180
  Normal cognition 0.019275976 0.013164081
###  This table averages across CVD history

without.hx.statin <-xtabs(~ group +statin_start, data=statin)
prop.table(without.hx.statin, margin=1)
                  statin_start
group                       0          1          2          3          4
  MCI              0.39832285 0.41090147 0.07756813 0.03144654 0.04612159
  Normal cognition 0.45275035 0.37329572 0.05829807 0.04701457 0.02773860
                  statin_start
group                       5          6
  MCI              0.02096436 0.01467505
  Normal cognition 0.02256700 0.01833568

Logistic Regression Analysis of Beta-Blockers

The analysis of variance shows that history of CVD doesn’t moderate the association between starting beta-blockers (p=0.9471). We remove the interaction and test the history of CVD and time of starting a beta-blocker prescription, and the only variable that is statistically significant is history of CVD (higher CVD history in MCI group, p=0.0002).

library(rms)
library(lsmeans)


beta.blockers$started_betablockers <- factor(beta.blockers$beta_start)

dd <- datadist(beta.blockers); options(datadist='dd')

Full.Beta <- lrm(group ~ cvd +started_betablockers + cvd*started_betablockers, data=beta.blockers)

Reduced.Beta <- lrm(group ~ cvd +started_betablockers, data=beta.blockers, x=TRUE, y=TRUE)

anova(Full.Beta)
                Wald Statistics          Response: group 

 Factor                                                    Chi-Square d.f.
 cvd  (Factor+Higher Order Factors)                        16.09       7  
  All Interactions                                          1.67       6  
 started_betablockers  (Factor+Higher Order Factors)        9.48      12  
  All Interactions                                          1.67       6  
 cvd * started_betablockers  (Factor+Higher Order Factors)  1.67       6  
 TOTAL                                                     32.16      13  
 P     
 0.0243
 0.9471
 0.6613
 0.9471
 0.9471
 0.0023
anova(Reduced.Beta)
                Wald Statistics          Response: group 

 Factor               Chi-Square d.f. P     
 cvd                  14.32      1    0.0002
 started_betablockers  7.60      6    0.2693
 TOTAL                30.48      7    0.0001
Reduced.Beta
Logistic Regression Model
 
 lrm(formula = group ~ cvd + started_betablockers, data = beta.blockers, 
     x = TRUE, y = TRUE)
 
                           Model Likelihood       Discrimination    Rank Discrim.    
                                 Ratio Test              Indexes          Indexes    
     Obs          2604    LR chi2     29.59       R2       0.018    C       0.571    
      MCI          477    d.f.            7      R2(7,2604)0.009    Dxy     0.143    
  Normal cognition2127    Pr(> chi2) 0.0001    R2(7,1168.9)0.019    gamma   0.208    
     max |deriv| 8e-13                            Brier    0.148    tau-a   0.043    
 
                        Coef    S.E.   Wald Z Pr(>|Z|)
 Intercept               1.2809 0.1093 11.72  <0.0001 
 cvd=No CVD Hx           0.4330 0.1144  3.78  0.0002  
 started_betablockers=1 -0.2639 0.1337 -1.97  0.0484  
 started_betablockers=2 -0.5061 0.2592 -1.95  0.0509  
 started_betablockers=3 -0.2245 0.3214 -0.70  0.4849  
 started_betablockers=4 -0.2200 0.2905 -0.76  0.4489  
 started_betablockers=5 -0.2762 0.3204 -0.86  0.3887  
 started_betablockers=6  0.0733 0.3716  0.20  0.8437  
 
plot(Predict(Reduced.Beta, started_betablockers))

Logistic Regression Analysis of Statins

Similar to the beta-blocker analysis the shows that history of CVD doesn’t moderate the association between starting beta-blockers (p=0.5649). We remove the interaction and test the history of CVD and time of starting a beta-blocker prescription, and the only variable that is statistically significant is history of CVD (higher CVD history in MCI group, < 0.0001).

statin$started_statins <- factor(statin$statin_start)
statin$y <- ifelse(statin$group=="MCI", 1, 0)

dd <- datadist(statin); options(datadist='dd')

 Full.Statin <- lrm(group ~ cvd + started_statins  + cvd*started_statins , data=statin)


Reduced.Statin <- lrm(group ~ cvd + started_statins , data=statin, x=TRUE, y=TRUE)
anova(Reduced.Statin)
                Wald Statistics          Response: group 

 Factor          Chi-Square d.f. P     
 cvd             19.32      1    <.0001
 started_statins  9.52      6    0.1462
 TOTAL           32.23      7    <.0001
anova(Full.Statin)
                Wald Statistics          Response: group 

 Factor                                               Chi-Square d.f. P     
 cvd  (Factor+Higher Order Factors)                   24.36       7   0.0010
  All Interactions                                     4.84       6   0.5649
 started_statins  (Factor+Higher Order Factors)       13.73      12   0.3185
  All Interactions                                     4.84       6   0.5649
 cvd * started_statins  (Factor+Higher Order Factors)  4.84       6   0.5649
 TOTAL                                                35.70      13   0.0007
anova(Reduced.Statin)
                Wald Statistics          Response: group 

 Factor          Chi-Square d.f. P     
 cvd             19.32      1    <.0001
 started_statins  9.52      6    0.1462
 TOTAL           32.23      7    <.0001
Reduced.Statin
Logistic Regression Model
 
 lrm(formula = group ~ cvd + started_statins, data = statin, x = TRUE, 
     y = TRUE)
 
                            Model Likelihood       Discrimination    Rank Discrim.    
                                  Ratio Test              Indexes          Indexes    
     Obs          2604    LR chi2      31.62       R2       0.020    C       0.578    
      MCI          477    d.f.             7      R2(7,2604)0.009    Dxy     0.155    
  Normal cognition2127    Pr(> chi2) <0.0001    R2(7,1168.9)0.021    gamma   0.196    
     max |deriv| 9e-12                             Brier    0.148    tau-a   0.047    
 
                   Coef    S.E.   Wald Z Pr(>|Z|)
 Intercept          1.2208 0.1194 10.23  <0.0001 
 cvd=No CVD Hx      0.4912 0.1118  4.39  <0.0001 
 started_statins=1 -0.1067 0.1164 -0.92  0.3591  
 started_statins=2 -0.3203 0.2056 -1.56  0.1193  
 started_statins=3  0.3585 0.2898  1.24  0.2160  
 started_statins=4 -0.5816 0.2637 -2.21  0.0274  
 started_statins=5 -0.0661 0.3575 -0.18  0.8533  
 started_statins=6  0.1618 0.4199  0.39  0.7000  
 
plot(Predict(Reduced.Statin, started_statins ))

Multiple Regression Analysis

For these analyses we include variables from the descriptive analysis (Table 1) and show that history of CVD, BMI, sex, and age are all statistically associated with transition to MCI in those with a prescription for either beta-blockers or statins (those without a prescription were removed from the analyses). History of CVD disease, and increased BMI were associated with higher probability of MCI transition, as was being female. Those that transitioned were younger than those that did not transition to MCI, adjusting for all the other demographic variables.

only.starters.bb <- subset(beta.blockers, started_betablockers != "0")
only.starters.statin <- subset(statin, started_statins != "0")

multiple.betablocker <- lrm(group ~ cvd + SEX + NACCBMI + NACCAGE, data=only.starters.bb, x=TRUE, y=TRUE)
multiple.betablocker
Frequencies of Missing Values Due to Each Variable
  group     cvd     SEX NACCBMI NACCAGE 
      0       0       0      37      22 

Logistic Regression Model
 
 lrm(formula = group ~ cvd + SEX + NACCBMI + NACCAGE, data = only.starters.bb, 
     x = TRUE, y = TRUE)
 
 
                           Model Likelihood      Discrimination    Rank Discrim.    
                                 Ratio Test             Indexes          Indexes    
    Obs           753    LR chi2      31.11      R2       0.063    C       0.642    
     MCI          159    d.f.             4      R2(4,753)0.035    Dxy     0.284    
  Normal cognition594    Pr(> chi2) <0.0001    R2(4,376.3)0.070    gamma   0.284    
    max |deriv| 8e-08                            Brier    0.160    tau-a   0.095    
 
               Coef    S.E.   Wald Z Pr(>|Z|)
 Intercept      2.1623 1.1927  1.81  0.0698  
 cvd=No CVD Hx  0.4113 0.1863  2.21  0.0272  
 SEX=Male      -0.6630 0.1848 -3.59  0.0003  
 NACCBMI        0.0426 0.0203  2.10  0.0358  
 NACCAGE       -0.0253 0.0120 -2.11  0.0345  
 
plot(anova(multiple.betablocker), main="Beta-Blockers")

multiple.statin <- lrm(group ~ cvd + SEX + NACCBMI + NACCAGE, data=only.starters.statin, x=TRUE, y=TRUE)
multiple.statin
Frequencies of Missing Values Due to Each Variable
  group     cvd     SEX NACCBMI NACCAGE 
      0       0       0      53      10 

Logistic Regression Model
 
 lrm(formula = group ~ cvd + SEX + NACCBMI + NACCAGE, data = only.starters.statin, 
     x = TRUE, y = TRUE)
 
 
                            Model Likelihood      Discrimination    Rank Discrim.    
                                  Ratio Test             Indexes          Indexes    
     Obs          1389    LR chi2      67.19      R2       0.075    C       0.658    
      MCI          269    d.f.             4     R2(4,1389)0.044    Dxy     0.317    
  Normal cognition1120    Pr(> chi2) <0.0001    R2(4,650.7)0.093    gamma   0.317    
     max |deriv| 1e-06                            Brier    0.148    tau-a   0.099    
 
               Coef    S.E.   Wald Z Pr(>|Z|)
 Intercept      3.9113 0.9123  4.29  <0.0001 
 cvd=No CVD Hx  0.3031 0.1455  2.08  0.0373  
 SEX=Male      -0.5230 0.1412 -3.70  0.0002  
 NACCBMI        0.0418 0.0158  2.65  0.0080  
 NACCAGE       -0.0481 0.0094 -5.14  <0.0001 
 
plot(anova(multiple.statin), main="Statins")