rlabelpsclr-labelled

easystats parameters package doesn't respect variable labels for pscl models


Consider this code:

options(parameters_labels = TRUE)
mydf <- pscl::bioChemists
labelled::var_label(mydf) <- list(art="MyCount", fem="MyGender",
                                  mar="MyMarried")
model <- lm(art ~ fem + mar, data = mydf)
parameters::model_parameters(model)

Which returns:

Parameter           | Coefficient |   SE |         95% CI | t(912) |      p
---------------------------------------------------------------------------
(Intercept)         |        1.85 | 0.14 | [ 1.58,  2.12] |  13.46 | < .001
MyGender [Women]    |       -0.40 | 0.13 | [-0.66, -0.14] |  -3.06 | 0.002 
MyMarried [Married] |        0.05 | 0.14 | [-0.23,  0.32] |   0.34 | 0.737 

With correct variable labels.

Then consider:

model <- pscl::zeroinfl(art ~ fem + mar, data = mydf)
parameters::model_parameters(model)

Which returns:

# Fixed Effects 

Parameter     | Log-Mean |   SE |         95% CI |     z |      p
-----------------------------------------------------------------
(Intercept)   |     0.85 | 0.06 | [ 0.72,  0.97] | 13.29 | < .001
fem [Women]   |    -0.24 | 0.06 | [-0.36, -0.11] | -3.70 | < .001
mar [Married] |     0.01 | 0.07 | [-0.12,  0.14] |  0.17 | 0.868 

# Zero-Inflation 

Parameter     | Log-Odds |   SE |         95% CI |     z |      p
-----------------------------------------------------------------
(Intercept)   |    -1.32 | 0.24 | [-1.79, -0.86] | -5.55 | < .001
fem [Women]   |     0.02 | 0.24 | [-0.46,  0.50] |  0.08 | 0.939 
mar [Married] |    -0.09 | 0.25 | [-0.58,  0.40] | -0.37 | 0.715 

With no parameter labels.

How can I have parameters return variable labels also for pscl models?


Solution

  • This particular issue should be fixed in the latest CRAN version of parameters:

    options(parameters_labels = TRUE)
    mydf <- pscl::bioChemists
    labelled::var_label(mydf) <- list(art="MyCount", fem="MyGender",
                                      mar="MyMarried")
    
    model <- pscl::zeroinfl(art ~ fem + mar, data = mydf)
    parameters::model_parameters(model)
    #> # Fixed Effects
    #> 
    #> Parameter           | Log-Mean |   SE |         95% CI |     z |      p
    #> -----------------------------------------------------------------------
    #> (Intercept)         |     0.85 | 0.06 | [ 0.72,  0.97] | 13.29 | < .001
    #> MyGender [Women]    |    -0.24 | 0.06 | [-0.36, -0.11] | -3.70 | < .001
    #> MyMarried [Married] |     0.01 | 0.07 | [-0.12,  0.14] |  0.17 | 0.868 
    #> 
    #> # Zero-Inflation
    #> 
    #> Parameter           | Log-Odds |   SE |         95% CI |     z |      p
    #> -----------------------------------------------------------------------
    #> (Intercept)         |    -1.32 | 0.24 | [-1.79, -0.86] | -5.55 | < .001
    #> MyGender [Women]    |     0.02 | 0.24 | [-0.46,  0.50] |  0.08 | 0.939 
    #> MyMarried [Married] |    -0.09 | 0.25 | [-0.58,  0.40] | -0.37 | 0.715
    #> 
    #> The model has a log- or logit-link. Consider using `exponentiate =
    #>   TRUE` to interpret coefficients as ratios.
    

    Created on 2025-07-15 with reprex v2.1.1