A character vector representing the R2 to compute. The R2 codes are of the form: "wapr2" with letters "w" (within), "a" (adjusted) and "p" (pseudo) possibly missing. E.g. to get the regular R2: use
type = "r2", the within adjusted R2: use
type = "war2", the pseudo R2: use
type = "pr2", etc. Use
"cor2"for the squared correlation. By default, all R2s are computed.
Logical scalar, default is
TRUEthen names of the vector in output will have full names instead of keywords (e.g.
Squared Correlationinstead of
The pseudo R2s are the McFaddens R2s, that is the ratio of log-likelihoods.
For R2s with no theoretical justification, like e.g. regular R2s for maximum likelihood models -- or within R2s for models without fixed-effects, NA is returned. The single measure to possibly compare all kinds of models is the squared correlation between the dependent variable and the expected predictor.
The pseudo-R2 is also returned in the OLS case, it corresponds to the pseudo-R2 of the equivalent GLM model with a Gaussian family.
For the adjusted within-R2s, the adjustment factor is
(n - nb_fe) / (n - nb_fe - K) with
n the number of observations,
nb_fe the number of fixed-effects and
K the number of variables.
# Load trade data data(trade) # We estimate the effect of distance on trade (with 3 fixed-effects) est = feols(log(Euros) ~ log(dist_km)|Origin+Destination+Product, trade) # Squared correlation: r2(est, "cor2") #> cor2 #> 0.7040186 # "regular" r2: r2(est, "r2") #> r2 #> 0.7040186 # pseudo r2 (equivalent to GLM with Gaussian family) r2(est, "pr2") #> pr2 #> 0.2353827 # adjusted within r2 r2(est, "war2") #> war2 #> 0.2182526 # all four at once r2(est, c("cor2", "r2", "pr2", "war2")) #> cor2 r2 pr2 war2 #> 0.7040186 0.7040186 0.2353827 0.2182526 # same with full names instead of codes r2(est, c("cor2", "r2", "pr2", "war2"), full_names = TRUE) #> Squared Correlation R2 Pseudo R2 Adjusted Within R2 #> 0.7040186 0.7040186 0.2353827 0.2182526