spikes in contour and persp (PR#327)

ripley@stats.ox.ac.uk ripley@stats.ox.ac.uk
Tue, 16 Nov 1999 12:03:08 +0100 (MET)


> From: jlindsey@alpha.luc.ac.be
> Date: Tue, 16 Nov 1999 08:57:00 +0100 (MET)
> 
> The following matrix of normed likelihoods should give a smooth
> surface but instead gives a series of spikes in both persp and contour
> (the dim labels are the axes values). I know an algorithm cannot be
> infallible but it would be nice to have some parameters to control the
> smoothing. (It takes close to an hour to produce this matrix on a
> Pentium II 300mh. It was after that that it crashed with the Inf in my
> previous bug message...)


I am sorry, but I don't understand. contour does not do any
smoothing, but interpolates assuming smoothness.  The data
appears to me to be a series of spikes just off the diagonal, and not
what contour thinks of as a smooth surface.  It is common to 
interpolate the data from such a coarse grid before contouring.

persp just plots the data with visual linear interpolation.

> round(like*100,0)
     2.32 2.345 2.37 2.395 2.42 2.445 2.47 2.495 2.52 2.545 2.57 2.595 2.62
1.4     0     0    0     0    0     0    0     0    0     0    0     0    0
1.42    0     1    0     0    0     0    0     0    0     0    0     0    0
1.44    0     1    2     0    0     0    0     0    0     0    0     0    0
1.46    0     0    2     5    0     0    0     0    0     0    0     0    0
1.48    0     0    0     7    9     0    0     0    0     0    0     0    0
1.5     0     0    0     1   17    15    1     0    0     0    0     0    0
1.52    0     0    0     0    3    34   21     1    0     0    0     0    0
1.54    0     0    0     0    0     6   57    26    1     0    0     0    0
1.56    0     0    0     0    0     0   12    79   29     1    0     0    0
1.58    0     0    0     0    0     0    0    19   95    29    1     0    0
1.6     0     0    0     0    0     0    0     1   26   100   26     1    0
1.62    0     0    0     0    0     0    0     0    1    31   93    22    0
1.64    0     0    0     0    0     0    0     0    0     1   32    77   17
1.66    0     0    0     0    0     0    0     0    0     0    2    28   59
1.68    0     0    0     0    0     0    0     0    0     0    0     2   23
1.7     0     0    0     0    0     0    0     0    0     0    0     0    1
1.72    0     0    0     0    0     0    0     0    0     0    0     0    0
1.74    0     0    0     0    0     0    0     0    0     0    0     0    0
1.76    0     0    0     0    0     0    0     0    0     0    0     0    0
1.78    0     0    0     0    0     0    0     0    0     0    0     0    0
1.8     0     0    0     0    0     0    0     0    0     0    0     0    0
     2.645 2.67 2.695 2.72 2.745
1.4      0    0     0    0     0
1.42     0    0     0    0     0
1.44     0    0     0    0     0
1.46     0    0     0    0     0
1.48     0    0     0    0     0
1.5      0    0     0    0     0
1.52     0    0     0    0     0
1.54     0    0     0    0     0
1.56     0    0     0    0     0
1.58     0    0     0    0     0
1.6      0    0     0    0     0
1.62     0    0     0    0     0
1.64     0    0     0    0     0
1.66    13    0     0    0     0
1.68    41    0     0    0     0
1.7     16    0     6    0     0
1.72     1    0    16    4     0
1.74     0    0     6   10     3
1.76     0    0     1    4     5
1.78     0    0     0    0     2
1.8      0    0     0    0     0


If I do some interpolation

library(akima)
x <- as.numeric(rownames(like))
y <- as.numeric(colnames(like))
xx <- expand.grid(x=x, y=y)
like1 <- interp(xx$x, xx$y, like, seq(1.4, 1.8, len=50), seq(2.3, 2.8, len=50))
contour(like1$x, like1$y,like1$z)

I get a slightly smoother result, but still five peaks.  (Are the
values for col=2.67 correct?)

I guess you need to evaluate this on a finer grid near the diagonal,
and probably adjust the coordinate system to get enough resolution
on the anti-diagonal.


-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._