Download libraries

library(survminer)
library(survival)
library(readxl)
library(mediation)

Load Data

datawithmissings <- read_excel("data_for_analysis.xlsx")

-
/
                                                                                                                                             
tempdata <- mice(datawithmissings, m = 5, maxit = 50, meth = 'pmm', seed = 500, printFlag = FALSE)
Number of logged events: 2
data <- mice::complete(tempdata,1)
model.1 <- glm(early~ thrombolysis, data=data, family = "binomial") #the independent variable thrombolysis affects the outcome seizures
model.2 <- glm(nihss_high~ thrombolysis, data=data, family = "binomial") #the independent variable thrombolysis affects the mediator nihss
model.3 <- glm(early ~ nihss_high + thrombolysis, data=data, family = "binomial") #the independent variable thrombolysis and mediator nihss affect the outcome seizures
results <- mediate(model.2, model.3, treat='thrombolysis', mediator='nihss_high', boot=TRUE, sims=500)
Running nonparametric bootstrap
summary(results) #to proof the there's mediation, ACME, which is the magnitud of inderect effect (mediator) must be significant. No sig. means no mediaton

Causal Mediation Analysis 

Nonparametric Bootstrap Confidence Intervals with the Percentile Method

                         Estimate 95% CI Lower 95% CI Upper p-value    
ACME (control)            0.00964      0.00190         0.02   0.004 ** 
ACME (treated)            0.01379      0.00369         0.02   0.004 ** 
ADE (control)             0.02073      0.00297         0.04   0.020 *  
ADE (treated)             0.02488      0.00384         0.05   0.020 *  
Total Effect              0.03453      0.01527         0.05  <2e-16 ***
Prop. Mediated (control)  0.27931      0.05122         0.77   0.004 ** 
Prop. Mediated (treated)  0.39951      0.08713         0.83   0.004 ** 
ACME (average)            0.01172      0.00275         0.02   0.004 ** 
ADE (average)             0.02281      0.00341         0.04   0.020 *  
Prop. Mediated (average)  0.33941      0.06920         0.80   0.004 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Sample Size Used: 3213 


Simulations: 500 
model.1 <- glm(early~ thrombolysis, data=data, family = "binomial") 
model.2 <- glm(nihss_middle~ thrombolysis, data=data, family = "binomial") 
model.3 <- glm(early ~ nihss_middle + thrombolysis, data=data, family = "binomial") 
results <- mediate(model.2, model.3, treat='thrombolysis', mediator='nihss_middle', boot=TRUE, sims=500)
Running nonparametric bootstrap
summary(results) 

Causal Mediation Analysis 

Nonparametric Bootstrap Confidence Intervals with the Percentile Method

                          Estimate 95% CI Lower 95% CI Upper p-value    
ACME (control)           -0.000305    -0.001812         0.00    0.64    
ACME (treated)           -0.000535    -0.003321         0.00    0.64    
ADE (control)             0.035612     0.016514         0.06  <2e-16 ***
ADE (treated)             0.035383     0.016544         0.06  <2e-16 ***
Total Effect              0.035078     0.016351         0.06  <2e-16 ***
Prop. Mediated (control) -0.008706    -0.061841         0.05    0.64    
Prop. Mediated (treated) -0.015240    -0.095027         0.07    0.64    
ACME (average)           -0.000420    -0.002523         0.00    0.64    
ADE (average)             0.035498     0.016562         0.06  <2e-16 ***
Prop. Mediated (average) -0.011973    -0.078605         0.06    0.64    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Sample Size Used: 3213 


Simulations: 500 
model.1 <- glm(early~ thrombolysis, data=data, family = "binomial") 
model.2 <- glm(cortical~ thrombolysis, data=data, family = "binomial") 
model.3 <- glm(early ~ cortical + thrombolysis, data=data, family = "binomial") 
results <- mediate(model.2, model.3, treat='thrombolysis', mediator='cortical', boot=TRUE, sims=500)
Running nonparametric bootstrap
summary(results) 

Causal Mediation Analysis 

