NEWS | R Documentation |
News for R Package FENmlm
Changes in version 2.4.3 (2023-08-21)
Change the maintainer's email address.
Changes in version 2.4.2 (2019-05-16)
Bug fixes
When logit/negbin estimation with 2+ clusters and 2+ cores was made, if the user asked to stop the process, R could crash: now corrected.
Now dates can be used as cluster variables.
Small bug that prevented the obtention of the right cluster-coefficients for the Poisson and Gaussian models with 2 clusters (important only for small samples).
For 2+ cluster convergence, one rare problem could appear because of numerical precision. Corrected.
Other
Better OpenMP handling.
New convergence criterion that better handles large number cases.
More precise warning messages.
Modification of the trade data: now the variable Euros is scaled in million euros.
Changes in version 2.4.1 (2019-02-25)
Vignette
Correction of a bug introduced after the modification of the
getFE
function.
Changes in version 2.4 (2019-02-07)
Major changes
Major improvement of the internal code. All functions relating to the fixed-effects have been ported to c++, significantly improving performance (both in computing time and memory usage).
Other improvements
In the
print
method, now the BIC and likelihood numbers are properly aligned.[res2table] The titles of each column are more consistent.
[femlm] New controls to check that the formula given by the user is valid and can be evaluated.
[femlm] Better controls when using
na.rm = TRUE
.[res2tex] Argument “append” has been superseded by “replace” for improved clarity (the former can still be used though).
Function getFE
Now
getFE
returns a list of simple vectors (the fixed-effects on each dimension) instead offemlm.cluster
objects.The
print
method has been superseded by asummary
method.
Bug fixes
[femlm] For estimations with fixed-effects only (no variable), the print method did not work. Now corrected.
[femlm] For estimations in Poisson with 2 fixed-effects, when convergence was "difficult", a bug could emerge. Now corrected.
[femlm] Bug when there were NAs in the data and a factor variable in the right hand side.
[print.femlm] For estimations without variables (only the fixed-effects), the print method now works properly.
[diagnostic] Now function
diagnostic
works properly when there is a variable that is factored in the formula (i.e. as.factor(var) is applied) and not in the fixed-effect part.
Changes in version 2.3.1 (2018-12-06)
New argument
[femlm] Function
femlm()
has the new argumentshowWarning
whose default isTRUE
. IfFALSE
, then warnings relating to a) the number of NA values, b) the clusters removed from estimation and c) the convergence state, are not prompted anymore.[res2tex] The new argument
powerBelow
controls the display of coefficients/standard-errors of low value in Latex. For values lower than10**(powerBelow+1)
the display in Latex is nowx.xx $\times 10^{pow}$
, for example0.0000456
would be displayed as4.56 $\times 10^{-5}$
.
Improvements
Function
diagnostic()
now finds more involved collinearity cases.Function res2tex now provides a “nicer” display of coefficients/standard-errors.
Bug fixes
Function
diagnostic()
did not work when some observations were removed from the estimation. This is now corrected.[femlm] For 3+ clusters, when finding the cluster coefficients was ‘difficult’, there was a bug. Now corrected.
[femlm] Now whenever the data of an estimation contains NA,
na.rm=TRUE
and no fixed-effects are used, the observations removed are correctly returned in the objectobsRemoved
. This was causing a bug insummary
with custom clustered standard errors.
Changes in version 2.3 (2018-11-15)
New arguments
Argument “na.rm” is introduced. If the variables necessary for the estimation contain NAs and
na.rm = TRUE
, then all observations containing NA are removed prior to estimation and a warning message is raised detailing the number of observations removed. By default, if the necessary variables contain NA, an error is raised.
Deprecated arguments
Argument “useAcc” is removed since now the acceleration algorithm is controlled dynamically.
Improvements
Improved algorithm to obtain the cluster coefficients for 3+ clusters. For difficult cases, convergence is faster.
Now the acceleration algorithm (to get the cluster coefficients) is set up dynamically. Increases convergence speed overall.
When there is no acceleration, the algorithm converges faster (for 2+ clusters).
Important improvement of the algorithm getting the derivatives of the cluster coefficients. Convergence is fatser overall, especially for difficult cases.
Algorithm has been improved when factor variables are used as clusters.
Update method is now faster when using the same clusters and family.
Control
Better errors messages regarding standard-errors clustering.
Better error messages when a cluster variable is not in the data.
Amelioration of function
diagnostic
.
Vignette
New examples regarding the clustering of standard-errors.
Changes in version 2.2.2 (2018-09-24)
Bug Fixes
[femlm/cores, reported by Valerio Leone Sciabolazza] Multi-core estimations did not work anymore since version 2.2.0. This has been corrected.
New arguments
Arguments ‘itermax.cluster’ and ‘itermax.deriv’ are added to the function femlm. They control the number of iterations in the step used to obtain the cluster coefficients and the step used to obtain the derivatives of the cluster coefficients.
Improvements
For 2+ clusters, the algorithm to obtain the cluster coefficients has been improved. Convergence is usually faster.
For the Gaussian and Poisson models, and in the case of two clusters, the algorithm getting the cluster coefficients has been improved. Now it is much more efficient when dealing with difficult cases.
For 2 clusters, the algorithm to obtain the derivative of the cluster coefficients has been improved. Convergence is usually faster for difficult cases.
Information displayed when verbose > 0 is more detailed.
Better handling of the dynamic precision leading to (usually) faster convergence.
Other
Dependence to package Matrix has been removed.
Slight modifications in the vignette.
Changes in version 2.2.1 (2018-09-15)
New features
Function diagnostic() is created to quickly spot where possible estimation problem come from. Ususally, perfect collinearity (between the explanatory variables or with the cluster variables) leads to false convergence of the optimization algorithm. This function helps figure out which variables that are collinear.
Function obs2remove() is created to obtain the observations that need to be withdrawn from a Poisson, Negative Binomial or Logit estimation (because of only 0 or 1 outcomes for some clusters). The function femlm automatically removes such observations before performing the estimation; this function simply allows the user to clean the data before the estimation is done, if needed.
Bug fix
[femlm] Correction of a bug regarding the constuction of the cluster matrix when the clusters were complex variables in the formula and some observations had to be removed.
Vignette
Bug in displaying one table of the vignette has been corrected.
Some parts of the vignette have been rewritten.
Changes in version 2.2.0 (2018-08-03)
New features
[stats.methods] Several statistics methods have been implemented: nobs, AIB, BIC, logLik, coef, fitted, residuals, formula, model.matrix, predict, vcov, confint and update.
[res2table] New arguments ‘depvar’ and ‘family’: to control whether the dependent variables (resp. model families) should be displayed.
[res2table] Now the
call
is used to produce more informative model names by default.[res2tex] New argument ‘family’ to control whether the families of the models should be displayed.
[summary/vcov] Added the possibility to cluster the standard-errors with direct reference to a cluster variable used in the estimation. Example:
summary(est, se = "cluster", cluster = "var_2")
.
Improvements
[femlm] Formulas are more robustly handled with the package Formula.
[femlm–negative binomial] Added a warning message when there is no overdispersion.
[print.femlm] Information is now displayed more compactly
Slightly faster internal functions.
Changing arguments
Some argument names in femlm have been modified for clarification:
[start => NL.start] Argument
start
now becomesNL.start
to emphasize that it concerns the non-linear in parameters part only. This is the same for argumentstart.init
which becomesNL.start.init
.[debug => verbose] Argument
debug
of type logical now becomesverbose
of type integer which can take values 0, 1 or 2 depending of the level of information to be reported.
Documentation
Improved examples.
A new reference is added which details the theory behind the method.
Bug
[femlm–data] Now the function properly handles matrices in argument ‘data’.
Miscellaneous
OpenMP is handled differently (now used conditionnaly).
CITATION is added.
Some items in the femlm output have changed names to fit the
lm/glm
vocabuary more closely. This concerns: (old name => new name) coef => coefficients, expected.predictor => fitted.values, k => nparams, resids => residuals.A demo has been added.
Warnings have been suppressed when the clustering of standard-errors was equivocal. They have been replaced by explicit mention of the cluster variables in the type of the standard-errors.
Changes in version 2.1.2
Improvements
[femlm] Improved warning messages for overfitting problems.
[femlm] Improved error-handling.
Documentation
Amelioration of the Vignette.
Changes in version 2.1.1
New features
[femlm] Added argument “precision.cluster” so that the user can set the level of precision manually (concerns the algorithm to obtain the cluster coefficients).
[summary.femlm] For one-way clustering, the argument “cluster” can now be a vector.
A print method for the fixed-effects obtained with function
getFE
has been implemented.
Documentation
A vignette has been created.
Documentation has been added for fixed-effects plotting and for a new print method.
Some examples have been updated.
Bug
[getFE] Corrected a small glitch that impeded the algorithm to find the right solution in presence of complicated cases.
[femlm] The function could not be evaluated at all when parallel::detectCores() gives NA. This has been corrected. Now when parallel::detectCores() gives NA, the number of cores cannot be set greater than 1.
Miscellaneous
[res2tex] In the exported Latex table the word ‘Cluster’ is changed to ‘Fixed-Effects’.
[summary.femlm] Using cluster=NULL does not cause problems any more.
[print.femlm] Corrected a spelling mistake.
Changes in version 2.1.0
New Features
New argument 'cores' => added multi cores with openMP. Particularly efficient for the Negative Binomial and the Logit models.
Added a fixed-point acceleration algorithm for 3+ clusters and also to obtain the derivatives.
Cluster coefficient precision is dynnamically adjusted for complex problems.
Faster matrix creation.
Other
[Design] Argument noWarning is dropped.
[Design] clearer message when clusters are removed.
[Bug] corrected undue information reporting.
[Bug] corrected important bug that made some estimations fail.
[Help] Added more accurate information on the returned objects.
Changes in version 2.0.1
[c++ code] Fixed overloading problem.
Improved help pages.
Code more robust to overfitting situations (in particular for the Logit case).
Added an acceleration algorithm to get the fixed-point for 2 clusters.
New collinearity warnings.
Changes in version 2.0
New Features
Algorithm is greatly improved.
Two new likelihood models: Negative Binomial and Gaussian.
Any number of clusters is supported.
The functions res2table/res2tex to export the results are greatly enhanced.
cluster-robust covariance: the method to compute it has been improved (more robust to rounding problems).
Computing standard errors: up to four-way clustering is supported.
New design
The function design has changed.
There is only one function called femlm that performs “normal” estimations and “non.linear” in parameters estimations when adding the argument NL.fml.
clusters can now directly be inserted in the formula without using the arument “cluster”.
Argument name change
Name change: the argument “dummy” becomes “cluster”.
Bug Fixes
Bug related to the handling of the upper and lower bounds is now corrected.