FixedEffectModels.parse_fixedeffect
— Methodparse_fixedeffect(data, formula::FormulaTerm)
parse_fixedeffect(data, ts::NTuple{N, AbstractTerm})
Construct any FixedEffect
specified with a FixedEffectTerm
.
Returns
Vector{FixedEffect}
: a collection of allFixedEffect
s constructed.Vector{Symbol}
: names assigned to the fixed effect estimates (can be used as column names).Vector{Symbol}
: names of original fixed effects.FormulaTerm
orNTuple{N, AbstractTerm}
:formula
orts
without any term related to fixed effects (an intercept may be explicitly omitted if necessary).
FixedEffectModels.partial_out
— MethodPartial out variables in a Dataframe
Arguments
df
: A tableformula::FormulaTerm
: A formula created using@formula
add_mean::Bool
: Should the initial mean added to the returned variable?method::Symbol
: A symbol for the method. Default is :cpu. Alternatively, :gpu requiresCuArrays
. In this case, use the optiondouble_precision = false
to useFloat32
.maxiter::Integer
: Maximum number of iterationsdouble_precision::Bool
: Should the demeaning operation use Float64 rather than Float32? Default to true.tol::Real
: Tolerancealign::Bool
: Should the returned DataFrame align with the original DataFrame in case of missing values? Default to true.
Returns
::DataFrame
: a dataframe with as many columns as there are dependent variables and as many rows as the original dataframe.::Vector{Int}
: a vector of iterations for each column::Vector{Bool}
: a vector of success for each column
Details
partial_out
returns the residuals of a set of variables after regressing them on a set of regressors. The syntax is similar to reg
- but it accepts multiple dependent variables. It returns a dataframe with as many columns as there are dependent variables and as many rows as the original dataframe. The regression model is estimated on only the rows where none of the dependent variables is missing. Finally, with the option add_mean = true
, the mean of the initial variable is added to the residuals.
Examples
using RDatasets, DataFrames, FixedEffectModels, Gadfly
df = dataset("datasets", "iris")
result = partial_out(df, @formula(SepalWidth + SepalLength ~ fe(Species)), add_mean = true)
plot(layer(result[1], x="SepalWidth", y="SepalLength", Stat.binmean(n=10), Geom.point),
layer(result[1], x="SepalWidth", y="SepalLength", Geom.smooth(method=:lm)))
FixedEffectModels.reg
— FunctionEstimate a linear model with high dimensional categorical variables / instrumental variables
Arguments
df
: a TableFormulaTerm
: A formula created using@formula
CovarianceEstimator
: A method to compute the variance-covariance matrix
Keyword arguments
contrasts::Dict = Dict()
An optional Dict of contrast codings for each categorical variable in theformula
. Any unspecified variables will haveDummyCoding
.weights::Union{Nothing, Symbol}
A symbol to refer to a columns for weightssave::Symbol
: Should residuals and eventual estimated fixed effects saved in a dataframe? Default to:none
Usesave = :residuals
to only save residuals,save = :fe
to only save fixed effects,save = :all
for both. Once saved, they can then be accessed usingresiduals(m)
orfe(m)
wherem
is the object returned by the estimation. The returned DataFrame is automatically aligned with the original DataFrame.method::Symbol
: A symbol for the method. Default is :cpu. Alternatively, use :CUDA or :Metal (in this case, you need to import the respective package before importing FixedEffectModels)nthreads::Integer
Number of threads to use in the estimation. Ifmethod = :cpu
, defaults toThreads.nthreads()
. Otherwise, defaults to 256.double_precision::Bool
: Should the demeaning operation use Float64 rather than Float32? Default to true ifmethod =:cpu' and false if
method = :CUDAor
method = :Metal`.tol::Real
Tolerance. Default to 1e-6.maxiter::Integer = 10000
: Maximum number of iterationsdrop_singletons::Bool = true
: Should singletons be dropped?progress_bar::Bool = true
: Should the regression show a progressbar?first_stage::Bool = true
: Should the first-stage F-stat and p-value be computed?subset::Union{Nothing, AbstractVector} = nothing
: select specific rows.
Details
Models with instruments variables are estimated using 2SLS. reg
tests for weak instruments by computing the Kleibergen-Paap rk Wald F statistic, a generalization of the Cragg-Donald Wald F statistic for non i.i.d. errors. The statistic is similar to the one returned by the Stata command ivreg2
.
Examples
using RDatasets, FixedEffectModels
df = dataset("plm", "Cigar")
reg(df, @formula(Sales ~ NDI + fe(State) + fe(State)&Year))
reg(df, @formula(Sales ~ NDI + fe(State)*Year))
reg(df, @formula(Sales ~ (Price ~ Pimin)))
reg(df, @formula(Sales ~ NDI), Vcov.robust())
reg(df, @formula(Sales ~ NDI), Vcov.cluster(:State))
reg(df, @formula(Sales ~ NDI), Vcov.cluster(:State , :Year))
df.YearC = categorical(df.Year)
reg(df, @formula(Sales ~ YearC), contrasts = Dict(:YearC => DummyCoding(base = 80)))
Alias
reg
is an alias for the more typical StatsAPI fit
using RDatasets, FixedEffectModels
df = dataset("plm", "Cigar")
fit(FixedEffectModel, @formula(Sales ~ NDI + fe(State) + fe(State)&Year), df)