Baron & Kenny’s method with processR package
Causal steps approach
by Baron and Kenny(1986) has benn the staandard approach to assess partial or full mediation. I have made a function mediationBK() to perfrom Baron & Kenny’s approach easily.
Data countries
Data countries
included in klaR package is a socioeconomic data for the most famous countries. Gross domestic product per inhabitant affects the illiteracy rate and the illiteracy rate affects life expectancy.
require(processR)
if(!require(klaR)) install.packages("klaR")
data(countries,package="klaR")
labels=list(X="GDPpp",M="Illit",Y="LifeEx")
nodeslabels=list(X="GDP\n per inhabitant",M="Illiteracy Rate",
Y="Mean Life\nExpectation")
result=mediationBK(labels=labels,data=countries)
Statistical Model
plot(result,rady=0.08,nodeslabels=nodeslabels,arrowslabels=c("a","b","c"),whatLabel="label")

Model for Total Effect
plot(result,rady=0.08,type=1,nodeslabels=nodeslabels,arrowslabels=c("c"),whatLabel="label",addprime=FALSE)

Model Equations
for(i in 1:3) {
cat(paste0("fit",i),"=", result$equations[[i]],"\n")
}
fit1 = lm(LifeEx~GDPpp,data=countries)
fit2 = lm(Illit~GDPpp,data=countries)
fit3 = lm(LifeEx~Illit+GDPpp,data=countries)
Models Summary
modelsSummaryTable(labels=labels,result$fit)
| Consequent |
| Y(LifeEx) |
| M(Illit) |
| Y(LifeEx) |
Antecedent | Coef | SE | t | p |
| Coef | SE | t | p |
| Coef | SE | t | p |
X(GDPpp) | 0.001 | 0.000 | 5.686 | <.001 |
| -0.001 | 0.000 | -4.225 | <.001 |
| 0.001 | 0.000 | 3.615 | .001 |
M(Illit) |
|
|
|
|
|
|
|
|
|
| -0.200 | 0.077 | -2.590 | .013 |
Constant | 60.037 | 1.774 | 33.849 | <.001 |
| 26.979 | 3.394 | 7.950 | <.001 |
| 65.439 | 2.665 | 24.554 | <.001 |
Observations | 42 |
| 42 |
| 42 |
R2 | 0.447 |
| 0.309 |
| 0.528 |
Adjusted R2 | 0.433 |
| 0.291 |
| 0.504 |
Residual SE | 8.282 ( df = 40) |
| 15.848 ( df = 40) |
| 7.748 ( df = 39) |
F statistic | F(1,40) = 32.329, p < .001 |
| F(1,40) = 17.854, p < .001 |
| F(2,39) = 21.824, p < .001 |
Result
result
Results of Baron and Kenny Method
Step 1 : Path C (Total Effect) : c = 0.001 ( p < 0.001 )
Step 2 : Path A (X on M) : a = -0.001 ( p < 0.001 )
Step 3 : Path B (M on Y, controlling for X) : b = -0.200 ( p = 0.013 )
Step 4 : Path C' (Direct Effect, X on Y, controlling for M) : c' = 0.001 ( p < 0.001 )
Result : Partial mediation
Results of bda::mediation.test
Sobel Aroian Goodman
z.value 2.2080915 2.16446846 2.25446305
p.value 0.0272379 0.03042841 0.02416705
Statistical Model
plot(result,rady=0.08,nodeslabels=nodeslabels)

Model for Total Effect
plot(result,rady=0.08,type=1,nodeslabels=nodeslabels)

