- Calculates the rank of matrix X based on singular value decomposition instead of QR decomposition. This is more efficient and numerically stable.
- Fixes and expands the 'weights' argument in the
fe*()
functions to allow for different types of weights. The default is stillNULL
(i.e., all weights equal to 1). The argument now admits weights passed asweights = ~cyl
,weights = mtcars$cyl
, orw <- mtcars$cyl; weights = w
.
- Allows to estimate models without fixed effects.
- Fixes the
tidy()
method for linear models (felm
class). Now it does not require to load thetibble
package to work. - Adds a wrapper to present multiple models into a single table with the option to export to LaTeX.
- Implements Irons and Tuck acceleration for fast convergence.
- Fixes a minor uninitialized variable in the C++ code used for a conditional check.
-
First CRAN version
-
Refactored functions to avoid data copies:
- center variables
- crossprod
- GLM and LM fit
- get alpha
- group sums
- mu eta
- variance
-
iter_center_max
anditer_inner_max
now can be modified infeglm_control()
.
- Dedicated functions for linear models to avoid the overhead of running the GLM function with a Gaussian link.
- The predict method now allows to pass new data to predict the outcome.
- Fully documented code and tests according to rOpenSci standards.
- Moves all the heavy computation to C++ using Armadillo and it exports the results to R. Previously, there were multiple data copies between R and C++ that added overhead to the computations.
- The previous versions returned MX by default, now it has to be specified.
- Adds code to extract the fixed effects with
felm
objects.
- Uses an O(n log(n)) algorithm to compute the Kendall correlation for the pseudo-R2 in the Poisson model.
- Using
arma::field
consistently instead ofstd::vector<std::vector<>>
for indices. - Linear algebra changes, such as using
arma::inv
instead of solvingarma::qr
for the inverse. - Replaces multiple for loops with dedicated Armadillo functions.
- Avoids for loops in the C++ code, and instead uses Armadillo's functions.
- O(n) computations in C++ access data directly by using pointers.
- Fixes notes from tidyselect regarding the use of
all_of()
. - The C++ code follows a more consistent style.
- The GH-Actions do not test gcc 4.8 anymore.
- Ungroups the data to avoid issues with the model matrix
- Uses R's C API efficiently to add a bit more of memory optimizations
- Uses Mat consistently for all matrix operations (avoids vectors)
- Reduces memory footprint ~45% by moving some computation to Armadillo's side
- Includes pseudo R2 (same as Stata) for Poisson models
- Initial CRAN submission.