minpack.lm (version 1.2-1)

wfct: Weighting function that can be supplied to the weights argument of nlsLM or nls

Description

wfct can be supplied to the weights argument of nlsLM or nls, and facilitates specification of weighting schemes.

Usage

wfct(expr)

Arguments

expr

An expression specifying the weighting scheme as described in the Details section below.

Value

The results of evaluation of expr in a new environment, yielding the vector of weights to be applied.

Details

The weighting function can take 5 different variable definitions and combinations thereof:

  • the name of the predictor (independent) variable

  • the name of the response (dependent) variable

  • error: if replicates \(y_{ij}\) exist, the error \(\sigma(y_{ij})\)

  • fitted: the fitted values \(\hat{y}_i\) of the model

  • resid: the residuals \(y_i - \hat{y}_i\) of the model

For the last two, the model is fit unweighted, fitted values and residuals are extracted and the model is refit by the defined weights.

See Also

nlsLM, nls

Examples

Run this code
# NOT RUN {
### Examples from 'nls' doc ###
## note that 'nlsLM' below may be replaced with calls to 'nls'
Treated <- Puromycin[Puromycin$state == "treated", ]

## Weighting by inverse of response 1/y_i:
nlsLM(rate ~ Vm * conc/(K + conc), data = Treated,
start = c(Vm = 200, K = 0.05), weights = wfct(1/rate))

## Weighting by square root of predictor \sqrt{x_i}:
nlsLM(rate ~ Vm * conc/(K + conc), data = Treated,
start = c(Vm = 200, K = 0.05), weights = wfct(sqrt(conc)))

## Weighting by inverse square of fitted values 1/\hat{y_i}^2:
nlsLM(rate ~ Vm * conc/(K + conc), data = Treated,
start = c(Vm = 200, K = 0.05), weights = wfct(1/fitted^2))

## Weighting by inverse variance 1/\sigma{y_i}^2:
nlsLM(rate ~ Vm * conc/(K + conc), data = Treated,
start = c(Vm = 200, K = 0.05), weights = wfct(1/error^2))

# }

Run the code above in your browser using DataLab