Fit a linear model with multiple group fixed effects (old interface)
..oldfelm(
formula,
data,
exactDOF = FALSE,
subset,
na.action,
contrasts = NULL,
...
)
an object of class '"formula"' (or one that can be coerced to that class): a symbolic description of the model to be fitted. Similarly to 'lm'. See Details.
a data frame containing the variables of the model.
logical. If more than two factors, the degrees of freedom
used to scale the covariance matrix (and the standard errors) is normally
estimated. Setting exactDOF=TRUE
causes felm
to attempt to
compute it, but this may fail if there are too many levels in the factors.
exactDOF='rM'
will use the exact method in
Matrix::rankMatrix()
, but this is slower. If neither of these methods
works, it is possible to specify exactDOF='mc'
, which utilizes a
Monte-Carlo method to estimate the expectation E(x' P x) = tr(P), the trace
of a certain projection, a method which may be more accurate than the
default guess.
If the degrees of freedom for some reason are known, they can be specified
like exactDOF=342772
.
an optional vector specifying a subset of observations to be used in the fitting process.
a function which indicates what should happen when the data
contain NA
s. The default is set by the na.action
setting of
options
, and is na.fail
if that is unset. The 'factory-fresh'
default is na.omit
. Another possible value is NULL
, no
action. na.exclude
is currently not supported.
an optional list. See the contrasts.arg
of
model.matrix.default
.
other arguments.
cmethod
character. Which clustering method to use. Known
arguments are 'cgm'
(the default), 'cgm2'
(or 'reghdfe'
,
its alias). These alternate methods will generally
yield equivalent results, except in the case of multiway clustering with few
clusters along at least one dimension.
keepX
logical. To include a copy of the expanded data matrix in
the return value, as needed by bccorr()
and fevcov()
for proper limited mobility bias correction.
keepCX
logical. Keep a copy of the centred expanded data matrix
in the return value. As list elements cX
for the explanatory
variables, and cY
for the outcome.
keepModel
logical. Keep a copy of the model frame.
nostats
logical. Don't include covariance matrices in the
output, just the estimated coefficients and various descriptive information.
For IV, nostats
can be a logical vector of length 2, with the last
value being used for the 1st stages.
psdef
logical. In case of
multiway clustering, the method of Cameron, Gelbach and Miller may yield a
non-definite variance matrix. Ordinarily this is forced to be semidefinite
by setting negative eigenvalues to zero. Setting psdef=FALSE
will
switch off this adjustment. Since the variance estimator is asymptotically
correct, this should only have an effect when the clustering factors have
very few levels.
kclass
character. For use with instrumental variables. Use a
k-class estimator rather than 2SLS/IV. Currently, the values 'nagar', 'b2sls', 'mb2sls', 'liml'
are accepted, where the names are from
Kolesar et al (2014), as well as a numeric value for the 'k' in
k-class. With kclass='liml'
, felm
also accepts the argument
fuller=<numeric>
, for using a Fuller adjustment of the
liml-estimator.
Nboot, bootexpr, bootcluster
Since felm
has quite a bit
of overhead in the creation of the model matrix, if one wants confidence
intervals for some function of the estimated parameters, it is possible to
bootstrap internally in felm
. That is, the model matrix is resampled
Nboot
times and estimated, and the bootexpr
is evaluated
inside an sapply
. The estimated coefficients and the left hand
side(s) are available by name. Any right hand side variable x
is
available by the name var.x
. The "felm"
-object for each
estimation is available as est
. If a bootcluster
is specified
as a factor, entire levels are resampled. bootcluster
can also be a
function with no arguments, it should return a vector of integers, the rows
to use in the sample. It can also be the string 'model', in which case the
cluster is taken from the model. bootexpr
should be an expression,
e.g. like quote(x/x2 * abs(x3)/mean(y))
. It could be wise to specify
nostats=TRUE
when bootstrapping, unless the covariance matrices are
needed in the bootstrap. If you need the covariance matrices in the full
estimate, but not in the bootstrap, you can specify it in an attribute
"boot"
as nostats=structure(FALSE, boot=TRUE)
.
iv, clustervar
deprecated. These arguments will be removed at
a later time, but are still supported in this field. Users are
STRONGLY encouraged to use multipart formulas instead. In
particular, not all functionality is supported with the deprecated syntax;
iv-estimations actually run a lot faster if multipart formulas are used, due
to new algorithms which I didn't bother to shoehorn in place for the
deprecated syntax.