Right way of calculating f2

582 views
Skip to first unread message

Nicholas Brown

unread,
Nov 28, 2016, 7:15:03 AM11/28/16
to PLS-SEM
Hi,

I am trying to understand how to correctly calculate f2 to measure the size of the effect of an exogenous construct on an endogenous one. More specifically, I am interested in calculating f2 to measure the size of the effect of A on B when there are both direct and indirect effects. That is:
A -> B
A -> C -> B

The theory says that:

f2 = (R2_inc - R2_exc)/(1 - R2_inc)

where, R2_inc is B's R2 when A is included in the model, and R2_exc is B's R2 when A is not included in the model.

In most places where f2 is discussed, they mention one needs to estimate the structural model twice, once with and once without the A, to calculate f2. However, in [1] the authors say that when manually computing the f2 values by estimating the model with and without a latent variable, the model changes and, thus, the latent variable scores. As a result the resulting f2 is not completely correct. To avoid this problem, the authors say that SmartPLS 3 uses the latent variable scores of the model that includes all latent variables and then internally excludes latent variables to obtain the R2_exc.

So...

1) Is it ok to estimate the model twice? In that case, to measure R2_exc, would the model just be C->B in my case?
2) If model modification is an important issue [1], what is the right way to replicate SmartPLS3's approach? Using R, would the following be right?

Given matrices F and P for the whole model, where 
F: n x m matrix containing the factor scores for each of the data samples (where n is the number of data samples and m is the number of latent variables)
P: m x m matrix containing the standardized path coefficients

we can obtain
R2_inc = colVars( F %*% P) / colVars(F)

To calculate R2_exc, we can just eliminate the exogenous latent variable as follows:
P[i, ] <- 0
P[ ,i] <- 0
F[ ,i] <- 0
where "i" is the index of the exogenous latent variable. We can then calculate R2 as usual.

Cheers,
Nicholas

[1] Hair Jr., Joseph F.; G. Tomas M. Hult; Christian M. Ringle; Marko Sarstedt. A Primer on Partial Least Squares Structural Equation Modeling (PLS-SEM), 2016, 2nd ed., SAGE Publications.

Mikko Rönkkö

unread,
Nov 28, 2016, 7:46:45 AM11/28/16
to pls...@googlegroups.com
Hi,

Cohen’s f2 (if you mean that) is defined as R2/(1-R2). (Cohen 1998, doi:10.1037/0033-2909.112.1.155)

If you want to calculate the statistic that you are interested, you can just export the composite scores and run the required regressions by hand. Here is an example of how to calculate Cohen’s f2 and Hair’s statistic that uses the same name.


Here is a quick example using matrixpls:

library(matrixpls)

# Run the customer satisfaction example to have something that we can calculate f2 from
example("weightFun.pls")

# Calculate the composites
composites <- as.data.frame(as.matrix(satisfaction[,1:27]) %*% t(attr(matrixpls.ModeA,"W")))

lm1 <- lm(IMAG ~ EXPE + SAT + LOY, data = composites)
lm1exl <- lm(IMAG ~ EXPE + SAT, data = composites)

# Hair's f2

print( (summary(lm1)$r.squared-summary(lm1exl)$r.squared)/(1-summary(lm1)$r.squared))

# Cohen's f2

print( summary(lm1)$r.squared/(1-summary(lm1)$r.squared))




But you probably should not compare Hair’s f2 statistic against Cohen’s benchmarks because it is a different statistic and produces quote different results 

Mikko

--
Join us at the PLS Applications Symposium: http://plsas.net
---
You received this message because you are subscribed to the Google Groups "PLS-SEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pls-sem+u...@googlegroups.com.
To post to this group, send email to pls...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Nicholas Brown

unread,
Nov 28, 2016, 10:51:12 AM11/28/16
to PLS-SEM
Thanks Mikko!

Your answer solved my doubts about calculating the effect size as described by Hair et al.

I see that you make apoint into not interpreting the results of Hair's f2 against Cohen’s f2 benchmarks (0.02, 0.15, 0.35; for small, medium, large).
I understand that Hair's f2 is an adaptation of Cohen's f2 to the context of PLS SEM and that Cohen's benchmark represent the results of his observations in the context of behavioral and social sciences, for multiple regression studies. So I see why one should not directly use that benchmark with PLS SEM. I wonder if you have any suggestions/comments on how to measure and interpret effect sizes.

Thanks!

Cheers,
Nicholas

Mikko Rönkkö

unread,
Nov 28, 2016, 4:06:33 PM11/28/16
to pls...@googlegroups.com
Hi

There is nothing special in the regressions that your PLS software does for you, so your life will be a lot simpler if you just export the composite scores to a statistical package, and analyze them there using the typical effect size measures for regression. That being said, I do not personally see much value in effect size measures. It is much better to just interpret the regression coefficients and what they mean in your research context. 

Maybe the following articles are useful for you:

Bosco, F. A., Aguinis, H., Singh, K., Field, J. G., & Pierce, C. A. (2014). Correlational Effect Size Benchmarks. Journal of Applied Psychology. https://doi.org/10.1037/a0038047
Kelley, K., & Preacher, K. J. (2012). On effect size. Psychological Methods, 17(2), 137.

Mikko

Reply all
Reply to author
Forward
0 new messages