Nonparametric Bootstrap Confidence Intervals with the Percentile Method

                         Estimate 95% CI Lower 95% CI Upper p-value    
ACME (control)           0.001552     0.000582         0.00  <2e-16 ***
ACME (treated)           0.002599     0.001036         0.01  <2e-16 ***
ADE (control)            0.032088     0.011780         0.05  <2e-16 ***
ADE (treated)            0.033136     0.012349         0.05  <2e-16 ***
Total Effect             0.034688     0.014514         0.06  <2e-16 ***
Prop. Mediated (control) 0.044746     0.013608         0.20  <2e-16 ***
Prop. Mediated (treated) 0.074934     0.027202         0.25  <2e-16 ***
ACME (average)           0.002076     0.000827         0.01  <2e-16 ***
ADE (average)            0.032612     0.012144         0.05  <2e-16 ***
Prop. Mediated (average) 0.059840     0.020610         0.23  <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Sample Size Used: 3213 


Simulations: 500 
model.1 <- glm(early~ thrombolysis, data=data, family = "binomial") 
model.2 <- glm(cardio~ thrombolysis, data=data, family = "binomial") 
model.3 <- glm(early ~ cardio + thrombolysis, data=data, family = "binomial") 
results <- mediate(model.2, model.3, treat='thrombolysis', mediator='cardio', boot=TRUE, sims=500)
Running nonparametric bootstrap
summary(results) 

Causal Mediation Analysis 

Nonparametric Bootstrap Confidence Intervals with the Percentile Method

                          Estimate 95% CI Lower 95% CI Upper p-value    
ACME (control)            0.000582    -0.000859         0.00    0.51    
ACME (treated)            0.001000    -0.001552         0.00    0.51    
ADE (control)             0.034272     0.013100         0.06  <2e-16 ***
ADE (treated)             0.034691     0.013273         0.06  <2e-16 ***
Total Effect              0.035272     0.013803         0.06  <2e-16 ***
Prop. Mediated (control)  0.016495    -0.025112         0.07    0.51    
Prop. Mediated (treated)  0.028360    -0.042917         0.10    0.51    
ACME (average)            0.000791    -0.001221         0.00    0.51    
ADE (average)             0.034481     0.013210         0.06  <2e-16 ***
Prop. Mediated (average)  0.022427    -0.034087         0.08    0.51    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Sample Size Used: 3213 


Simulations: 500 
model.1 <- glm(early~ thrombolysis, data=data, family = "binomial") 
model.2 <- glm(macro~ thrombolysis, data=data, family = "binomial") 
model.3 <- glm(early ~ macro + thrombolysis, data=data, family = "binomial") 
results <- mediate(model.2, model.3, treat='thrombolysis', mediator='macro', boot=TRUE, sims=500)
Running nonparametric bootstrap
summary(results) 

Causal Mediation Analysis 

Nonparametric Bootstrap Confidence Intervals with the Percentile Method

                         Estimate 95% CI Lower 95% CI Upper p-value    
ACME (control)           0.001610     0.000433         0.00   0.016 *  
ACME (treated)           0.002668     0.000697         0.01   0.016 *  
ADE (control)            0.031989     0.013064         0.05  <2e-16 ***
ADE (treated)            0.033048     0.013290         0.06  <2e-16 ***
Total Effect             0.034657     0.014844         0.06  <2e-16 ***
Prop. Mediated (control) 0.046444     0.012329         0.15   0.016 *  
Prop. Mediated (treated) 0.076985     0.022763         0.21   0.016 *  
ACME (average)           0.002139     0.000573         0.01   0.016 *  
ADE (average)            0.032519     0.013177         0.06  <2e-16 ***
Prop. Mediated (average) 0.061714     0.017872         0.18   0.016 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Sample Size Used: 3213 


