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

No credit card required

## Generalized Additive Models

This dataframe contains measurements of radiation, temperature, wind speed and ozone concentration. We want to model ozone concentration as a function of the three continuous explanatory variables using non-parametric smoothers rather than specified nonlinear functions (the parametric multiple regression analysis is on p. 434):

```ozone.data<-read.table("c:\\temp\\ozone.data.txt",header=T)
attach(ozone.data)
names(ozone.data)```
`[1] "rad"  "temp"  "wind"  "ozone"`

For data inspection we use pairs with a non-parametric smoother, lowess:

`pairs(ozone.data, panel=function(x,y) { points(x,y); lines(lowess(x,y))} )`

Now fit all three explanatory variables using the non-parametric smoother s():

```model<-gam(ozone~s(rad)+s(temp)+s(wind))
summary(model)

Family: gaussian

Formula:
ozone ~ s(rad) + s(temp) + s(wind)
Parametric coefficients:

Estimate   Std. Error  t value  Pr( > |t|)
(Intercept)      42.10         1.66    25.36     < 2e-16    ***```
```Approximate significance of smooth terms:
edf  Est.rank        F    p-value
s(rad)     2.763     6.000    2.830     0.0138    *
s(temp)    3.841     8.000    8.080   2.27e-08    ***
s(wind)    2.918     6.000    8.973   7.62e-08    ***
R-sq.(adj) = 0.724 Deviance explained = 74.8%
GCV score = 338 Scale est. = 305.96 n = 111```

Note that the intercept is estimated as a parametric coefficient (upper table) and the three explanatory variables are fitted as smooth terms. All three are significant, ...

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

No credit card required