Nothing
test_that("test boundary cases", {
# test no covariate, only intercept
n = 10
Y = rnorm(n)
asm_fit = asm(Y ~ 1)
expect_true(length(asm_fit$betahat) == 1)
expect_true(abs(asm_fit$betahat) < 1)
asm_fit = asm(Y ~ 1, symmetric=FALSE)
expect_true(abs(asm_fit$betahat - mean(Y)) < 1e-5)
# test null model
asm_fit = asm(Y ~ - 1)
expect_true(is.null(asm_fit$betahat))
})
test_that("gaussian covariate, gaussian error: basic functionality", {
n = 200
p = 2
X = matrix(rnorm(n*p), n, p)
beta0 = rep(0, p)
noise = rnorm(n)
y = X %*% beta0 + noise
mydf = data.frame(y, X)
colnames(mydf) = c("y", paste0("X", 1:p))
asm_res = asm(y ~ ., data = mydf)
betahat = coef(asm_res)
expect_equal(length(betahat), p+1)
## expect that the true beta is close to the estimated beta
expect_true(all(abs(betahat[2:(p+1)] - beta0) < 1))
expect_true(abs(betahat[1]) < 1)
asm_res2 = asm.fit(cbind(rep(1, n), X), y)
betahat2 = asm_res2$betahat
expect_true(all(abs(betahat - betahat2) < 1e-6))
})
test_that("cauchy error: prediction interval", {
n = 600
p = 6
X = matrix(rnorm(p*n, -5, 2), n, p)
beta0 = rnorm(p)
Y = X %*% beta0 + rcauchy(n)
train_idx = sample(1:n, size = round(0.6*n))
X_train = X[train_idx, ]; Y_train = Y[train_idx]
X_test = X[-train_idx, ]; Y_test = Y[-train_idx]
df = data.frame(Y = Y_train, X = X_train)
df_test = data.frame(X = X_test)
asm_fit = asm(Y ~ ., data=df)
preds = predict(asm_fit, newdata=df_test, interval="prediction", level=0.9)
expect_true(nrow(preds) == length(Y_test) && ncol(preds) == 3)
coverage = mean(Y_test < preds[, 3] & Y_test > preds[, 2])
expect_true(mean(coverage) > 0.6)
})
test_that("Cauchy error: asymmetric loss", {
n = 200
p = 5
X = matrix(rnorm(p*n, 1, 1), n, p)
beta0 = rep(1, p)
Y = X %*% beta0 + rcauchy(n)
df = data.frame(X=X, Y=Y)
asm_fit = asm(Y ~ X, data=df, symmetric=FALSE)
expect_true(length(asm_fit$betahat) == p+1)
expect_true(all(abs(asm_fit$betahat[-1] - 1) < 1))
asm_fit2 = asm(Y ~ X, data=df, symmetric=FALSE, intercept.selection="median")
expect_true(length(asm_fit2$betahat) == p+1)
expect_true(all(abs(asm_fit2$betahat[-1] - asm_fit$betahat[-1]) < 1e-5))
expect_true(abs(asm_fit2$betahat[1]) < 1)
})
test_that("large p", {
n = 50
p = 40
X = matrix(rnorm(p*n, 0, 1), n, p)
beta0 = rep(1/p, p)
Y = X %*% beta0 + rcauchy(n)
df = data.frame(X=X, Y=Y)
asm_fit = asm(Y ~ ., data=df)
})
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.