Skip to content

Releases: strengejacke/ggeffects

ggeffects 1.3.4

18 Dec 09:27
2de9c10
Compare
Choose a tag to compare

General

  • ggpredict() now supports models of class rqs from package quantreg.

  • Fixed issues to be compatible with forthcoming update of emmeans.

ggeffects 1.3.3

15 Dec 09:23
Compare
Choose a tag to compare

New function

  • ggaverage(), to compute average predicted values. This function is based on
    marginaleffects::avg_predictons().

  • pool_comparisons(), to pool results from multiple calls to hypothesis_test(),
    e.g. with imputed data sets.

General

  • Support for sdmTMB (sdmTMB) models.

  • Improved support for the logistf package, including models flic() and
    flac().

  • Confidence intervals for predictions from merMod models (package lme4)
    now use the standard errors returned by predict(..., se.fit = TRUE). This
    should not affect numerical results, but can be more robust for certain edge
    cases. Note that standard errors are only based on predict() when
    tpye = "fixed". For type = "random", standard errors are still based on
    the model's variance-covariance matrix, taking uncertainty from random
    effects into account.

  • hypothesis_test() now suppports models from package parsnip.

  • johnson_neyman() gains a p_adjust argument, to adjust p-values for multiple
    comparisons. Currently, only p_adjust = "esarey" (resp. p_adjust = "es") and
    p_adjust = "fdr" (resp. p_adjust = "bh") are supported.

Bug fixes

  • ggpredict() now computes appropriate predicted probabilites for models
    of class rms::lrm() with ordinal outcome.

  • Fixed issue in ggpredict() for type = "random" when sampling from random
    effects levels, where the levels were numeric characters with a pattern like
    "001", "002", etc.

  • Fixed minor issue in plot.ggalleffects().

  • ... arguments in ggpredict() are now passed down to the predict() method
    for mgcv::gam() models.

ggeffects 1.3.2

17 Oct 10:42
3be6739
Compare
Choose a tag to compare

Breaking changes

  • Some function arguments will be renamed, to achieve consistency across the
    package and across other packages where I'm involved in the development.
    This will be a soft transition, i.e. the old argument names will still work
    for some package updates.

Changes

  • The typical argument now supports a mix of functions for different variable
    types at which numeric or categorical covariates (non-focal terms) are held
    constant.

  • Clarification of how the re.form argument is set when using type = "random"
    resp. type = "fixed" in ggpredict().

  • hypothesis_test() now returns the standard error of contrasts or pairwise
    comparisons as attribute standard_error. This can be used to compute the
    test-statistic, if required. In forthcoming updates, there will be methods
    for insight::get_statistic() and parameters::model_parameters() to include
    standard errors and test-statistics in the output.

  • test_predictions() was added as an alias for hypothesis_test().

Bug fixes

  • Fixed issue in hypothesis_test() for mixed models, which sometimes failed
    when random effects group variables were numeric, and not factors.

ggeffects 1.3.1

05 Sep 20:17
9dda7bf
Compare
Choose a tag to compare

New functions

  • johnson_neyman(), to create Johnson-Neyman intervals and plots from
    ggeffects objects.

Changes

  • Better automatic handling of offset-terms, both for predictions and generating
    plots with raw data. When the model formula contains an offset-term, and the
    offset term is fixed at a specific value, the response variable is now
    automatically transformed back to the original scale, and the offset-term is
    added to the predicted values. A warning is printed when model contains transformed offset-terms that are not fixed, e.g. via the condition argument.

  • ggeffect() now supports nestedLogit models.

Bug fixes

  • Fixed issue in hypothesis_test(), where the by argument did not work
    together with the collapse_levels argument.

  • Fixed issue in plot() method when adding raw data points for data frame
    that had now row names.

ggeffects 1.3.0

21 Aug 14:11
55f2595
Compare
Choose a tag to compare

Breaking

  • To avoid confusion when adding raw data or residuals to plots, the jitter
    argument that is used to add some noice to data points to avoid overlapping
    now defaults to NULL. Formerly, a small jitter was added by default,
    leading to confusion when data points did not match the original data.

Changes

  • The plot() method gets a label.data argument, to add row names to data
    points when add.data = TRUE.

  • tibbles are always converted into data frames, to avoid issues.

  • hypothesis_test() gains a by argument, to specify a variable that is used
    to group the comparisons or contrasts. This is useful for models with interaction
    terms.

Bug fixes

  • Plotting residuals did not work when model object passed to ggpredict()
    were inside a list, or when called from inside functions (scoping issues).

  • Fixed issue where plotting raw data (i.e. plot(..., add.data = TRUE)) did
    not work when there were missing data in weight variables (i.e. when the
    regression model used weights).

  • Fixes issue in plot() when no term was specified in the call to ggpredict().

  • Fixed issues with robust estimation for models of package pscl.

  • Fixed issues introduced by breaking changes in marginaleffects.

ggeffects 1.2.3

11 Jun 17:46
e82fb69
Compare
Choose a tag to compare

