Nothing
context("ACE Transform")
set.seed(1) # For repeatability
x <- matrix(runif(500)*2 - 1, ncol=5)
e <- rnorm(100)
y <- log(4 + sin(4*x[,1]) + abs(x[,2]) + x[,3]^2 + + x[,4]^3 + x[,5] + 0.1*e)
# D. Wang, Murphy M,. Estimating Optimal Transformations for Multiple
# Regression Using the ACE Algorithm.
# Journal of Data Science 2(2004), 329-346.
test_that("Estimates Multiple Transformations",
{
y <- log(4 + sin(4*x[,1]) + abs(x[,2]) + x[,3]^2 + x[,4]^3 + x[,5] + 0.1*e)
expect_no_error(model <- ace(x, y))
# Linear offset were computed using lm
expect_true(max(sin(4*x[,1]) - model$tx[,1] - 0.003874) < 0.1)
expect_true(max(abs(x[,2]) - model$tx[,2] - 0.481000) < 0.1)
expect_true(max(x[,3]^2 - model$tx[,3] - 0.321443) < 0.1)
expect_true(max(x[,4]^3 - model$tx[,4] - 0.039418) < 0.12)
expect_true(max(x[,5] - model$tx[,5] - 0.008231) < 0.1)
})
test_that("Estimates Multiple Transformations Specified via Formula",
{
expect_no_error(model <- ace(y~x[,1]+x[,2]+x[,3]+x[,4]+x[,5]))
# Linear offset were computed using lm
expect_true(max(sin(4*x[,1]) - model$tx[,1] - 0.003874) < 0.1)
expect_true(max(abs(x[,2]) - model$tx[,2] - 0.481000) < 0.1)
expect_true(max(x[,3]^2 - model$tx[,3] - 0.321443) < 0.1)
expect_true(max(x[,4]^3 - model$tx[,4] - 0.039418) < 0.12)
expect_true(max(x[,5] - model$tx[,5] - 0.008231) < 0.1)
expect_no_error(
model <- ace(y~x1+x2+x3+x4+x5,
data.frame(x1=x[,1],
x2=x[,2],
x3=x[,3],
x4=x[,4],
x5=x[,5])))
# Linear offset were computed using lm
expect_true(max(sin(4*x[,1]) - model$tx[,1] - 0.003874) < 0.1)
expect_true(max(abs(x[,2]) - model$tx[,2] - 0.481000) < 0.1)
expect_true(max(x[,3]^2 - model$tx[,3] - 0.321443) < 0.1)
expect_true(max(x[,4]^3 - model$tx[,4] - 0.039418) < 0.12)
expect_true(max(x[,5] - model$tx[,5] - 0.008231) < 0.1)
})
test_that("Handles categorical properly",
{
y <- rnorm(100)
x <- sample(1:3, 100, replace=TRUE)
expect_no_error(result <- ace(x, y, cat=1))
expect_equal(result$ierr, 0)
expect_warning(ace(rep(1, 100), y, cat=1), "no variance")
expect_warning(ace(x, rep(1, 100), cat=0), "no variance")
})
test_that("Will stop on error if specified",
{
expect_error(ace(rep(1, 100), rnorm(100), cat=1, on.error=stop), "no variance")
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.