Nothing
## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----echo=TRUE----------------------------------------------------------------
library(FENmlm)
data(trade)
## ---- echo=FALSE, results='asis'----------------------------------------------
tab = head(trade)
knitr::kable(tab)
## -----------------------------------------------------------------------------
gravity_results <- femlm(Euros ~ log(dist_km), trade, family = "poisson", cluster = c("Origin", "Destination", "Product", "Year"))
## -----------------------------------------------------------------------------
gravity_results <- femlm(Euros ~ log(dist_km)|Origin+Destination+Product+Year, trade)
## -----------------------------------------------------------------------------
print(gravity_results)
## -----------------------------------------------------------------------------
summary(gravity_results, se = "twoway")
## -----------------------------------------------------------------------------
# Equivalent ways of clustering the SEs:
# - using the vector:
summary(gravity_results, se = "cluster", cluster = trade$Product)
# - by reference (only possible because Product has been used as a cluster in the estimation):
summary(gravity_results, se = "cluster", cluster = "Product")
## -----------------------------------------------------------------------------
gravity_simple = femlm(Euros ~ log(dist_km), trade)
summary(gravity_simple, se = "twoway", cluster = trade[, c("Origin", "Destination")])
## -----------------------------------------------------------------------------
gravity_results_negbin <- femlm(Euros ~ log(dist_km)|Origin+Destination+Product+Year, trade, family = "negbin")
## -----------------------------------------------------------------------------
gravity_results_gaussian <- femlm(log(Euros) ~ log(dist_km)|Origin+Destination+Product+Year, trade, family = "gaussian")
## ---- eval=FALSE--------------------------------------------------------------
# res2table(gravity_results, gravity_results_negbin, gravity_results_gaussian, se = "twoway", subtitles = c("Poisson", "Negative Binomial", "Gaussian"))
## ---- echo=FALSE, results='asis'----------------------------------------------
tab = res2table(gravity_results, gravity_results_negbin, gravity_results_gaussian, se = "twoway", subtitles = c("Poisson", "Negative Binomial", "Gaussian"))
# problem to display the second empty line in markdown
knitr::kable(tab[-2, ])
## -----------------------------------------------------------------------------
gravity_subcluster = list()
all_clusters = c("Year", "Destination", "Origin", "Product")
for(i in 1:4){
gravity_subcluster[[i]] = femlm(Euros ~ log(dist_km), trade, cluster = all_clusters[1:i])
}
## ---- eval=FALSE--------------------------------------------------------------
# res2table(gravity_subcluster, se = "twoway", cluster = trade[, c("Origin", "Destination")])
## ---- echo=FALSE, results='asis'----------------------------------------------
tab = res2table(gravity_subcluster, se = "twoway", cluster = trade[, c("Origin", "Destination")])
knitr::kable(tab)
## -----------------------------------------------------------------------------
res2tex(gravity_subcluster, se = "twoway", cluster = trade[, c("Origin", "Destination")])
## ---- eval=FALSE--------------------------------------------------------------
# # we set the dictionary once and for all
# myDict = c("log(dist_km)" = "$\\ln (Distance)$", "(Intercept)" = "Constant")
# # 1st export: we change the signif code and drop the intercept
# res2tex(gravity_subcluster, signifCode = c("a" = 0.01, "b" = 0.05), drop = "Int", dict = myDict, file = "Estimation Table.tex", append = FALSE, title = "First export -- normal Standard-errors")
# # 2nd export: clustered S-E + distance as the first coefficient
# res2tex(gravity_subcluster, se = "cluster", cluster = trade$Product, order = "dist", dict = myDict, file = "Estimation Table.tex", title = "Second export -- clustered standard-errors (on Product variable)")
#
## -----------------------------------------------------------------------------
fixedEffects <- getFE(gravity_results)
summary(fixedEffects)
## -----------------------------------------------------------------------------
fixedEffects$Year
## ---- fig.width=7-------------------------------------------------------------
plot(fixedEffects)
## -----------------------------------------------------------------------------
# Generating data:
n = 1000
# x and y: two positive random variables
x = rnorm(n, 1, 5)**2
y = rnorm(n, -1, 5)**2
# E(z) = 2*x + 3*y and some noise
z = rpois(n, 2*x + 3*y) + rpois(n, 1)
base = data.frame(x, y, z)
## -----------------------------------------------------------------------------
result_NL = femlm(z~0, base, NL.fml = ~ log(a*x + b*y), NL.start = list(a=1, b=1), lower = list(a=0, b=0))
## -----------------------------------------------------------------------------
print(result_NL)
## -----------------------------------------------------------------------------
# the class of each observation
id = sample(20, n, replace = TRUE)
base$id = id
# the vector of fixed-effects
gamma = rnorm(20)**2
# the new vector z_bis
z_bis = rpois(n, gamma[id] * (2*x + 3*y)) + rpois(n, 1)
base$z_bis = z_bis
## -----------------------------------------------------------------------------
# we add the fixed-effect in the formula
result_NL_fe = femlm(z_bis~0|id, base, NL.fml = ~ log(2*x + b*y), NL.start = list(b=1), lower = list(b=0))
# The coef should be around 3
coef(result_NL_fe)
# the gamma and the exponential of the fixed-effects should be similar
rbind(gamma, exp(getFE(result_NL_fe)$id))
## ---- eval = FALSE------------------------------------------------------------
# # Sample of results:
# # 1 core: 2.7s
# system.time(femlm(Euros ~ log(dist_km)|Origin+Destination+Product+Year, trade, family = "negbin", cores = 1))
# # 2 cores: 1.74s
# system.time(femlm(Euros ~ log(dist_km)|Origin+Destination+Product+Year, trade, family = "negbin", cores = 2))
# # 4 cores: 1.31s
# system.time(femlm(Euros ~ log(dist_km)|Origin+Destination+Product+Year, trade, family = "negbin", cores = 4))
## -----------------------------------------------------------------------------
base_coll = trade
base_coll$constant_variable = 1
res <- femlm(Euros ~ log(dist_km) + constant_variable|Origin+Destination+Product+Year, base_coll)
diagnostic(res)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.