Skip to contents

This function fits and compares (optional) height-diameter models.

Usage

modelHD(D, H, method = NULL, useWeight = FALSE, drawGraph = FALSE, plot = NULL)

Arguments

D

Vector with diameter measurements (in cm). NA values are accepted but a minimum of 10 valid entries (i.e. having a corresponding height in H) is required.

H

Vector with total height measurements (in m). NA values are accepted but a minimum of 10 valid entries (i.e. having a corresponding diameter in D) is required.

method

Method used to fit the relationship. To be chosen between:

  • log1, log2

    • log 1: \((log(H) = a+ b*log(D))\) (equivalent to a power model)

    • log 2: \((log(H) = a+ b*log(D) + c*log(D)^2)\)

  • weibull: \(H = a*(1-exp(-(D/b)^c))\)

  • michaelis: \(H = (A * D)/(B + D)\)

If NULL, all the methods will be compared.

useWeight

If weight is TRUE, model weights will be \((D^2)*H\) (i.e. weights are proportional to tree volume, so that larger trees have a stronger influence during the construction of the model).

drawGraph

If TRUE, a graphic will illustrate the relationship between H and D. Only if argument plot is null.

plot

(optional) Plot ID, must be either one value, or a vector of the same length as D. This argument is used to build stand-specific HD models.

Value

If plot is NULL or has a single value, a single list is returned. If there is more than one plot, multiple embedded lists are returned with plots as the list names.

If model is not null (model comparison), returns a list :

  • input: list of the data used to construct the model (list(H, D))

  • model: outputs of the model (same outputs as given by stats::lm(), stats::nls())

  • RSE: Residual Standard Error of the model

  • RSElog: Residual Standard Error of the log model (NULL if other model)

  • residuals: Residuals of the model

  • coefficients: Coefficients of the model

  • R.squared: \(R^2\) of the model

  • formula: Formula of the model

  • method: Name of the method used to construct the model

  • predicted: Predicted height values

  • fitPlot: a ggplot object containing the model fitting plot

If the parameter model is null, the function return a plot with all the methods for comparison, the function also returns a data.frame with:

  • method: The method that had been used to construct the plot

  • RSE: Residual Standard Error of the model

  • RSElog: Residual Standard Error of the log model (NULL if other model)

  • Average_bias: The average bias for the model

Details

All the back transformations for log-log models are done using the Baskerville correction (\(0.5 * RSE^2\), where RSE is the Residual Standard Error).

See also

Author

Maxime REJOU-MECHAIN, Arthur PERE, Ariane TANGUY, Arthur Bailly

Examples


# Load a data set
data(NouraguesHD)

# Fit H-D models for the Nouragues dataset
# \donttest{
HDmodel <- modelHD(D = NouraguesHD$D, H = NouraguesHD$H, drawGraph = TRUE)

#> To build a HD model you must use the parameter 'method' in this function
# }

# For a chosen model
HDmodel <- modelHD(D = NouraguesHD$D, H = NouraguesHD$H,
method = "log2", drawGraph = TRUE)


# Using weights
HDmodel <- modelHD(
  D = NouraguesHD$D, H = NouraguesHD$H,
  method = "log2", useWeight = TRUE,
  drawGraph = TRUE)


# With multiple stands (plots)
HDmodel <- modelHD(
  D = NouraguesHD$D, H = NouraguesHD$H,
  method = "log2", useWeight = TRUE, 
  plot = NouraguesHD$plotId, drawGraph = TRUE)