# inst/tests/hoeff.r In harrelfe/Hmisc: Harrell Miscellaneous

require(Hmisc)
if(FALSE) .Fortran('jrank', as.double(1:5), as.double(1:5), 5L,
double(5), double(5), double(5))
hoeffd(1:6, c(1,3,2,4,5,6))
y <- 1:20; y[3] <- 17; y[17] <- 3
hoeffd(1:20, y)\$D
set.seed(5)
x <- runif(800); y <- runif(800)
hoeffd(x,y)\$D

for(n in c(50,100,200,400,1000)) {
set.seed(1)
x <- seq(-10,10,length=n)
y <- x*sign(runif(n,-1,1))
h <- hoeffd(x,y)
}
#[1] 0.06812286   in old version (real*4 in places)
#[1] 0.04667929
#[1] 0.05657654
#[1] 0.07048487
#[1] 0.06323746

# From http://www.sciencemag.org/content/suppl/2011/12/14/334.6062.1518.DC1/Reshef.SOM.pdf
# Table S2: Definitions of functions used for Figure 2A in the Science article

w <- function(y) {
ylab <- deparse(substitute(y))
plot(x, y, ylab=substitute(y), type='l')
h <- hoeffd(x, y)
cat(ylab, '\n')
}

x <- seq(0, 1, length=320)
par(mfrow=c(3,3))
w(x)
w(4*(x-.5)^2)
w(128*(x-1/3)^3 -48*(x-1/3)^2 - 12*(x-1/3) + 2)
w(10^(10*x) - 1)
w(sin(10*pi*x) + x)
w(sin(16*pi*x))
w(sin(13*pi*x))
w(sin(7*pi*x*(1+x)))
w(runif(320))
harrelfe/Hmisc documentation built on May 19, 2024, 4:13 a.m.