Simulations: 500 
model.1 <- glm(early~ thrombolysis, data=data, family = "binomial") 
model.2 <- glm(micro~ thrombolysis, data=data, family = "binomial") 
model.3 <- glm(early ~ micro + thrombolysis, data=data, family = "binomial") 
results <- mediate(model.2, model.3, treat='thrombolysis', mediator='micro', boot=TRUE, sims=500)
Running nonparametric bootstrap
model.1 <- glm(early~ thrombolysis, data=data, family = "binomial") #the independent variable thrombolysis affects the outcome seizures
model.2 <- glm(mca~ thrombolysis, data=data, family = "binomial") #the independent variable thrombolysis affects the mediator nihss
model.3 <- glm(early ~ mca + thrombolysis, data=data, family = "binomial") #the independent variable thrombolysis and mediator nihss affect the outcome seizures
results <- mediate(model.2, model.3, treat='thrombolysis', mediator='mca', boot=TRUE, sims=500)
Running nonparametric bootstrap
summary(results) #to prove the theres mediation, ACME which is the magnitud of inderect effect (mediator) must be significant. No sig. means no mediaton

Causal Mediation Analysis 

Nonparametric Bootstrap Confidence Intervals with the Percentile Method

                          Estimate 95% CI Lower 95% CI Upper p-value   
ACME (control)            0.000639    -0.001304         0.00   0.500   
ACME (treated)            0.001097    -0.002377         0.00   0.500   
ADE (control)             0.033859     0.013630         0.06   0.004 **
ADE (treated)             0.034317     0.013604         0.06   0.004 **
Total Effect              0.034956     0.013714         0.06   0.004 **
Prop. Mediated (control)  0.018292    -0.045733         0.09   0.504   
Prop. Mediated (treated)  0.031382    -0.075743         0.14   0.504   
ACME (average)            0.000868    -0.001857         0.00   0.500   
ADE (average)             0.034088     0.013618         0.06   0.004 **
Prop. Mediated (average)  0.024837    -0.060593         0.11   0.504   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Sample Size Used: 3213 


