# svynls: Probability-weighted nonlinear least squares In survey: Analysis of Complex Survey Samples

## Description

Fits a nonlinear model by probability-weighted least squares. Uses `nls` to do the fitting, but estimates design-based standard errors with either linearisation or replicate weights. See `nls` for documentation of model specification and fitting.

## Usage

 `1` ```svynls(formula, design, ...) ```

## Arguments

 `formula` Nonlinear model specified as a formula; see `nls` `design` Survey design object `...` Other arguments to `nls` (especially, `start`). Also supports `return.replicates` for replicate-weight designs and `influence` for other designs.

## Value

Object of class `svynls`. The fitted `nls` object is included as the `fit` element.

`svymle` for maximum likelihood with linear predictors on one or more parameters
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18``` ```set.seed(2020-4-3) x<-rep(seq(0,50,1),10) y<-((runif(1,10,20)*x)/(runif(1,0,10)+x))+rnorm(510,0,1) pop_model<-nls(y~a*x/(b+x), start=c(a=15,b=5)) df<-data.frame(x=x,y=y) df\$p<-ifelse((y-fitted(pop_model))*(x-mean(x))>0, .4,.1) df\$strata<-ifelse(df\$p==.4,"a","b") in_sample<-stratsample(df\$strata, round(table(df\$strat)*c(0.4,0.1))) sdf<-df[in_sample,] des<-svydesign(id=~1, strata=~strata, prob=~p, data=sdf) pop_model (biased_sample<-nls(y~a*x/(b+x),data=sdf, start=c(a=15,b=5))) (corrected <- svynls(y~a*x/(b+x), design=des, start=c(a=15,b=5))) ```