Builds a regression table based on a set of user-specified models or a single model and a partitioning variable.
prepare_regression_table( df, dvs, idvs, feffects = rep("", length(dvs)), clusters = rep("", length(dvs)), models = rep("auto", length(dvs)), byvar = "", format = "html" )
df | Data frame containing the data to estimate the models on. |
---|---|
dvs | A character vector containing the variable names for the dependent variable(s). |
idvs | A character vector or a a list of character vectors containing the variable names of the independent variables. |
feffects | A character vector or a a list of character vectors containing the variable names of the fixed effects. |
clusters | A character vector or a a list of character vectors containing the variable names of the cluster variables. |
models | A character vector indicating the model types to be estimated ('ols', 'logit', or 'auto') |
byvar | A factorial variable to estimate the model on (only possible if only one model is being estimated). |
format | A character scalar that is passed on |
A list containing two items
A list containing the model results and by values if appropriate
The output of stargazer
containing the table
This is a wrapper function calling the stargazer package. Depending on whether the dependent variable
is numeric, logical or a factor with two levels, the models are estimated
using felm
(for numeric dependent variables)
or glm
(with family = binomial(link="logit")
) (for two-level factors or logical variables).
You can override this behavior by specifying the model with the models
parameter.
Multinomial logit models are not supported.
For glm
, clustered standard errors are estimated using
cluster.vcov
.
For felm
, it is being run with cmethod='reghdfe'
to make clustered standard errors consistent with Stata's 'reghdfe'.
If run with byvar
, only levels that have more observations than coefficients are estimated.
df <- data.frame(year = as.factor(floor(stats::time(datasets::EuStockMarkets))), datasets::EuStockMarkets) dvs = c("DAX", "SMI", "CAC", "FTSE") idvs = list(c("SMI", "CAC", "FTSE"), c("DAX", "CAC", "FTSE"), c("SMI", "DAX", "FTSE"), c("SMI", "CAC", "DAX")) feffects = list("year", "year", "year", "year") clusters = list("year", "year", "year", "year") t <- prepare_regression_table(df, dvs, idvs, feffects, clusters, format = "text") t$table#> [1] "" #> [2] "=========================================================" #> [3] " Dependent variable: " #> [4] " -----------------------------------" #> [5] " DAX SMI CAC FTSE " #> [6] " (1) (2) (3) (4) " #> [7] "---------------------------------------------------------" #> [8] "SMI 0.447*** -0.095 0.566***" #> [9] " (0.046) (0.088) (0.107) " #> [10] " " #> [11] "DAX 0.864*** 0.664*** -0.188 " #> [12] " (0.169) (0.141) (0.180) " #> [13] " " #> [14] "CAC 0.735*** -0.204 0.188 " #> [15] " (0.111) (0.218) (0.102) " #> [16] " " #> [17] "FTSE -0.124 0.722*** 0.112 " #> [18] " (0.125) (0.060) (0.075) " #> [19] " " #> [20] "---------------------------------------------------------" #> [21] "Estimator ols ols ols ols " #> [22] "Fixed effects year year year year " #> [23] "Std. errors clustered year year year year " #> [24] "Observations 1,860 1,860 1,860 1,860 " #> [25] "R2 0.994 0.995 0.981 0.989 " #> [26] "Adjusted R2 0.994 0.995 0.981 0.989 " #> [27] "=========================================================" #> [28] "Note: *p<0.1; **p<0.05; ***p<0.01"t <- prepare_regression_table(df, "DAX", c("SMI", "CAC", "FTSE"), byvar="year", format = "text") print(t$table)#> [1] "" #> [2] "==================================================================================================================================" #> [3] " Dependent variable: " #> [4] " ------------------------------------------------------------------------------------------------------------" #> [5] " DAX " #> [6] " Full Sample 1991 1992 1993 1994 1995 1996 1997 1998 " #> [7] " (1) (2) (3) (4) (5) (6) (7) (8) (9) " #> [8] "----------------------------------------------------------------------------------------------------------------------------------" #> [9] "SMI 0.493*** 0.634*** -0.283*** 0.445*** -0.265*** 0.333*** 0.189*** 0.258*** 0.244*** " #> [10] " (0.015) (0.068) (0.056) (0.021) (0.039) (0.043) (0.020) (0.026) (0.043) " #> [11] " " #> [12] "CAC 0.496*** -0.052 0.952*** 0.516*** 0.721*** 0.304*** 0.577*** 1.019*** 1.182*** " #> [13] " (0.015) (0.045) (0.026) (0.033) (0.052) (0.060) (0.039) (0.075) (0.054) " #> [14] " " #> [15] "FTSE -0.017 0.066 -0.069** 0.134*** -0.085** 0.017 0.389*** 0.195*** -0.378*** " #> [16] " (0.021) (0.046) (0.035) (0.040) (0.039) (0.049) (0.027) (0.045) (0.045) " #> [17] " " #> [18] "Constant -175.946*** 458.772*** 575.676*** -688.784*** 1,623.337*** 567.057*** -803.680*** -1,353.434*** 1,146.634***" #> [19] " (44.666) (72.607) (72.806) (56.941) (65.786) (105.476) (68.069) (110.585) (174.146) " #> [20] " " #> [21] "----------------------------------------------------------------------------------------------------------------------------------" #> [22] "Estimator ols ols ols ols ols ols ols ols ols " #> [23] "Fixed effects None None None None None None None None None " #> [24] "Std. errors clustered No No No No No No No No No " #> [25] "Observations 1,860 131 260 260 260 260 260 260 169 " #> [26] "R2 0.990 0.669 0.850 0.973 0.560 0.720 0.932 0.964 0.978 " #> [27] "Adjusted R2 0.990 0.661 0.848 0.973 0.555 0.717 0.931 0.964 0.978 " #> [28] "==================================================================================================================================" #> [29] "Note: *p<0.1; **p<0.05; ***p<0.01"