Extract and format results from Simulated Annealing (Maximum Likelihood Estimation)
Source:R/mle_format.R
mle_format.Rd
Extract and format results from Simulated Annealing (Maximum Likelihood Estimation)
Arguments
- x
List with the results of the simulated annealing algorithm for Maximum Likelihood Estimation. See
likelihood::anneal()
- yvar
The name of the column that contains the dependent variable (the “observed” value). This column must be present in the
source_data
of thex
(results) list
Value
A dataframe with outputs from the results of the simulated
annealing maximum parameter estimation. This dataframe contains the following
columns (see help in likelihood::anneal()
):
max_likeli
The maximum likelihood value of the modeln_params
The number of the estimated parametersaic_corr
The value of Akaike's Information Criterion “corrected” for small sample size. See the "Simulated Annealing Algorithm" help page of the likelihood package for more information.aic
The value of Akaike's Information Criterion. See the "Simulated Annealing Algorithm" help page of the likelihood package for more information.slope
Slope of observed values linearly regressed on those predicted by model, using the parameter maximum likelihood estimates. The intercept is forced at zero.R2
Proportion of variance explained by the model relative to that explained by the simple mean of the data.rmse
Root Mean Square Error, i.e. the standard deviation of the residuals. It is computed as:
$$RMSE=\sqrt{ \frac{\sum_{i=1}^{N}(obs_i - exp_i)^2}{n -1}}$$
Examples
# Get the results of the maximum likelihood estimation from the example in
# the anneal function of the likelihood pkg.
library(likelihood)
#> Loading required package: nlme
data(crown_rad)
dataset <- crown_rad
# Create our model function
modelfun <- function (a, b, DBH) {a + b * DBH}
# Compute the MLE of the parameters
results <- anneal(model = modelfun,
par = list(a = 0, b = 0),
var = list(DBH = "DBH", x = "Radius", mean = "predicted",
sd = 0.815585, log = TRUE),
source_data = dataset,
par_lo = list(a = 0, b = 0),
par_hi = list(a = 50, b = 50),
pdf = dnorm,
dep_var = "Radius",
max_iter = 20000,
show_display = FALSE)
# Format the results
mle_format(results, yvar = "DBH")
#> max_likeli n_params aic_cor aic R2 slope rmse
#> 1 -119.7453 2 243.6156 243.4906 0.4450001 0.9999627 18.9791