Extracts (standardized) path coefficients from a psem object.

coefs(modelList, standardize = "scale",
  standardize.type = "latent.linear", test.type = "II",
  intercepts = FALSE)



A list of structural equations, or a model.


The type of standardization: none, scale, range. Default is scale.


The type of standardized for non-Gaussian responses: latent.linear, Menard.OE. Default is latent.linear.


the type of test for significance of categorical variables from car::Anova. Default is type "II".


Whether intercepts should be included in the coefficients table. Default is FALSE.


Returns a data.frame of coefficients, their standard errors, degrees of freedom, and significance tests.


P-values for models constructed using lme4 are obtained using the Kenward-Roger approximation of the denominator degrees of freedom as implemented in the pbkrtest package.

Different forms of standardization can be implemented using the standardize argument:

  • none No standardized coefficients are reported.

  • scale Raw coefficients are scaled by the ratio of the standard deviation of x divided by the standard deviation of y. See below for cases pertaining to GLM.

  • range Raw coefficients are scaled by a pre-selected range of x divided by a preselected range of y. The default argument is range which takes the two extremes of the data, otherwise the user must supply must a named list where the names are the variables to be standardized, and each entry contains a vector of length == 2 to the ranges to be used in standardization.

For binary response models (i.e., binomial responses), standardized coefficients are obtained in one of two ways:

  • latent.linear Referred to in Grace et al. (in review) as the standard form of the latent-theoretic (LT) approach. In this method, there is assumed to be a continuous latent propensity, y*, that underlies the observed binary responses. The standard deviation of y* is computed as the square-root of the variance of the predictions (on the linear or 'link' scale) plus the distribution-specific assumed variance (for logit links: pi^2/3, for probit links: 1).

  • Menard.OE Referred to in Grace et al. (in review) as the standard form of the observed-empirical (OE) approach. In this method, error variance is based on the differences between predicted scores and the observed binary data. The standard deviation used for standardization is computed as the square-root of the variance of the predictions (on the linear scale) plus the correlation between the observed and predicted (on the original or 'response' scale) values of y.

For categorical predictors: significance is determined using ANOVA (or analysis of deviance). Because n-1 coefficients are reported for n levels, the output instead reports model-estimated means in the Estimate column. This is done so all n paths in the corresponding path diagram have assignable values.

The means are generated using function emmeans in the emmeans package. Pairwise contrasts are further conducted among all levels using the default correction for multiple testing. The results of those comparisons are given in the significance codes (e.g., "a", "b", "ab") as reported in the emmeans::cld function.


Grace, J.B., Johnson, D.A., Lefcheck, J.S., and Byrnes, J.E. "Standardized Coefficients in Regression and Structural Models with Binary Outcomes." Ecosphere 9(6): e02283.

See also

KRmodcomp, Anova, emmeans, CLD


mod <- psem( lm(rich ~ cover, data = keeley), lm(cover ~ firesev, data = keeley), lm(firesev ~ age, data = keeley), data = keeley ) coefs(mod)
#> Response Predictor Estimate Std.Error DF Crit.Value P.Value Std.Estimate #> 1 rich cover 15.6727 4.7931 88 3.2698 0.0015 0.3291 ** #> 2 cover firesev -0.0839 0.0184 88 -4.5594 0.0000 -0.4371 *** #> 3 firesev age 0.0597 0.0125 88 4.7781 0.0000 0.4539 ***