
Extract and format results from Simulated Annealing (Maximum Likelihood Estimation)
Source:R/mle_format.R
mle_format.RdExtract 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_dataof 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_likeliThe maximum likelihood value of the modeln_paramsThe number of the estimated parametersaic_corrThe 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.aicThe value of Akaike's Information Criterion. See the "Simulated Annealing Algorithm" help page of the likelihood package for more information.slopeSlope of observed values linearly regressed on those predicted by model, using the parameter maximum likelihood estimates. The intercept is forced at zero.R2Proportion of variance explained by the model relative to that explained by the simple mean of the data.rmseRoot 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