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

wfct(expr)

Arguments

expr

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

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.

Value

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

Author

Andrej-Nikolai Spiess

See also

Examples


### 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))
#> Error in DATA[[i]]: subscript out of bounds

## 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)))
#> Error in DATA[[i]]: subscript out of bounds

## 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))
#> Error in DATA[[i]]: subscript out of bounds

## 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))
#> Error in DATA[[i]]: subscript out of bounds