BayesLawrence: R6 Class for Bayesian modeling of crop responses using...

BayesLawrenceR Documentation

R6 Class for Bayesian modeling of crop responses using modified model from Lawrence et al. 2015

Description

R6 class using Bayesian Non-Linear Regression to fit a crop response model with the experimental variable, precipitation, and claycontent. This is a modified version of the model developed by Patrick Lawrence (2015) in "A probabilistic Bayesian framework for progressively updating site-specific recommendations". Rather than using EC data due to its unavailability, clay content is used because of its relation to EC. This class is initialized with a named list of training (named 'trn') and validation (named 'val') datasets, the response variable, the experimental variable, and the means of the centered data.

Any covariates passed into the model are replaced by precipitation and claycontent. This is used to fit the final model that is returned to the user for use in the simulation to predict the response under varying rates of the experimental variable.

The 'saveDiagnostics' method include residuals vs. fitted. The fitting process also prepares data for validation plots in the 'ModClass' R6 class. This includes predicting observations in the validation dataset, making a unique id using the year and fieldname, uncentering data, and identifying a field name to use for plotting that reflects all fields in the dataset.

Public fields

dat

Named list of traning (named 'trn') and validation (named 'val') datasets with the response, experimental, and remotely sensed variables.

respvar

Character, the response variable of interest.

expvar

Character, the experimental variable of interest.

covars

Character vector of covariates to use for training the model. Ignored, because only the experimental variable, precipitation, and claycontent are used.

m

Fitted RF model.

form

Final RF formula.

parm_df

Data frame of parameter names, and a column named 'bad_parms' to indicate whether to include in the model formula. Also includes columns for the mean and standard deviation of each parameter.

fieldname

Unique name for the field(s) analyzed. If multiple fields are used they are separated by an ampersand, otherwise the singular field name is used. This is used for plotting.

mod_type

Name of the model of this class, used for plotting.

Methods

Public methods


Method new()

The initialization creates a data frame ('parm_df') containing the parameter names, the mean and standard deviation, and whether it meets the criteria to be omitted from the model, making it a 'bad_parm'. The criteria for this is over 30% of data for a given year missing for a parameter or a standard deviation of zero, indicating singularity.

Usage
BayesLawrence$new(dat, respvar, expvar, covars)
Arguments
dat

Named list of training (named 'trn') and validation (named 'val') datasets with the response, experimental, and remotely sensed variables.

respvar

Character, the response variable of interest.

expvar

Character, the experimental variable of interest.

covars

covars Character vector of covariates to use for training the model. Ignored, because only the experimental variable, precipitation, and claycontent are used.

Returns

A instantiated 'RF' object.


Method fitMod()

Method for fitting the modified Lawrence et al. 2015 Bayesian model to response variables using experimental input data, precipitation, and claycontent.

A model is fit that is returned to the user for use in the simulation to predict the response under varying rates of the experimental variable.

Finally, this method prepares the validation data for plotting by using the model to predict the response for each of the observations in the validation dataset, uncentering data if necessary, and identifying a unique field name from the data.

Usage
BayesLawrence$fitMod()
Arguments
None

Parameters provided upon class instantiation.

Returns

A fitted BayesLawrence model.


Method predResps()

Method for predicting response variables using data and a model.

Usage
BayesLawrence$predResps(dat, m)
Arguments
dat

Data for predicting response variables for.

m

The fitted model to use for predicting the response variable for each observation in 'dat'.

Returns

Vector of predicted values for each location in 'dat'.


Method saveDiagnostics()

Method for saving diagnostic plots of the fitted model. This is simply the residuals vs fitted values.

Usage
BayesLawrence$saveDiagnostics(out_path, SAVE)
Arguments
out_path

The path to the folder in which to store and save outputs from the model fitting process

SAVE

Whether to save diagnostic plots.

Returns

Diagnostic plots.


Method clone()

The objects of this class are cloneable with this method.

Usage
BayesLawrence$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

See Also

ModClass for the class that calls the ModClass interface, NonLinear_Logistic, GAM, and RF for alternative model classes.


paulhegedus/OFPE documentation built on Nov. 23, 2022, 5:09 a.m.