library(mediation)
## Loading required package: MASS
## Loading required package: Matrix
## Loading required package: mvtnorm
## Loading required package: sandwich
## mediation: Causal Mediation Analysis
## Version: 4.5.0

#chay thu model

myData <- read.csv('http://static.lib.virginia.edu/statlab/materials/data/mediationData.csv')
head(myData)
##   X M Y
## 1 6 5 6
## 2 7 5 5
## 3 7 7 4
## 4 8 4 8
## 5 4 3 5
## 6 4 4 7
model.0 <- lm(Y ~ X, myData)
summary(model.0)
## 
## Call:
## lm(formula = Y ~ X, data = myData)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.0262 -1.2340 -0.3282  1.5583  5.1622 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   2.8572     0.6932   4.122 7.88e-05 ***
## X             0.3961     0.1112   3.564 0.000567 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.929 on 98 degrees of freedom
## Multiple R-squared:  0.1147, Adjusted R-squared:  0.1057 
## F-statistic:  12.7 on 1 and 98 DF,  p-value: 0.0005671
model.M <- lm(M ~ X, myData)
summary(model.M)
## 
## Call:
## lm(formula = M ~ X, data = myData)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.3046 -0.8656  0.1344  1.1344  4.6954 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.49952    0.58920   2.545   0.0125 *  
## X            0.56102    0.09448   5.938 4.39e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.639 on 98 degrees of freedom
## Multiple R-squared:  0.2646, Adjusted R-squared:  0.2571 
## F-statistic: 35.26 on 1 and 98 DF,  p-value: 4.391e-08
model.Y <- lm(Y ~ X + M, myData)
summary(model.Y)
## 
## Call:
## lm(formula = Y ~ X + M, data = myData)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.7631 -1.2393  0.0308  1.0832  4.0055 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   1.9043     0.6055   3.145   0.0022 ** 
## X             0.0396     0.1096   0.361   0.7187    
## M             0.6355     0.1005   6.321 7.92e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.631 on 97 degrees of freedom
## Multiple R-squared:  0.373,  Adjusted R-squared:  0.3601 
## F-statistic: 28.85 on 2 and 97 DF,  p-value: 1.471e-10
library(mediation)
install.packages("mediation")
## Warning: package 'mediation' is in use and will not be installed
library(mediation)
results <- mediate(model.M, model.Y, treat='X', mediator='M',
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             0.3565       0.2208         0.52  <2e-16 ***
## ADE              0.0396      -0.1935         0.30    0.71    
## Total Effect     0.3961       0.1570         0.65  <2e-16 ***
## Prop. Mediated   0.9000       0.5012         2.13  <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Sample Size Used: 100 
## 
## 
## Simulations: 500

#https://data.library.virginia.edu/introduction-to-mediation-analysis/ #http://web.pdx.edu/~newsomj/semclass/ho_mediation.pdf #https://towardsdatascience.com/doing-and-reporting-your-first-mediation-analysis-in-r-2fe423b92171

https://bmcgeriatr.biomedcentral.com/articles/10.1186/s12877-020-01802-6

0.0.1 ACME = 0.3565, 95% CI [0.2155, 0.5291] # significant!

0.0.2 ACME stands for Average Causal Mediation Effects

0.0.3 ADE stands for Average Direct Effects

0.0.4 Total Effect is a sum of a mediation (indirect) effect and a direct effect

model.M <- lm(M ~ X, myData)
model.Y <- lm(Y ~ X + M, myData)
results <- mediate(model.M, model.Y, treat='X', mediator='M',
                   boot=TRUE, sims=100)
## 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             0.3565       0.2283         0.50  <2e-16 ***
## ADE              0.0396      -0.1514         0.28    0.62    
## Total Effect     0.3961       0.1659         0.63  <2e-16 ***
## Prop. Mediated   0.9000       0.5006         1.64  <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Sample Size Used: 100 
## 
## 
## Simulations: 100
LS0tDQp0aXRsZTogIk1lZGlhdGlvbiBBbmFseXNpcyINCmF1dGhvcjogIkJpbmggVGhhbmcgVHJhbiINCmRhdGU6ICJPY3RvYmVyLzIwLzIwMjAiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICB0aGVtZTogam91cm5hbA0KICAgIHRvYzogeWVzDQogICAgdG9jX2Zsb2F0OiB5ZXMNCiAgd29yZF9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KLS0tDQoNCmBgYHtyfQ0KbGlicmFyeShtZWRpYXRpb24pDQpgYGANCg0KDQoNCiNjaGF5IHRodSBtb2RlbA0KDQoNCg0KYGBge3J9DQpteURhdGEgPC0gcmVhZC5jc3YoJ2h0dHA6Ly9zdGF0aWMubGliLnZpcmdpbmlhLmVkdS9zdGF0bGFiL21hdGVyaWFscy9kYXRhL21lZGlhdGlvbkRhdGEuY3N2JykNCmhlYWQobXlEYXRhKQ0KbW9kZWwuMCA8LSBsbShZIH4gWCwgbXlEYXRhKQ0Kc3VtbWFyeShtb2RlbC4wKQ0KbW9kZWwuTSA8LSBsbShNIH4gWCwgbXlEYXRhKQ0Kc3VtbWFyeShtb2RlbC5NKQ0KbW9kZWwuWSA8LSBsbShZIH4gWCArIE0sIG15RGF0YSkNCnN1bW1hcnkobW9kZWwuWSkNCmxpYnJhcnkobWVkaWF0aW9uKQ0KaW5zdGFsbC5wYWNrYWdlcygibWVkaWF0aW9uIikNCmxpYnJhcnkobWVkaWF0aW9uKQ0KcmVzdWx0cyA8LSBtZWRpYXRlKG1vZGVsLk0sIG1vZGVsLlksIHRyZWF0PSdYJywgbWVkaWF0b3I9J00nLA0KYm9vdD1UUlVFLCBzaW1zPTUwMCkNCnN1bW1hcnkocmVzdWx0cykNCg0KYGBgDQoNCiNodHRwczovL2RhdGEubGlicmFyeS52aXJnaW5pYS5lZHUvaW50cm9kdWN0aW9uLXRvLW1lZGlhdGlvbi1hbmFseXNpcy8NCiNodHRwOi8vd2ViLnBkeC5lZHUvfm5ld3NvbWovc2VtY2xhc3MvaG9fbWVkaWF0aW9uLnBkZg0KI2h0dHBzOi8vdG93YXJkc2RhdGFzY2llbmNlLmNvbS9kb2luZy1hbmQtcmVwb3J0aW5nLXlvdXItZmlyc3QtbWVkaWF0aW9uLWFuYWx5c2lzLWluLXItMmZlNDIzYjkyMTcxDQoNCmh0dHBzOi8vYm1jZ2VyaWF0ci5iaW9tZWRjZW50cmFsLmNvbS9hcnRpY2xlcy8xMC4xMTg2L3MxMjg3Ny0wMjAtMDE4MDItNg0KDQojIyMgQUNNRSA9IDAuMzU2NSwgOTUlIENJIFswLjIxNTUsIDAuNTI5MV0gICMgc2lnbmlmaWNhbnQhDQojIyMgQUNNRSBzdGFuZHMgZm9yIEF2ZXJhZ2UgQ2F1c2FsIE1lZGlhdGlvbiBFZmZlY3RzDQojIyMgQURFIHN0YW5kcyBmb3IgQXZlcmFnZSBEaXJlY3QgRWZmZWN0cw0KIyMjIFRvdGFsIEVmZmVjdCBpcyBhIHN1bSBvZiBhIG1lZGlhdGlvbiAoaW5kaXJlY3QpIGVmZmVjdCBhbmQgYSBkaXJlY3QgZWZmZWN0DQoNCmBgYHtyfQ0KbW9kZWwuTSA8LSBsbShNIH4gWCwgbXlEYXRhKQ0KbW9kZWwuWSA8LSBsbShZIH4gWCArIE0sIG15RGF0YSkNCnJlc3VsdHMgPC0gbWVkaWF0ZShtb2RlbC5NLCBtb2RlbC5ZLCB0cmVhdD0nWCcsIG1lZGlhdG9yPSdNJywNCiAgICAgICAgICAgICAgICAgICBib290PVRSVUUsIHNpbXM9MTAwKQ0Kc3VtbWFyeShyZXN1bHRzKQ0KYGBgDQoNCg==