Non-parametric Smoothers
You can see non-parametric smoothers in action for fitting a curve through a scatterplot in Chapter 5 (p. 151). Here we are concerned with using non-parametric smoothers in statistical modelling where the object is to assess the relative merits of a range of different models in explaining variation in the response variable. One of the simplest model-fitting functions is loess (which replaces its predecessor called lowess).
The following example shows population change, Delta = log(N(t + 1)11(t)) as a function of population density (N(t)) in an investigation of density dependence in a sheep population. This is what the data look like:
soay<-read.table("c:\\temp\\soaysheep.txt",header=T) attach(soay) names(soay) [1] "Year" "Population" "Delta" plot(Population,Delta)
Broadly speaking, population change is positive at low densities (Delta > 0) and negative at high densities (Delta < 0) but there is a great deal of scatter, and it is not at all obvious what shape of smooth function would best describe the data. Here is the default loess:
model<-loess(Delta~Population) summary(model) Call: loess(formula = Delta~Population) Number of Observations: 44 Equivalent Number of Parameters: 4.66 Residual Standard Error: 0.2616 Trace of smoother matrix: 5.11 Control settings: normalize:TRUE span : 0.75 degree : 2 family : gaussian surface : interpolate cell = 0.2
Now draw the smoothed line using predict to extract the predicted values from model:
xv<-seq(600,2000,1) ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access