Glance accepts a model object and returns a tibble::tibble() with exactly one row of model summaries. The summaries are typically goodness of fit measures, p-values for hypothesis tests on residuals, or model convergence information.

Glance never returns information from the original call to the modeling function. This includes the name of the modeling function or any arguments passed to the modeling function.

Glance does not calculate summary measures. Rather, it farms out these computations to appropriate methods and gathers the results together. Sometimes a goodness of fit measure will be undefined. In these cases the measure will be reported as NA.

Glance returns the same number of columns regardless of whether the model matrix is rank-deficient or not. If so, entries in columns that no longer have a well-defined value are filled in with an NA of the appropriate type.

# S3 method for fixest
glance(x, ...)

Arguments

x

A fixest object returned from any of the fixest estimators

...

Additional arguments passed to summary and confint. Important arguments are se and cluster. Other arguments are dof, exact_dof, forceCovariance, and keepBounded. See summary.fixest.

Note

All columns listed below will be returned, but some will be NA, depending on the type of model estimated. sigma, r.squared, adj.r.squared, and within.r.squared will be NA for any model other than feols. pseudo.r.squared will be NA for feols.

Value

A tibble::tibble() with exactly one row and columns:

adj.r.squared

Adjusted R squared statistic, which is like the R squared statistic except taking degrees of freedom into account.

AIC

Akaike's Information Criterion for the model.

BIC

Bayesian Information Criterion for the model.

logLik

The log-likelihood of the model. [stats::logLik()] may be a useful reference.

nobs

Number of observations used.

pseudo.r.squared

Like the R squared statistic, but for situations when the R squared statistic isn't defined.

r.squared

R squared statistic, or the percent of variation explained by the model. Also known as the coefficient of determination.

sigma

Estimated standard error of the residuals.

within.r.squared

R squared within fixed-effect groups.

Examples

# \donttest{ library(fixest) gravity <- feols(log(Euros) ~ log(dist_km) | Origin + Destination + Product + Year, trade) tidy(gravity)
#> # A tibble: 1 x 5 #> term estimate std.error statistic p.value #> <chr> <dbl> <dbl> <dbl> <dbl> #> 1 log(dist_km) -2.17 0.154 -14.1 8.15e-45
glance(gravity)
#> # A tibble: 1 x 9 #> r.squared adj.r.squared within.r.squared pseudo.r.squared sigma nobs AIC #> <dbl> <dbl> <dbl> <dbl> <dbl> <int> <dbl> #> 1 0.706 0.705 0.219 NA 1.74 38325 1.51e5 #> # … with 2 more variables: BIC <dbl>, logLik <dbl>
augment(gravity, trade)
#> # A tibble: 38,325 x 9 #> .rownames Destination Origin Product Year dist_km Euros .fitted .resid #> <chr> <fct> <fct> <int> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 1 LU BE 1 2007 140. 2966697 14.1 0.812 #> 2 2 BE LU 1 2007 140. 6755030 13.0 2.75 #> 3 3 LU BE 2 2007 140. 57078782 16.9 0.924 #> 4 4 BE LU 2 2007 140. 7117406 15.8 -0.0470 #> 5 5 LU BE 3 2007 140. 17379821 16.3 0.378 #> 6 6 BE LU 3 2007 140. 2622254 15.2 -0.402 #> 7 7 LU BE 4 2007 140. 64867588 17.4 0.595 #> 8 8 BE LU 4 2007 140. 10731757 16.3 -0.0937 #> 9 9 LU BE 5 2007 140. 330702 14.1 -1.37 #> 10 10 BE LU 5 2007 140. 7706 13.0 -4.02 #> # … with 38,315 more rows
## To get robust or clustered SEs, users can either: # 1) Or, specify the arguments directly in the tidy() call tidy(gravity, conf.int = TRUE, cluster = c("Product", "Year"))
#> # A tibble: 1 x 7 #> term estimate std.error statistic p.value conf.low conf.high #> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 log(dist_km) -2.17 0.0743 -29.2 2.40e-185 -2.32 -2.02
tidy(gravity, conf.int = TRUE, se = "threeway")
#> # A tibble: 1 x 7 #> term estimate std.error statistic p.value conf.low conf.high #> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 log(dist_km) -2.17 0.178 -12.2 3.44e-34 -2.52 -1.82
# 2) Feed tidy() a summary.fixest object that has already accepted these arguments gravity_summ <- summary(gravity, cluster = c("Product", "Year")) tidy(gravity_summ, conf.int = TRUE)
#> # A tibble: 1 x 7 #> term estimate std.error statistic p.value conf.low conf.high #> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 log(dist_km) -2.17 0.0743 -29.2 2.40e-185 -2.32 -2.02
# Approach (1) is preferred. ## The other fixest methods all work similarly. For example: gravity_pois <- feglm(Euros ~ log(dist_km) | Origin + Destination + Product + Year, trade) tidy(gravity_pois)
#> # A tibble: 1 x 5 #> term estimate std.error statistic p.value #> <chr> <dbl> <dbl> <dbl> <dbl> #> 1 log(dist_km) -1.53 0.116 -13.2 7.89e-40
glance(gravity_pois)
#> # A tibble: 1 x 9 #> r.squared adj.r.squared within.r.squared pseudo.r.squared sigma nobs AIC #> <dbl> <dbl> <dbl> <dbl> <dbl> <int> <dbl> #> 1 NA NA NA 0.764 NA 38325 1.40e12 #> # … with 2 more variables: BIC <dbl>, logLik <dbl>
augment(gravity_pois, trade)
#> # A tibble: 38,325 x 9 #> .rownames Destination Origin Product Year dist_km Euros .fitted .resid #> <chr> <fct> <fct> <int> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 1 LU BE 1 2007 140. 2966697 16.0 -6.06e6 #> 2 2 BE LU 1 2007 140. 6755030 15.4 1.97e6 #> 3 3 LU BE 2 2007 140. 57078782 17.4 2.00e7 #> 4 4 BE LU 2 2007 140. 7117406 16.8 -1.26e7 #> 5 5 LU BE 3 2007 140. 17379821 16.7 -1.00e4 #> 6 6 BE LU 3 2007 140. 2622254 16.0 -6.60e6 #> 7 7 LU BE 4 2007 140. 64867588 17.5 2.64e7 #> 8 8 BE LU 4 2007 140. 10731757 16.8 -9.64e6 #> 9 9 LU BE 5 2007 140. 330702 14.5 -1.64e6 #> 10 10 BE LU 5 2007 140. 7706 13.9 -1.04e6 #> # … with 38,315 more rows
# }