LS0tCnRpdGxlOiAiQmFyb24gJiBLZW5ueSdzIG1ldGhvZCIKb3V0cHV0OgogIGh0bWxfZG9jdW1lbnQ6CiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMKICAgIGNvZGVfZm9sZGluZzogc2hvdwogICAgZm9udHNpemU6IDhwdAogICAgaGlnaGxpZ2h0OiB0ZXh0bWF0ZQogICAgbnVtYmVyX3NlY3Rpb25zOiBubwogICAgdGhlbWU6IGZsYXRseQogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDoKICAgICAgY29sbGFwc2VkOiBubwotLS0KClxwYWdlYnJlYWsKCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoY2FjaGUgPSBUUlVFLGNvbW1lbnQgPSBOQSkKa25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKSAjU2hvdyBhbGwgc2NyaXB0IGJ5IGRlZmF1bHQKa25pdHI6Om9wdHNfY2h1bmskc2V0KG1lc3NhZ2UgPSBGQUxTRSkgI2hpZGUgbWVzc2FnZXMgCmtuaXRyOjpvcHRzX2NodW5rJHNldCh3YXJuaW5nID0gIEZBTFNFKSAjaGlkZSBwYWNrYWdlIHdhcm5pbmdzIAprbml0cjo6b3B0c19jaHVuayRzZXQoZmlnLndpZHRoPTcpICNTZXQgZGVmYXVsdCBmaWd1cmUgc2l6ZXMKa25pdHI6Om9wdHNfY2h1bmskc2V0KGZpZy5oZWlnaHQ9NSkgI1NldCBkZWZhdWx0IGZpZ3VyZSBzaXplcwprbml0cjo6b3B0c19jaHVuayRzZXQoZmlnLmFsaWduPSdjZW50ZXInKSAjU2V0IGRlZmF1bHQgZmlndXJlCmtuaXRyOjpvcHRzX2NodW5rJHNldChyZXN1bHRzID0gImhvbGQiKSAKYGBgCgoKIyMgQmFyb24gJiBLZW5ueSdzIG1ldGhvZCB3aXRoIHByb2Nlc3NSIHBhY2thZ2UgCgpgQ2F1c2FsIHN0ZXBzIGFwcHJvYWNoYCBieSBCYXJvbiBhbmQgS2VubnkoMTk4NikgaGFzIGJlbm4gdGhlIHN0YWFuZGFyZCBhcHByb2FjaCB0byBhc3Nlc3MgcGFydGlhbCBvciBmdWxsIG1lZGlhdGlvbi4gSSBoYXZlIG1hZGUgYSBmdW5jdGlvbiBtZWRpYXRpb25CSygpIHRvIHBlcmZyb20gQmFyb24gJiBLZW5ueSdzIGFwcHJvYWNoIGVhc2lseS4gCgojIyBEYXRhIGBjb3VudHJpZXNgCgpEYXRhIGBjb3VudHJpZXNgIGluY2x1ZGVkIGluIGtsYVIgcGFja2FnZSBpcyBhIHNvY2lvZWNvbm9taWMgZGF0YSBmb3IgdGhlIG1vc3QgZmFtb3VzIGNvdW50cmllcy4gR3Jvc3MgZG9tZXN0aWMgcHJvZHVjdCBwZXIgaW5oYWJpdGFudCBhZmZlY3RzIHRoZSBpbGxpdGVyYWN5IHJhdGUgYW5kIHRoZSBpbGxpdGVyYWN5IHJhdGUgYWZmZWN0cyBsaWZlIGV4cGVjdGFuY3kuIAoKYGBge3J9CnJlcXVpcmUocHJvY2Vzc1IpCmlmKCFyZXF1aXJlKGtsYVIpKSBpbnN0YWxsLnBhY2thZ2VzKCJrbGFSIikKCmRhdGEoY291bnRyaWVzLHBhY2thZ2U9ImtsYVIiKQpsYWJlbHM9bGlzdChYPSJHRFBwcCIsTT0iSWxsaXQiLFk9IkxpZmVFeCIpCm5vZGVzbGFiZWxzPWxpc3QoWD0iR0RQXG4gcGVyIGluaGFiaXRhbnQiLE09IklsbGl0ZXJhY3kgUmF0ZSIsCiAgICAgICAgICAgICAgICAgWT0iTWVhbiBMaWZlXG5FeHBlY3RhdGlvbiIpCnJlc3VsdD1tZWRpYXRpb25CSyhsYWJlbHM9bGFiZWxzLGRhdGE9Y291bnRyaWVzKQpgYGAKCiMjIFN0YXRpc3RpY2FsIE1vZGVsIAoKYGBge3J9CnBsb3QocmVzdWx0LHJhZHk9MC4wOCxub2Rlc2xhYmVscz1ub2Rlc2xhYmVscyxhcnJvd3NsYWJlbHM9YygiYSIsImIiLCJjIiksd2hhdExhYmVsPSJsYWJlbCIpCmBgYAoKIyMgTW9kZWwgZm9yIFRvdGFsIEVmZmVjdAoKYGBge3J9CnBsb3QocmVzdWx0LHJhZHk9MC4wOCx0eXBlPTEsbm9kZXNsYWJlbHM9bm9kZXNsYWJlbHMsYXJyb3dzbGFiZWxzPWMoImMiKSx3aGF0TGFiZWw9ImxhYmVsIixhZGRwcmltZT1GQUxTRSkKYGBgCgojIyBNb2RlbCBFcXVhdGlvbnMKCmBgYHtyfQpmb3IoaSBpbiAxOjMpIHsKICBjYXQocGFzdGUwKCJmaXQiLGkpLCI9IiwgcmVzdWx0JGVxdWF0aW9uc1tbaV1dLCJcbiIpCn0gIApgYGAKCgojIyBNb2RlbHMgU3VtbWFyeQoKYGBge3J9Cm1vZGVsc1N1bW1hcnlUYWJsZShsYWJlbHM9bGFiZWxzLHJlc3VsdCRmaXQpCmBgYAoKIyMgUmVzdWx0CgpgYGB7cn0KcmVzdWx0CmBgYAoKIyMgU3RhdGlzdGljYWwgTW9kZWwgCgpgYGB7cn0KcGxvdChyZXN1bHQscmFkeT0wLjA4LG5vZGVzbGFiZWxzPW5vZGVzbGFiZWxzKQpgYGAKCiMjIE1vZGVsIGZvciBUb3RhbCBFZmZlY3QKCmBgYHtyfQpwbG90KHJlc3VsdCxyYWR5PTAuMDgsdHlwZT0xLG5vZGVzbGFiZWxzPW5vZGVzbGFiZWxzKQpgYGA=