The metafor Package

A Meta-Analysis Package for R

User Tools

Site Tools


updates

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
updates [2023/05/09 06:25] Wolfgang Viechtbauerupdates [2024/03/29 09:58] (current) Wolfgang Viechtbauer
Line 2: Line 2:
  
 On this page, you can find a description of the (recent) updates to the metafor package. Older updates are archived [[updates_old|here]]. On this page, you can find a description of the (recent) updates to the metafor package. Older updates are archived [[updates_old|here]].
 +
 +==== Version 4.6-0 (2024-03-28) ====
 +
 +  * the ''steps'' argument in the various ''profile()'' functions can now also be a numeric vector to specify for which parameter values the likelihood should be evaluated
 +  * a few minor fixes to the dynamic theming of plots based on the foreground and background colors of the plotting device
 +  * slightly improved flexibility for setting package options
 +  * new measures added to ''escalc()'': ''"SMN"'' for the single-group standardized mean / single-group standardized mean difference, ''"SMCRP"'' for the standardized mean change using raw score standardization with pooled standard deviations, and ''"SMCRPH"'' for the standardized mean change using raw score standardization with pooled standard deviations and heteroscedastic population variances at the two measurement occasions
 +  * calculation of the sampling variances for measures ''"SMDH"'', ''"SMD1H"'', and ''"SMCRH"'' was slightly adjusted for consistency
 +  * in ''plot.gosh.rma()'', can also set ''het="tau"'' (to plot the square root of tau^2 as the measure of heterogeneity)
 +  * in the various ''forest()'' functions, argument ''ylim'' can now only be a single value to specify the lower bound (while the upper bound is still set automatically)
 +  * in ''forest()'' and ''regplot()'', observation limits set via ''olim'' are now properly applied to all elements
 +  * various internal improvements to ''selmodel()''
 +  * ''selmodel()'' no longer stops with an error when one or more intervals defined by the ''steps'' argument do not contain any observed p-values (instead a warning is issued and model fitting proceeds, but may fail)
 +  * added ''decreasing'' argument to ''selmodel()'' for enforcing that the delta estimates must be a monotonically decreasing function of the p-values in the step function model
 +  * added the undocumented argument ''pval'' to ''selmodel()'' for passing p-values directly to the function (doing this is highly experimental)
 +  * some internal refactoring of the code
 +  * improved the documentation a bit
 +
 +==== Version 4.4-0 (2023-09-27) ====
 +
 +  * added ''getmfopt()'' and ''setmfopt()'' functions for getting and setting package options and made some of the options more flexible
 +  * removed argument ''weighted'' from ''fsn()'' (whether weighted or unweighted averages are used in Orwin's method is now simply determined by whether sampling variances are specified or not); added ''type="General"'' to ''fsn()'' as a generalization of the Orwin and Rosenberg methods (that allows for a fail-safe N calculation based on a random-effects model); can now pass an ''rma'' object to the ''fsn()'' function
 +  * further improved the theming of all plots based on the foreground and background colors; within RStudio, plot colors can also be automatically chosen based on the theme (with ''setmfopt(theme="auto")'')
 +  * added additional/optional argument ''tabfig'' to the various ''forest()'' functions, for easily setting the ''annosym'' argument to an appropriate vector for exactly aligning numbers (when using a matching font)
 +  * added (for now undocumented) ''vccon'' argument to ''rma.mv()'' for setting equality constraints on variance/correlation components
 +  * ''replace'' argument in ''conv.2x2()'', ''conv.delta()'', ''conv.fivenum()'', and ''conv.wald()'' can now also be a logical
 +  * added ''summary.matreg()'' and ''print.summary.matreg()'' methods for including additional statistics in the output ($R^2$ and the omnibus test) and added ''coef.matreg()'' and ''vcov.matreg()'' extractor functions
 +  * formatting functions ''fmtp()'', ''fmtx()'', and ''fmtt()'' gain a ''quote'' argument, which is set to ''FALSE'' by default
 +  * for measures ''"PCOR"'', ''"ZPCOR"'', ''"SPCOR"'', and ''"ZSPCOR"'', argument ''mi'' in ''escalc()'' now refers to the total number of predictors in the regression models (i.e., also counting the focal predictor of interest)
 +  * added measures ''"R2"'' and "''ZR2"'' to ''escalc()''
 +  * ''addpoly.default()'' and ''addpoly.rma.predict()'' gain a ''constarea'' argument (for the option to draw the polygons with a constant area)
 +  * ''plot.rma.uni.selmodel()'' gains a ''shade'' argument (for shading the confidence interval region)
 +  * ''plot.permutest.rma.uni()'' gains a ''legend'' argument
 +  * ''vcalc()'' gains a ''sparse'' argument
 +  * ''aggregate.escalc'' gains ''var.names'' argument
 +  * made the ''legend'' argument more flexible in ''funnel()''
 +  * made the ''append'' argument more flexible in ''to.long()''
 +  * added a few more transformation functions
 +  * small bug fixes
 +  * added automated visual comparison tests of plots
 +  * improved the documentation a bit
  
 ==== Version 4.2-0 (2023-05-08) ==== ==== Version 4.2-0 (2023-05-08) ====
Line 135: Line 176:
   * refactored various functions (for cleaner/simpler code)   * refactored various functions (for cleaner/simpler code)
   * improved the documentation a bit   * improved the documentation a bit
- 
-==== Version 2.4-0 (2020-03-19) ==== 
- 
-  * version jump to 2.4-0 for CRAN release (from now on, even minor numbers for CRAN releases, odd numbers for development versions) 
-  * the various ''forest()'' functions gain ''header'' argument 
-  * ''escalc()'' gains ''include'' argument 
-  * setting ''verbose=3'' in model fitting functions sets ''options(warn=1)'' 
-  * ''forest.rma()'' and ''forest.default()'' now throw informative errors when misusing ''order'' and ''subset'' arguments 
-  * fixed failing tests due to the ''stringsAsFactors=FALSE'' change in the upcoming version of R 
-  * ''print.infl.rma.uni()'' gains ''infonly'' argument, to only show the influential studies 
-  * removed ''MASS'' from ''Suggests'' (no longer needed) 
-  * argument ''btt'' can now also take a string to grep for 
-  * added ''optimParallel'' as possible optimizer in ''rma.mv()'' 
-  * added (for now undocumented) option to fit models in ''rma.glmm()'' via the ''GLMMadaptive'' package (instead of ''lme4''); to try this, use: ''control=list(package="GLMMadaptive")'' 
-  * started to use numbering scheme for 'devel' version (the number after the dash indicates the devel version) 
-  * added ''contrmat()'' function (for creating a matrix that indicates which groups have been compared against each other in each row of a dataset) 
-  * added ''to.wide()'' function (for restructuring long format datasets into the wide format needed for contrast-based analyses) 
-  * ''I^2'' and ''H^2'' are also shown in output for fixed-effects models 
-  * argument ''grid'' in ''baujat()'' can now also be a color name 
-  * added (for now undocumented) ''time'' argument to more functions that are computationally expensive 
-  * added (for now undocumented) ''textpos'' argument to the various forest functions 
-  * added a new dataset (''dat.graves2010'') 
-  * added more tests 
- 
-==== Version 2.1-0 (2019-05-13) ==== 
- 
-  * added ''formula()'' method for objects of class ''rma'' 
-  * ''llplot()'' now also allows for ''measure="GEN"''; also, the documentation and y-axis label have been corrected to indicate that the function plots likelihoods (not log likelihoods) 
-  * ''confint.rma.mv()'' now returns an object of class ''list.confint.rma'' when obtaining CIs for all variance and correlation components of the model; added corresponding ''print.list.confint.rma()'' function 
-  * moved ''tol'' argument in ''permutest()'' to ''control'' and renamed the argument to ''comptol'' 
-  * added ''PMM'' and ''GENQM'' estimators in rma.uni() 
-  * added ''vif()'' function to get variance inflation factors 
-  * added ''.glmulti'' object for making the interaction with glmulti easier 
-  * added ''reporter()'' and ''reporter.rma.uni()'' for dynamically generating analysis reports for objects of class ''rma.uni'' 
-  * output is now styled/colored when ''crayon'' package is loaded (this only works on a 'proper' terminal with color support; also works in RStudio) 
-  * overhauled ''plot.gosh.rma()''; when ''out'' is specified, it now shows two distributions, one for the values when the outlier is included and one for the values when for outlier is excluded; dropped the ''hcol''argument and added ''border'' argument 
-  * refactored ''influence.rma.uni()'' to be more consistent internally with other functions; ''print.infl.rma.uni()'' and ''plot.infl.rma.uni()'' adjusted accordingly; functions ''cooks.distance.rma.uni()'', ''dfbetas.rma.uni()'', and ''rstudent.rma.uni()'' now call ''influence.rma.uni()'' for the computations 
-  * ''rstudent.rma.uni()'' now computes the SE of the deleted residuals in such a way that it will yield identical results to a mean shift outlier model even when that model is fitted with ''test="knha"'' 
-  * ''rstandard.rma.uni()'' gains ''type'' argument, and can now also compute conditional residuals (it still computes marginal residuals by default) 
-  * ''cooks.distance.rma.mv()'' gains ''cluster'' argument, so that the Cook's distances can be computed for groups of estimates 
-  * ''cooks.distance.rma.mv()'' gains ''parallel'', ''ncpus'', and ''cl'' arguments and can now make use of parallel processing 
-  * ''cooks.distance.rma.mv()'' should be faster by using the estimates from the full model as starting values when fitting the models with the ith study/cluster deleted from the dataset 
-  * ''cooks.distance.rma.mv()'' gains ''reestimate'' argument; when set to ''FALSE'', variance/correlation components are not reestimated 
-  * ''rstandard.rma.mv()'' gains ''cluster'' argument for computing cluster-level multivariate standardized residuals 
-  * added ''rstudent.rma.mv()'' and ''dfbetas.rma.mv()'' 
-  * smarter matching of elements in ''newmods'' (when using a named vector) in ''predict()'' that also works for models with interactions (thanks to Nicole Erler for pointing out the problem) 
-  * ''rma.uni()'' and ''rma.mv()'' no longer issue (obvious) warnings when user constrains ''vi'' or ''V'' to 0 (i.e., ''vi=0'' or ''V=0'', respectively) 
-  * ''rma.mv()'' does more intelligent filtering based on ''NAs'' in ''V'' matrix 
-  * ''rma.mv()'' now ensures strict symmetry of any (var-cov or correlation) matrices specified via the ''R'' argument 
-  * fixed ''rma.mv()'' so checks on ''R'' argument run as intended; also fixed an issue when multiple formulas with slashes are specified via ''random'' (thanks to Andrew Loignon for pointing out the problem) 
-  * suppressed showing calls on some warnings/errors in ''rma.mv()'' 
-  * ''rma.mv()'' now allows for a continuous-time autoregressive random effects structure (''struct="CAR"'') and various spatial correlation structures (''struct="SPEXP"'', ''"SPGAU"'', ''"SPLIN"'', ''"SPRAT"'', and ''"SPSPH"'') 
-  * ''rma.mv()'' now allows for ''struct="GEN"'' which models correlated random effects for any number of predictors, including continuous ones (i.e., this allows for 'random slopes') 
-  * in the various ''forest()'' functions, when ''options(na.action="na.pass")'' or ''options(na.action="na.exclude")'' and an annotation contains ''NA'', this is now shown as a blank (instead of ''NA [NA, NA]'') 
-  * the various ''forest()'' and ''addpoly()'' functions gain a ''fonts'' argument 
-  * the various ''forest()'' functions gain a ''top'' argument 
-  * the various ''forest()'' functions now show correct point sizes when the weights of the studies are exactly the same 
-  * ''forest.cumul.rma()'' gains a ''col'' argument 
-  * ''funnel.default()'' and ''funnel.rma()'' can now take vectors as input for the ''col'' and ''bg'' arguments (and also for ''pch''); both functions also gain a ''legend'' argument 
-  * ''addpoly()'' functions can now also show prediction interval bounds 
-  * removed 'formula interface' from ''escalc()''; until this actually adds some kind of extra functionality, this just makes ''escalc()'' more confusing to use 
-  * ''escalc()'' can now compute the coefficient of variation ratio and the variability ratio for pre-post or matched designs (''"CVRC"'', ''"VRC"'') 
-  * ''escalc()'' does a bit more housekeeping 
-  * added (currently undocumented) arguments ''onlyo1'', ''addyi'', and ''addvi'' to ''escalc()'' that allow for more flexibility when computing certain bias corrections and when computing sampling variances for measures that make use of the ''add'' and ''to'' arguments 
-  * ''escalc()'' now sets ''add=0'' for measures where the use of such a bias correction makes little sense; this applies to the following measures: ''"AS"'', ''"PHI"'', ''"RTET"'', ''"IRSD"'', ''"PAS"'', ''"PFT"'', ''"IRS"'', and ''"IRFT"''; one can still force the use of the bias correction by explicitly setting the ''add'' argument to some non-zero value 
-  * added ''clim'' argument to ''summary.escalc()'' 
-  * added ''ilim'' argument to ''trimfill()'' 
-  * ''labbe()'' gains ''lty'' argument 
-  * ''labbe()'' now (invisibly) returns a data frame with the coordinates of the points that were drawn (which may be useful for manual labeling of points in the plot) 
-  * added a print method for ''profile.rma'' objects 
-  * ''profile.rma.mv()'' now check whether any of the profiled log-likelihood values is larger than the log-likelihood of the fitted model (using numerical tolerance given by ''lltol'') and issues a warning if so 
-  * ''profile.rma.uni()'', ''profile.rma.mv()'', and ''plot.profile.rma()'' gain ''cline'' argument; ''plot.profile.rma()'' gains ''xlim'', ''ylab'', and ''main'' arguments 
-  * fixed an issue with ''robust.rma.mv()'' when the model was fitted with ''sparse=TRUE'' (thanks to Roger Martineau for noting the problem) 
-  * various method functions (''fitted()'', ''resid()'', ''predict()'', etc.) behave in a more consistent manner when model omitted studies with missings 
-  * ''predict.rma()'' gains ''vcov'' argument; when set to ''TRUE'', the variance-covariance matrix of the predicted values is also returned 
-  * ''vcov.rma()'' can now also return the variance-covariance matrix of the fitted values (''type="fitted"'') and the residuals (''type="resid"'') 
-  * added ''`$<-`'' and ''as.matrix()'' methods for ''list.rma'' objects 
-  * fixed error in ''simulate.rma()'' that would generate too many samples for ''rma.mv'' models 
-  * added undocumented argument ''time'' to all model fitting functions; if set to ''TRUE'', the model fitting time is printed 
-  * added more tests (also for parallel operations); also, all tests updated to use proper tolerances instead of rounding 
-  * reorganized the documentation a bit 
  
 ==== Older Versions ==== ==== Older Versions ====
updates.txt · Last modified: 2024/03/29 09:58 by Wolfgang Viechtbauer