version 3.0.1 (July 10 2017):
- Users should now be able to run the text-based Rbrul and the Shiny app
version of Rbrul (still under construction) from the same starting point.
version 2.3.1 (May 9 2016):
- Changed output of "deviance" to "log-likelihood" which should be more
useful and corresponds to the logLik() function. (The output of the
deviance() function is usually -2 * log-likelihood, except for linear
fixed-effects models where it is the residual sum of squares.)
version 2.3.1 (May 5 2016):
- Changed error handling during loading/updating of packages. This is now
set to ignore warnings, which should allow Rbrul to work on Mac systems
running R 3.2.4 even though some packages were "built under" R 3.2.5.
version 2.3 (October 4 2015):
- There may be times when you do not wish to exclude [tokens with] a factor
from your entire analysis, but you do want to exclude [that factor] from
the results of a given factor group." - Goldvarb 2001 Users' Manual
Since Rbrul was created in 2008, users have asked about the possibility of
this type of partial exclusion. Until now, this capability has continued to
be available only in Goldvarb. While Goldvarb is still the only way to
achieve more complex exclusions (for example, excluding tokens from the
results of one factor group based on the values of another factor group),
Rbrul now emulates the Goldvarb "slash operator" in its primary usage.
If one or more tokens have "/" (slash) for a certain predictor (factor
group), then regardless of the value(s) of the dependent variable for those
tokens, the log-odds coefficient for the slashed group is forced to zero
(factor weight .500), although this is reported as "NA" for the sake of
clarity. In effect, these tokens are ignored in the calculation of the
other results for that predictor, while being included normally in the
calculations for the other predictors.
I have not tested this new function very thoroughly, only making sure that
the output matched Goldvarb on a few simple models. So please give me
feedback (danielezrajohnson@gmail.com) if it seems to have problems, or
even if it seems to be working properly.
version 2.29 (June 30 2015):
- now using the term "overall mean" instead of "grand mean" for continuous
dependent variables. The term "grand mean" is sometimes used to refer to
a mean of means, while "overall mean" more clearly refers to what Rbrul
has always reported: the overall mean value of the dependent variable.
- adapting work by Jeroen Claes, added the following to the model output:
1) the number of observations (tokens) in the model; 2) AICc (a modified
of Akaike's Information Criterion, recommended when the number of
observations / the number of parameters < 40); 3) Somers' Dxy, a measure
of model fit for logistic models; 4) VIF (variance inflation factor), a
measure of multicollinearity. Values above 5 (or at least above 10) are
thought to show that a predictor is highly correlated with the others.
This is not necessarily a problem, especially if the correlated variables
are control variables or nuisance variables rather than those of interest.
(These additions use the packages car and Hmisc. For VIF, instead of the
vif.mer() function, the car:vif function has been 'adapted' to handle
mixed-effects models, not necessarily correctly!).
- added a tutorial by Delano S. Lamy on using Rbrul for continuous dependent
variables. This tutorial is written in Spanish, however it can be used to
analyze data in any langauge.
- changed the calculation of R-squared to directly use the r.squaredGLMM()
function in the MuMIn package (Kamil Barton). Remember that these values
are not true R-squared values except for linear fixed-effects models.
version 2.28 (June 3 2015):
- added (under Settings) the ability to adjust the convergence tolerance
(check.conv.grad) for mixed-effects models fit by lme4. The default is .002.
Higher values may allow models to "converge" more quickly and/or without
displaying warning messages, but this does not mean they are more accurate!
version 2.27 (April 3 2015):
- changed the optimizer back to the lme4 default, currently "bobyqa". Instead
of crashing with an error message, convergence warnings now produce red
warning messages as they occur. Usually less complex models converge better.
version 2.26 (March 29 2015):
- following a 3/19/2015 message from Ben Bolker, the default (g)lmer
optimizer has been changed to "nloptwrap, as the default bobyqa optimizer
uses tolerance criteria that are probably stricter than they need to be."
Optimistically, I have removed the commands blocking the convergence checks,
meaning models that have not properly converged will no longer look OK, but
should crash with some error message.
- also removed references to "fontfamily" and "fontface" that were apparently
causing problems with the plotting subroutine.
version 2.25 (November 9 2014):
- improved compatibility with packages that may have functions with
identical names to Rbrul functions. After exiting Rbrul, the behavior of
the other functions should be restored. Certain clashes may still occur,
and running Rbrul without any (other) packages loaded may work better.
version 2.24 (July 27 2014):
- added R-squared values according to Nakagawa & Schielzeth (2013) to all types
of models. There is one R2 for the fixed effects, one for the random effects,
and a total R2 (their sum). The calculations are done with r.squaredGLMM()
from the MuMIn (multimodel inference) package written by Kamil Barton.
Logistic models use the McKelvey & Zavoina (1975) pseudo-R-squared formula.
- made it so that predictors considered as part of fixed-effect interactions
can't be random intercepts. The proper way to represent such interactions
is using random slopes. For example, a by-word random slope for age allows
for the possibility that different words change at different rates in
apparent time. At present, the variances of these random slopes (like those
for random intercepts) are not tested for significance within Rbrul.
version 2.23 (July 14 2014):
- changed the way the deviance of lme4 models is calculated and reported.
This only affects mixed models with continuous dependent variables. The
reported "deviance" for an individual model is the deviance (not the
REML criterion) calculated at the REML fit. On the other hand, when
two models are compared, they are automatically re-fit _without_ REML,
which generates slightly different deviances (and differences of deviances).
version 2.22 (March 21 2014):
- fixed a bug in how interaction coefficients were calculated/reported
by the function sumify()
- made it so the final output lists the name of the response variable
- since lme4 is producing so many convergence warnings right now, I have
suppressed these warnings. This means that some mixed-effects models
that have problems will appear to be OK.
version 2.21 (March 19 2014):
- changed the optimizer used by lmer() and glmer() to "bobyqa" following
advice that this would be better. apparently this was already switched.
never mind!
version 2.2 (February 7 2014):
- removed loading of Hmisc package, could not determine why it was needed
- added loading of Rcpp package hopefully to prevent crashing
- added setting for maxfun: maximum number of (g)lmer() function evaluations
version 2.19 (January 25 2014):
- fixed minor bugs with get.p() and discovered the sumify() function was not passing
NA's through as coefficients. Tried to repair this.
version 2.18 (November 23 2013):
- changed crosstabs() so that the result is stored as a variable, "crosstab".
This is similar to how model fits are stored as "model", "down", "up", etc.
version 2.17 (October 10 2013):
- changed get.p(), which was not working well with the new lme4 package
- the deviance reported for linear mixed models is now marked REML.deviance
- the AIC reported for linear mixed models is now marked REML.AIC
- but note that in comparing models, the ML deviance is always used
version 2.16 (September 25 2013):
- updated code to work with new lme4 package (lme4-1.0)
- linear mixed models now call lmer(...)
- logistic mixed models now call glmer(..., family = binomial)
- Rbrul will no longer work under the older versions of lme4!
version 2.15 (August 21 2013):
- fixed problems with random slopes
- instead of just "Error Message", error messages should be more informative
- updated "exclude" function to work with continuous variables
version 2.1 (July 24 2013):
- added support for random slopes
- added AIC (Akaike Information Criterion) to model output
version 2.05 (April 15 2012):
- changed way that "print.data.frame" is altered to comply with R 2.15.0
version 2.02 (November 14 2011):
- added "make partial interaction group" to Adjusting Menu
version 2.01 (September 07 2011):
- changed step.one(), step.up(), step.down() output to display "error"
(when there is an error) or "main effect" (when the main effect under
an interaction is not tested), instead of "999"
- changed "[A]" and "[D]" in model summaries to "[p-values building from null model]" and "[p-values dropping from full model]"
- fixed bug causing Rbrul to crash when all models fail to converge
version 2.0 (August 07 2011):
- fixed bug to allow changing p-value threshold for step-up and step-down
- added trim() function to test and collapse factor levels in a model
version 1.9.9.6 (January 12 2011):
- made changes to get.response() and crosstab() to prevent error with
levels of response variable, seemingly because of a change to how
variables are passed between functions?
version 1.9.9.5 (October 20 2010):
- bug in loading lme4 package fixed under R 12.0, change to warning
version 1.9.9 (August 14 2010):
- restored calculation of R-squared (for linear fixed-effects models)
and Nagelkerke pseudo-R-squared (for logistic fixed-effects models)
- restored plotting functions
- changed "an(other) pairwise interaction" to "a(nother) pairwise interaction"
- fixed bug where if "response" was the name of a data column, it would crash
version 1.9.8.5 (July 27 2010):
- redirected install.packages() to repos="http://r-forge.r-project.org".
- altered warning to suggest running on Mac only under 64-bit version.
version 1.9.8 (July 19 2010):
- replaced the text-based file loading dialog with the standard GUI using
file.choose().
- added a warning concerning a possible crash while trying to load the
package lme4 due to the temporarily unavailable binary for Mac OS X. the
user is directed to the instructions at
http://www.ling.upenn.edu/~johnson4/rbrul.html or to use rbrul(pack=F).
version 1.9.7 (Mar 28 2010):
- changed step.one() to give p-values to the predictors in a one-level analysis
by the usual drop-and-test method.
- removed comment.char="#" from the read.table() commands under "load data".
comments will now have to be in their own field in delimited files, or,
as before, separated from the token string by one or more spaces in token files.
- installed Google Analytics to track use of Rbrul. as a result, loading Rbrul
with source("http://www.danielezrajohnson.com/Rbrul.R") will now also open a
blank browser window that can be closed at any time.
versions 0.1 to 1.9.6 (2008-2010):
- developments lost in the mists of time.