O'Reilly logo

The R Book by Michael J. Crawley

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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) ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required