Next: CO Uptake Data Up: Examples Previous: Potassium Measurements on Dogs

## Rock Data

The rock data in Venables and Ripley (1998) contains measurements on four cross-sections of each of 12 oil-bearing rocks. The aim is to predict permeability (perm) from three other measurements: the total area (area), total perimeter (peri) and a measure of roundness'' of the pores in the rock cross-section (shape). Venables and Ripley (1998) fitted this data set with a projection pursuit (PP) regression model. Here we show how to use the snr function to fit the following PP regression model

 (81)

where and for identifiability.

We first fit model () using the R function ppr as in Venables and Ripley (1998). Then we fit the same model using snr with initial values from the ppr fit. We use a TPS with and to model . We made the following transformations: dividing area and peri by 10000, and taking the natural logarithm of perm.

> data(rock)
> attach(rock)
> area1 <- area/10000; peri1 <- peri/10000
> rock.ppr <- ppr(log(perm) ~ area1 + peri1 + shape,
data=rock, nterms=1, max.terms=5)
> summary(rock.ppr)
Call:
ppr(formula = log(perm) ~ area1 + peri1 + shape, rock.Rdata = rock,
nterms = 1, max.terms = 5)

Goodness of fit:
1 terms   2 terms   3 terms   4 terms   5 terms
19.590843  8.737806  5.289517  4.745799  4.490378

Projection direction vectors:
area1        peri1        shape
0.347565455 -0.937641311  0.005198698

Coefficients of ridge terms:
[1] 1.495419

> rock.snr <- snr(log(perm) ~ f(a1*area1+a2*peri1+sqrt(1-a1^2-a2^2)*shape),
func=f(u)~list(~u,tp(u)),
params=list(a1+a2~1),
start=list(params=c(.34,-.94)))
> rock.snr
Semi-parametric Nonlinear Regression Model Fit
Model: log(perm) ~ f(a1 * area1 + a2 * peri1 + sqrt(1 - a1^2 - a2^2) *      shape)

Log-likelihood: -50.04593

Coefficients:
a1         a2
0.3449282 -0.9386264

Smoothing spline:
GCV estimate(s) of smoothing parameter(s): 1.249731e-06
Equivalent Degrees of Freedom (DF):  4.144281

Residual standard error: 0.770572
Number of Observations: 48

Converged after 5 iterations

> a <- seq(min(z),max(z),len=50)
> rock.snr.ci <- intervals(rock.snr,newdata=data.frame(u=a))
> rock.ppr.p <- predict(rock.ppr)

snr converged after 5 iterations. Let . In Figure , against the values, we plot the observations as circles, the fitted curve from rock.snr as the solid line with 95% Bayesian confidence intervals as the dotted lines, and the shape of the fitted curve from rock.ppr as the dashed line. The fitted curves from snr and ppr have different shapes.

Next: CO Uptake Data Up: Examples Previous: Potassium Measurements on Dogs
Yuedong Wang 2004-05-19