| svynls {survey} | R Documentation | 
Probability-weighted nonlinear least squares
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
svynls(formula, design, start, weights=NULL, ...)
Arguments
| formula | Nonlinear model specified as a formula; see  | 
| design | Survey design object | 
| start | starting values, passed to  | 
| weights | Non-sampling weights, eg precision weights to give more efficient estimation in the presence of heteroscedasticity. | 
| ... | Other arguments to  | 
Value
Object of class svynls. The fitted nls object is
included as the fit element.
See Also
svymle for maximum likelihood with linear predictors on
one or more parameters
Examples
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)))