Simulations: 500 
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQKICBodG1sX2RvY3VtZW50OgogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0CiAgd29yZF9kb2N1bWVudDogZGVmYXVsdAotLS0KCiMjIyBEb3dubG9hZCBsaWJyYXJpZXMKYGBge3IsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHJlc3VsdHM9J2hpZGUnfQpsaWJyYXJ5KHN1cnZtaW5lcikKbGlicmFyeShzdXJ2aXZhbCkKbGlicmFyeShyZWFkeGwpCmxpYnJhcnkobWVkaWF0aW9uKQoKYGBgCgojIyMgTG9hZCBEYXRhCmBgYHtyfQpkYXRhd2l0aG1pc3NpbmdzIDwtIHJlYWRfZXhjZWwoImRhdGFfZm9yX2FuYWx5c2lzLnhsc3giKQp0ZW1wZGF0YSA8LSBtaWNlKGRhdGF3aXRobWlzc2luZ3MsIG0gPSA1LCBtYXhpdCA9IDUwLCBtZXRoID0gJ3BtbScsIHNlZWQgPSA1MDAsIHByaW50RmxhZyA9IEZBTFNFKQpkYXRhIDwtIG1pY2U6OmNvbXBsZXRlKHRlbXBkYXRhLDEpCmBgYApgYGB7cn0KbW9kZWwuMSA8LSBnbG0oZWFybHl+IHRocm9tYm9seXNpcywgZGF0YT1kYXRhLCBmYW1pbHkgPSAiYmlub21pYWwiKSAjdGhlIGluZGVwZW5kZW50IHZhcmlhYmxlIHRocm9tYm9seXNpcyBhZmZlY3RzIHRoZSBvdXRjb21lIHNlaXp1cmVzCm1vZGVsLjIgPC0gZ2xtKG5paHNzX2hpZ2h+IHRocm9tYm9seXNpcywgZGF0YT1kYXRhLCBmYW1pbHkgPSAiYmlub21pYWwiKSAjdGhlIGluZGVwZW5kZW50IHZhcmlhYmxlIHRocm9tYm9seXNpcyBhZmZlY3RzIHRoZSBtZWRpYXRvciBuaWhzcwptb2RlbC4zIDwtIGdsbShlYXJseSB+IG5paHNzX2hpZ2ggKyB0aHJvbWJvbHlzaXMsIGRhdGE9ZGF0YSwgZmFtaWx5ID0gImJpbm9taWFsIikgI3RoZSBpbmRlcGVuZGVudCB2YXJpYWJsZSB0aHJvbWJvbHlzaXMgYW5kIG1lZGlhdG9yIG5paHNzIGFmZmVjdCB0aGUgb3V0Y29tZSBzZWl6dXJlcwpyZXN1bHRzIDwtIG1lZGlhdGUobW9kZWwuMiwgbW9kZWwuMywgdHJlYXQ9J3Rocm9tYm9seXNpcycsIG1lZGlhdG9yPSduaWhzc19oaWdoJywgYm9vdD1UUlVFLCBzaW1zPTUwMCkKc3VtbWFyeShyZXN1bHRzKSAjdG8gcHJvb2YgdGhlIHRoZXJlJ3MgbWVkaWF0aW9uLCBBQ01FLCB3aGljaCBpcyB0aGUgbWFnbml0dWQgb2YgaW5kZXJlY3QgZWZmZWN0IChtZWRpYXRvcikgbXVzdCBiZSBzaWduaWZpY2FudC4gTm8gc2lnLiBtZWFucyBubyBtZWRpYXRvbgpgYGAKYGBge3J9Cm1vZGVsLjEgPC0gZ2xtKGVhcmx5fiB0aHJvbWJvbHlzaXMsIGRhdGE9ZGF0YSwgZmFtaWx5ID0gImJpbm9taWFsIikgCm1vZGVsLjIgPC0gZ2xtKG5paHNzX21pZGRsZX4gdGhyb21ib2x5c2lzLCBkYXRhPWRhdGEsIGZhbWlseSA9ICJiaW5vbWlhbCIpIAptb2RlbC4zIDwtIGdsbShlYXJseSB+IG5paHNzX21pZGRsZSArIHRocm9tYm9seXNpcywgZGF0YT1kYXRhLCBmYW1pbHkgPSAiYmlub21pYWwiKSAKcmVzdWx0cyA8LSBtZWRpYXRlKG1vZGVsLjIsIG1vZGVsLjMsIHRyZWF0PSd0aHJvbWJvbHlzaXMnLCBtZWRpYXRvcj0nbmloc3NfbWlkZGxlJywgYm9vdD1UUlVFLCBzaW1zPTUwMCkKc3VtbWFyeShyZXN1bHRzKSAKYGBgCmBgYHtyfQptb2RlbC4xIDwtIGdsbShlYXJseX4gdGhyb21ib2x5c2lzLCBkYXRhPWRhdGEsIGZhbWlseSA9ICJiaW5vbWlhbCIpIAptb2RlbC4yIDwtIGdsbShjb3J0aWNhbH4gdGhyb21ib2x5c2lzLCBkYXRhPWRhdGEsIGZhbWlseSA9ICJiaW5vbWlhbCIpIAptb2RlbC4zIDwtIGdsbShlYXJseSB+IGNvcnRpY2FsICsgdGhyb21ib2x5c2lzLCBkYXRhPWRhdGEsIGZhbWlseSA9ICJiaW5vbWlhbCIpIApyZXN1bHRzIDwtIG1lZGlhdGUobW9kZWwuMiwgbW9kZWwuMywgdHJlYXQ9J3Rocm9tYm9seXNpcycsIG1lZGlhdG9yPSdjb3J0aWNhbCcsIGJvb3Q9VFJVRSwgc2ltcz01MDApCnN1bW1hcnkocmVzdWx0cykgCmBgYApgYGB7cn0KbW9kZWwuMSA8LSBnbG0oZWFybHl+IHRocm9tYm9seXNpcywgZGF0YT1kYXRhLCBmYW1pbHkgPSAiYmlub21pYWwiKSAKbW9kZWwuMiA8LSBnbG0oY2FyZGlvfiB0aHJvbWJvbHlzaXMsIGRhdGE9ZGF0YSwgZmFtaWx5ID0gImJpbm9taWFsIikgCm1vZGVsLjMgPC0gZ2xtKGVhcmx5IH4gY2FyZGlvICsgdGhyb21ib2x5c2lzLCBkYXRhPWRhdGEsIGZhbWlseSA9ICJiaW5vbWlhbCIpIApyZXN1bHRzIDwtIG1lZGlhdGUobW9kZWwuMiwgbW9kZWwuMywgdHJlYXQ9J3Rocm9tYm9seXNpcycsIG1lZGlhdG9yPSdjYXJkaW8nLCBib290PVRSVUUsIHNpbXM9NTAwKQpzdW1tYXJ5KHJlc3VsdHMpIApgYGAKYGBge3J9Cm1vZGVsLjEgPC0gZ2xtKGVhcmx5fiB0aHJvbWJvbHlzaXMsIGRhdGE9ZGF0YSwgZmFtaWx5ID0gImJpbm9taWFsIikgCm1vZGVsLjIgPC0gZ2xtKG1hY3JvfiB0aHJvbWJvbHlzaXMsIGRhdGE9ZGF0YSwgZmFtaWx5ID0gImJpbm9taWFsIikgCm1vZGVsLjMgPC0gZ2xtKGVhcmx5IH4gbWFjcm8gKyB0aHJvbWJvbHlzaXMsIGRhdGE9ZGF0YSwgZmFtaWx5ID0gImJpbm9taWFsIikgCnJlc3VsdHMgPC0gbWVkaWF0ZShtb2RlbC4yLCBtb2RlbC4zLCB0cmVhdD0ndGhyb21ib2x5c2lzJywgbWVkaWF0b3I9J21hY3JvJywgYm9vdD1UUlVFLCBzaW1zPTUwMCkKc3VtbWFyeShyZXN1bHRzKSAKYGBgCmBgYHtyfQptb2RlbC4xIDwtIGdsbShlYXJseX4gdGhyb21ib2x5c2lzLCBkYXRhPWRhdGEsIGZhbWlseSA9ICJiaW5vbWlhbCIpIAptb2RlbC4yIDwtIGdsbShtaWNyb34gdGhyb21ib2x5c2lzLCBkYXRhPWRhdGEsIGZhbWlseSA9ICJiaW5vbWlhbCIpIAptb2RlbC4zIDwtIGdsbShlYXJseSB+IG1pY3JvICsgdGhyb21ib2x5c2lzLCBkYXRhPWRhdGEsIGZhbWlseSA9ICJiaW5vbWlhbCIpIApyZXN1bHRzIDwtIG1lZGlhdGUobW9kZWwuMiwgbW9kZWwuMywgdHJlYXQ9J3Rocm9tYm9seXNpcycsIG1lZGlhdG9yPSdtaWNybycsIGJvb3Q9VFJVRSwgc2ltcz01MDApCnN1bW1hcnkocmVzdWx0cykKYGBgCmBgYHtyfQptb2RlbC4xIDwtIGdsbShlYXJseX4gdGhyb21ib2x5c2lzLCBkYXRhPWRhdGEsIGZhbWlseSA9ICJiaW5vbWlhbCIpIAptb2RlbC4yIDwtIGdsbShtY2F+IHRocm9tYm9seXNpcywgZGF0YT1kYXRhLCBmYW1pbHkgPSAiYmlub21pYWwiKSAKbW9kZWwuMyA8LSBnbG0oZWFybHkgfiBtY2EgKyB0aHJvbWJvbHlzaXMsIGRhdGE9ZGF0YSwgZmFtaWx5ID0gImJpbm9taWFsIikgCnJlc3VsdHMgPC0gbWVkaWF0ZShtb2RlbC4yLCBtb2RlbC4zLCB0cmVhdD0ndGhyb21ib2x5c2lzJywgbWVkaWF0b3I9J21jYScsIGJvb3Q9VFJVRSwgc2ltcz01MDApCnN1bW1hcnkocmVzdWx0cykgCmBgYAoKCg==