General

  • Support for nestedLogit (nestedLogit) models.

  • hyothesis_test() gains a scale argument, to explicitely modulate the scale
    of the contrasts or comparisons (e.g. "response" or "link", or "exp" to
    return transformed contrasts/comparisons).

  • hyothesis_test() now includes the response level for models with ordinal
    outcomes (and alike).

  • When ggpredict() is used inside functions and a name for a vector variable
    (passed as argument to that function) in terms is used, the variable is
    now correctly recognized.

  • Partial residuals (when plot(..., residuals = TRUE)) now supports more
    linear (mixed) models, including models from package lme (such as gls()
    or lme()).

  • For mixed models, type = "random" used to calculate prediction intervals
    that always accounted for random effects variances, leading to larger intervals.
    Using interval = "confidence" together with type = "random" now allows to
    calculate "usual" confidence intervals for random effects. This is usefule for
    predictions at specific group levels of random effects (when focal terms are
    only fixed effects, use type = "fixed" for regular confidence intervals).

  • The vcov.fun argument can now also be a function that returns a
    variance-covariance matrix.

  • The verbose argument in ggpredict() and hypothesis_test() now also toggle
    messages for the respective print() methods.

  • The print() method for hypothesis_test() has been revised and now provides
    more details for possible transformation of the scale of comparisons and
    contrasts.

  • The print() method now shows all rows by default when the focal term is
    a factor. If rows are not shown in the output, a message is printed to inform
    the user about truncated output.

  • A new vignette about using ggeffects in the context of an intersectional
    multilevel analysis of individual heterogeneity, using the MAIHDA framework.

Bug fixes

  • Fixed issue with wrong order of x-axis-labels for plots when the focal term
    on the x-axis was a character vector, where alphabetical order of values did
    not match order of predictions.

  • Fixed issues in hyothesis_test() for models with ordinal outcomes (and alike).

ggeffects 1.2.2

04 May 10:01
422c585
Compare
Choose a tag to compare

General

  • Added a new [.ggeffects function, which allows to subset ggeffects objects
    in the same way as regular data frames, i.e. it is now possible to do:

    gge <- ggpredict(model, "x1")
    gge[c(1:2)]
    
  • Using a name for a vector variable in terms now works from inside functions.
    E.g., you can now do:

    foo <- function(data) {
      fit <- lm(barthtot ~ c12hour + c172code, data = data)
      v <- c(20, 50, 70)
      ggpredict(fit, terms = "c12hour [v]")
    }
    foo(efc)
    
  • The colors argument in plot() can now also be applied to single-colored
    plots.

  • hyothesis_test() gains a collapse_level argument, to collapse term labels
    that refer to the same levels into a singel unique level string.

Bug fixes

  • Fixed issue with misplaced residuals when x-axis was categorical and the
    factor levels were not in alphabetical order.

  • pool_predictions() now correctly handles models with transformed response
    variables (like log(y)) and returns the correct back-transformed pooled
    predictions (and their confidence intervals).

  • Fixed issue with wrong computation of confidence intervals for models of class
    clm from package ordinal.

  • Fixed failing tests due to changes in the logistf package, which now also
    supports emmeans. That means, ggemmeans() now also works for models from
    package logistf.

  • Fixed bug in plot() when partial residuals were added (i.e. residuals = TRUE)
    and collapse.group was provided (in case of mixed models).

  • Fixed issue with on-the-fly created factors inside formulas, which were not
    correctly treated as factors in the plot() method. This bug was related to
    recent changes in insight::get_data().

  • Fixed issue with wrong labels in hyothesis_test() for comparisons with many
    rows, when betas starting with same digit were specified (e.g.
    test = "(b1-b13)=(b3-b15)").

  • Fixed issue in hyothesis_test() for mixed models when focal terms included
    factors with factor levels that contained a comma.

  • Fixed issue with missing confidence intervals for mixed models when one of
    the variable names contains white space characters (e.g. y ~ 'x a' + xb).

ggeffects 1.2.0

24 Feb 11:27
Compare
Choose a tag to compare

Breaking

  • Confidence intervals of adjusted predictions now take the model's degrees of
    freedom into account, thereby leading to slightly larger intervals for models
    that do not have infinite degrees of freedom (like linear models with
    t-statistic).

New functions

  • hypothesis_test(), to compute contrasts and comparisons of predictions and
    test differences for statistical significance. Additionally, an accompanying
    vignette that explains the new function in detail is added.

  • install_latest(), to install the latest official package version from
    CRAN, or the latest development version from r-universe.

  • An as.data.frame() method was added, which converts ggeffects objects
    returned by ggpredict() into data frame, where standard column names are
    replaced by their related variable names.

General

  • Response values are now also back-transformed when these were transformed
    using log2(), log10() or log1p().

  • The terms argument can now also be a named list. Thus, instead of
    terms = c("score [30,50,70]", "status [low, middle]") one could also write
    terms = list(score = c(30,50,70), status = c("low", "middle")).

ggeffects 1.1.4

23 Oct 19:53
023ff32
Compare
Choose a tag to compare

General

  • Reduced package dependencies. Packages sjlabelled and MASS were moved
    from imports to suggests. ggeffects is now a very lightweight package to
    compute adjusted predictions and estimated marginal means.

New supported models

  • logitr (package logitr)

Bug fixes

  • Fixed issue with wrong standard errors for predicting random effect groups
    for more multiple levels.

  • Fixed issue in ggemmeans(), which did not correctly averaged over character
    vectors when these were hold constant.

  • Fixed bug for models of class lme when type = "re" was requested.

0.14.1.1

06 Feb 08:26
Compare
Choose a tag to compare
allow re,form arg