Degrees of Freedom (DoF)
Estimate or extract degrees of freedom of models parameters.
degrees_of_freedom(model, ...) ## Default S3 method: degrees_of_freedom(model, method = "analytical", ...) dof(model, ...)
model |
A statistical model. |
... |
Currently not used. |
method |
Can be |
Methods for calculating degrees of freedom:
"analytical"
for models of class lmerMod
, Kenward-Roger approximated degrees of freedoms are calculated, for other models, n-k
(number of observations minus number of parameters).
"fit"
tries to extract residual degrees of freedom, and returns Inf
if residual degrees of freedom could not be extracted.
"any"
first tries to extract residual degrees of freedom, and if these are not available, extracts analytical degrees of freedom.
"nokr"
same as "analytical"
, but does not Kenward-Roger approximation for models of class lmerMod
. Instead, always uses n-k
to calculate df for any model.
"wald"
returns Inf
.
"kenward"
calls dof_kenward
.
"satterthwaite"
calls dof_satterthwaite
.
"ml1"
calls dof_ml1
.
"betwithin"
calls dof_betwithin
.
For models with z-statistic, the returned degrees of freedom for model parameters is Inf
(unless method = "ml1"
or method = "betwithin"
), because there is only one distribution for the related test statistic.
In many cases, degrees_of_freedom
returns the same as
df.residuals
, or n-k
(number of observations minus number of
parameters). However, degrees_of_freedom
refers to the model's
parameters degrees of freedom of the distribution for the related test
statistic. Thus, for models with z-statistic, results from degrees_of_freedom
and df.residuals
differ. Furthermore, for other approximation methods
like "kenward"
or "satterthwaite"
, each model parameter can have
a different degree of freedom.
model <- lm(Sepal.Length ~ Petal.Length * Species, data = iris) dof(model) model <- glm(vs ~ mpg * cyl, data = mtcars, family = "binomial") dof(model) ## Not run: if (require("lme4", quietly = TRUE)) { model <- lmer(Sepal.Length ~ Petal.Length + (1 | Species), data = iris) dof(model) } if (require("rstanarm", quietly = TRUE)) { model <- stan_glm( Sepal.Length ~ Petal.Length * Species, data = iris, chains = 2, refresh = 0 ) dof(model) } ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.