Links to specific topics

(See also under "Labels" at the bottom-left area of this blog)
[ Welcome post ] [ Installation issues ] [ ] [ Posts with YouTube links ] [ PLS-SEM email list ]

Friday, January 18, 2013

Easily calculating the GoF fit index with WarpPLS outputs

Note: The post below applies to version 3.0 of WarpPLS. In version 4.0 and newer versions of WarpPLS, the GoF index is calculated automatically, using the procedure outlined below. This index is referred to in WarpPLS as “Tenenhaus GoF”, in honor of Michel Tenenhaus.


This post is in response to a question I received late last year: How can one easily calculate the GoF index discussed by Tenenhaus et al. (2005) with WarpPLS outputs? Before getting into that, I would like to thank the participants in last week’s WarpPLS workshop in San Antonio, Texas – for attending, participating in the discussions, and asking very good questions. That was a knowledgeable group!

Tenenhaus et al. (2005) defined the GoF as the square root of the product between what they refer to as the average communality index and the average R-squared for the model. The communality index for a given latent variable is defined as the sum of the squared loadings for that latent variable, each loading associated with an indicator, divided by the number of indicators. The average communality index for a model is defined similarly, and takes all latent variables into account in its calculation.

I should note that the loadings we refer to above are the unrotated loadings, which are available from the structure loadings and cross-loadings table generated by WarpPLS. I should also note that the definition of the communality index above does not match the typical definition of communality, at least as it is normally stated in the context of factor analysis.

Here is the main point of this post: you do NOT need the average communality index to calculate the GoF using WarpPLS. Instead, you can use the average variances extracted (AVEs). As noted by Wetzels et al. (2009), the AVE for each latent variable equals the corresponding communality index. So the average AVE for the model can be used instead of the average communality index for the model. The formula for calculating the GoF proposed by Wetzels et al. (2009) then becomes:

GoF = square root of: (average AVE) x (average R-squared).

The average R-squared (ARS) is already provided by WarpPLS, as one of its three model fit indices in version 3.0 (there will be more fit indices in future versions of WarpPLS). The average AVE can be easily calculated based on the AVEs reported on the latent variable coefficients table. The figure below shows these outputs and the calculation of the corresponding GoF using Excel. The numbers are from a specific model that includes a formative variable, which is the reason for the low AVE of 0.244. There is some debate as to whether formative latent variables should be included in the calculation of the GoF. In this example, the formative latent variable was included.

The ARS, already provided by WarpPLS, is in my opinion a more conservative and robust measure of model fit than the GoF. The reason is that the AVE tends to go up as one removes indicators from a latent variable, going up to 1 for a latent variable with one single indicator. Therefore, a model where all latent variables are measured through single indicators (i.e., a path model, without “true” latent variables) will have a higher GoF than an equivalent model where the latent variables are measured through multiple indicators. The same will not happen with the ARS, which will also tend to be lower than the GoF for any model – and thus a more conservative measure of fit between the model and the data.

On a final note, Wetzels et al. (2009) also proposed the following thresholds for the GoF: small=0.1, medium=0.25, and large=0.36. They did so by assuming a minimum average AVE of 0.5, and using Cohen’s thresholds for small, medium and large effect sizes; the latter are discussed in the WarpPLS 3.0 User Manual (Kock, 2012).


Kock, N. (2012). WarpPLS 3.0 User Manual. Laredo, Texas: ScriptWarp Systems.

Tenenhaus, M., Vinzi, V.E., Chatelin, Y.-M., & Lauro, C. (2005). PLS path modeling. Computational Statistics & Data Analysis, 48(1), 159-205.

Wetzels, M., Odekerken-Schroder, G., & van Oppen, C. (2009). Using PLS path modeling for assessing hierarchical construct models: Guidelines and empirical illustration. MIS Quarterly, 33(1), 177-196.