This function sets globally the default arguments of fixest estimations.
setFixest_estimation(
data = NULL,
panel.id = NULL,
fixef.rm = "perfect",
fixef.tol = 1e-06,
fixef.iter = 10000,
collin.tol = 1e-10,
lean = FALSE,
verbose = 0,
warn = TRUE,
combine.quick = NULL,
demeaned = FALSE,
mem.clean = FALSE,
glm.iter = 25,
glm.tol = 1e-08,
reset = FALSE
)
getFixest_estimation()
A data.frame containing the necessary variables to run the model. The variables of the non-linear right hand side of the formula are identified with this data.frame
names. Can also be a matrix.
The panel identifiers. Can either be: i) a one sided formula (e.g. panel.id = ~id+time
), ii) a character vector of length 2 (e.g. panel.id=c('id', 'time')
, or iii) a character scalar of two variables separated by a comma (e.g. panel.id='id,time'
). Note that you can combine variables with ^
only inside formulas (see the dedicated section in feols
).
Can be equal to "perfect" (default), "singleton", "both" or "none". Controls which observations are to be removed. If "perfect", then observations having a fixed-effect with perfect fit (e.g. only 0 outcomes in Poisson estimations) will be removed. If "singleton", all observations for which a fixed-effect appears only once will be removed. The meaning of "both" and "none" is direct.
Precision used to obtain the fixed-effects. Defaults to 1e-5
. It corresponds to the maximum absolute difference allowed between two coefficients of successive iterations. Argument fixef.tol
cannot be lower than 10000*.Machine$double.eps
. Note that this parameter is dynamically controlled by the algorithm.
Maximum number of iterations in fixed-effects algorithm (only in use for 2+ fixed-effects). Default is 10000.
Numeric scalar, default is 1e-10
. Threshold deciding when variables should be considered collinear and subsequently removed from the estimation. Higher values means more variables will be removed (if there is presence of collinearity). One signal of presence of collinearity is t-stats that are extremely low (for instance when t-stats < 1e-3).
Logical, default is FALSE
. If TRUE
then all large objects are removed from the returned result: this will save memory but will block the possibility to use many methods. It is recommended to use the arguments se
or cluster
to obtain the appropriate standard-errors at estimation time, since obtaining different SEs won't be possible afterwards.
Integer. Higher values give more information. In particular, it can detail the number of iterations in the demeaning algorithm (the first number is the left-hand-side, the other numbers are the right-hand-side variables).
Logical, default is TRUE
. Whether warnings should be displayed (concerns warnings relating to convergence state).
Logical. When you combine different variables to transform them into a single fixed-effects you can do e.g. y ~ x | paste(var1, var2)
. The algorithm provides a shorthand to do the same operation: y ~ x | var1^var2
. Because pasting variables is a costly operation, the internal algorithm may use a numerical trick to hasten the process. The cost of doing so is that you lose the labels. If you are interested in getting the value of the fixed-effects coefficients after the estimation, you should use combine.quick = FALSE
. By default it is equal to FALSE
if the number of observations is lower than 50,000, and to TRUE
otherwise.
Logical, default is FALSE
. Only used in the presence of fixed-effects: should the centered variables be returned? If TRUE
, it creates the items y_demeaned
and X_demeaned
.
Logical, default is FALSE
. Only to be used if the data set is large compared to the available RAM. If TRUE
then intermediary objects are removed as much as possible and gc
is run before each substantial C++ section in the internal code to avoid memory issues.
Number of iterations of the glm algorithm. Default is 25.
Tolerance level for the glm algorithm. Default is 1e-8
.
Logical, default to FALSE
. Whether to reset all values.
The function getFixest_estimation
returns the currently set global defaults.
#
# Example: removing singletons is FALSE by default
#
# => changing this default
# Let's create data with singletons
base = iris
names(base) = c("y", "x1", "x2", "x3", "species")
base$fe_singletons = as.character(base$species)
base$fe_singletons[1:5] = letters[1:5]
res = feols(y ~ x1 + x2 | fe_singletons, base)
res_noSingle = feols(y ~ x1 + x2 | fe_singletons, base, fixef.rm = "single")
#> NOTE: 5 fixed-effect singletons were removed (5 observations).
# New defaults
setFixest_estimation(fixef.rm = "single")
res_newDefault = feols(y ~ x1 + x2 | fe_singletons, base)
#> NOTE: 5 fixed-effect singletons were removed (5 observations).
etable(res, res_noSingle, res_newDefault)
#> res res_noSingle res_newDefault
#> Dependent Var.: y y y
#>
#> x1 0.4274* (0.1409) 0.4274 (0.1615) 0.4274 (0.1615)
#> x2 0.7774*** (0.1099) 0.7774* (0.1260) 0.7774* (0.1260)
#> Fixed-Effects: ------------------ ---------------- ----------------
#> fe_singletons Yes Yes Yes
#> _______________ __________________ ________________ ________________
#> S.E.: Clustered by: fe_singletons by: fe_singlet.. by: fe_singlet..
#> Observations 150 145 145
#> R2 0.86452 0.85729 0.85729
#> Within R2 0.64201 0.64201 0.64201
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Resetting the defaults
setFixest_estimation(reset = TRUE)