Learn R Programming

Luminescence (version 0.2.2)

fit_CWCurve: Nonlinear Least Squares Fit for CW-OSL curves

Description

The function determines the weighted least-squares estimates of the component parameters of a CW-OSL for a given maximum number of components and returns various component parameters. The fitting procedure uses the nls function with the port algorithm.

Usage

fit_CWCurve(values, 
            n.components.max, 
            fit.failure_threshold = 3, 
            fit.trace = FALSE, 
            fit.calcError = FALSE, 
            LED.power = 36, 
            LED.wavelength = 470, 
            log = "", 
            cex.global = 0.6, 
            main = "CW-OSL Curve Fit", 
            sample_code = "Default", 
            ylab, xlab, 
            output.path, 
            output.terminal = TRUE, 
            output.terminalAdvanced = TRUE, 
            output.plot = TRUE)

Arguments

values
data.frame (required): x,y data of measured values (time and counts). See examples.
n.components.max
vector (optional): maximum number of components that are to be used for fitting. The upper limit is 7.
fit.failure_threshold
vector (with default): limits the failed fitting attempts.
fit.trace
logical (with default): trace the fitting process on the terminal.
fit.calcError
logical (with default): calculate 1-sigma error range of components using confint
LED.power
numeric (with default): LED power (max.) used for intensity ramping in mW/cm^2. Note: The value is used for the calculation of the absolute photoionisation cross section.
LED.wavelength
numeric (with default): LED wavelength used for stimulation in nm. Note: The value is used for the calculation of the absolute photoionisation cross section.
log
character (optional): option for log-scaled axis, works as in plot
cex.global
numeric (with default): global scaling factor.
main
character (with default): header for plot output.
sample_code
character (optional): sample code used for the plot and the optional output table (mtext).
ylab
character (with default): alternative y-axis labelling
xlab
character (with default): alternative x-axis labelling
output.path
character (optional): output path for table output containing the results of the fit. The file name is set automatically. If the file already exists in the directory, the values are appended.
output.terminal
logical (with default): terminal ouput with fitting results.
output.terminalAdvanced
logical (with default): enhanced terminal output. Requires output.terminal = TRUE. If output.terminal = FALSE no advanced output is possible.
output.plot
logical (with default): returns a plot of the fitted curves.

Value

  • plot(optional) the fitted CW-OSL curves are returned as plot.
  • table(optional) an output table (*.csv) with the fitted components is provided if the output.path is set.
  • list objectbeside the plot and table output options a list is returned. The list contains: (a) a nls object ($fit) for which generic R functions are provided, e.g. summary, confint, profile. For more details, see nls. (b) a data.frame containing the summarized parameters including the error ($output.table).

Details

Fitting function

The function for the fitting has the general form : $$y = I0_1*exp(-lambda_1*x) + ,\ldots, + I0_i*exp(-lambda_i*x)$$ where $1>= i <= 7$<="" p="">

Start values

Start values are estimated automatically by fitting a linear function on the log input data set. Currently, there is no option to manually provide start parameters.

goodness of fit

The goodness of the fit is given by a expression(pseudo-R^2) value (pseudo coefficient of determination). According to Lave (1970), the value is calculated as:

$$pseudoR^2 = 1 - RSS/TSS$$ where $RSS = Residual~Sum~of~Squares$ and $TSS = Total~Sum~of~Squares$

Error of fitted component parameters

The 1-sigma error for the components is calculated using the function confint. Due to considerable calculation time, this option is deactived by default. In addition, the error for the components can be estimated by using internal R functions like summary. See the nls help page for more information.

For details on the nonlinear regression in R, see Ritz & Streibig (2008).

References

Lave, C.A.T., 1970. The Demand for Urban Mass Transportation. The Review of Economics and Statistics, 52 (3), pp. 320-323.

Ritz, C. & Streibig, J.C., 2008. Nonlinear Regression with R R. Gentleman, K. Hornik, & G. Parmigiani, eds., Springer.

See Also

fit_LMCurve, plot,nls

Examples

Run this code
##load data
data(ExampleData.CW_OSL_Curve)

##fit data
fit <- fit_CWCurve(values = ExampleData.CW_OSL_Curve,
                   main = "CW Curve Fit",
                   n.components.max = 4,
                   log = "x")

Run the code above in your browser using DataLab