Nothing
is_VGAM_installed <- require(VGAM)
library(testthat)
library(serp)
context("unpenalized - compare results from serp with the VGAM::vglm function")
wine <- serp::wine
test_that("cumulative model via serp matches with vglm",
{
if (!is_VGAM_installed) skip("VGAM not installed")
tol <- 1e-03
#1# parallel slope with logit link
sp <- serp(rating ~ temp + contact, slope = "parallel",
link = "logit", reverse=FALSE, data=wine)
vm <- vglm(rating ~ temp + contact,
family= cumulative(link="logitlink", parallel=TRUE,
reverse=FALSE),data = wine)
pred.sp <- as.matrix(predict(sp, type="response"))
pred.vm <- as.matrix(predict(vm, type="response"))
expect_vector(predict(sp, type="class"))
expect_equal(coef(sp), coef(vm), check.attributes=FALSE,
tolerance=tol)
expect_equal(pred.sp, pred.vm, check.attributes=FALSE,
tolerance=tol)
expect_error(anova.serp(sp, sp))
rm(sp, vm, pred.sp, pred.vm)
#2# unparallel slope with probit link
sp <- serp(rating ~ temp + contact, slope = "unparallel",
link = "probit", reverse=FALSE, data = wine)
vm <- suppressWarnings(vglm(rating ~ temp + contact,
family= cumulative(link="probitlink", parallel=FALSE,
reverse=FALSE), data = wine))
fitted.sp <- as.matrix(sp$fitted.values)
fitted.vm <- as.matrix(vm@fitted.values)
expect_equal(fitted.sp, fitted.vm, check.attributes=FALSE,
tolerance=tol)
rm(sp, vm, fitted.sp, fitted.vm)
#3# parallel slope with reversed cloglog link
sp <- serp(rating ~ temp + contact, slope = "parallel",
link = "cloglog", reverse=TRUE,
data = wine)
vm <- vglm(rating ~ temp + contact,
family=cumulative(link="clogloglink", parallel=TRUE,
reverse=TRUE), data = wine)
loglik.sp <- sp$logLik
loglik.vm <- logLik(vm)
expect_equal(loglik.sp, loglik.vm, check.attributes=FALSE,
tolerance=tol)
rm(sp, vm, loglik.sp, loglik.vm)
#4# unparallel slope with reverse logit link
sp <- serp(rating ~ temp + contact, slope = "unparallel",
link = "logit", reverse=TRUE, data = wine)
vm <- suppressWarnings(vglm(rating ~ temp + contact,
family=cumulative(link="logitlink", parallel=FALSE,
reverse=TRUE), data = wine))
dev.sp <- deviance(sp)
dev.vm <- deviance(vm)
expect_equal(dev.sp, dev.vm, check.attributes=FALSE,
tolerance=tol)
rm(sp, vm, dev.sp, dev.vm)
#5# partial or semi-parallel slope with cauchit link
sp <- serp(rating ~ temp * contact, slope = "partial",
link = "cauchit", globalEff= ~ temp, data = wine)
vm <- suppressWarnings(vglm(rating ~ temp * contact,
family=cumulative(link="cauchitlink", parallel=FALSE ~contact),
data = wine))
dev.sp <- deviance(sp)
dev.vm <- deviance(vm)
cof.sp <- coef(sp)
cof.vm <- coef(vm)
expect_equal(cof.sp, cof.vm, check.attributes=FALSE,
tolerance=1e-03)
expect_error(
serp(rating ~ temp * contact, slope = "partial",
link = "cauchit", globalEff= "temp", data = wine))
expect_error(
serp(rating ~ temp * contact, slope = "partial",
link = "cauchit", data = wine))
expect_error(
serp(rating ~ temp * contact, slope = "partial",
link = "cauchit", globalEff= ~1, data = wine))
sdat <- wine
sdat$extra <- 1:72
expect_error(
serp(rating ~ temp * contact, slope = "partial",
link = "cauchit", globalEff= ~extra, data = sdat))
rm(sp, vm, dev.sp, dev.vm, cof.sp, cof.vm, sdat, tol)
})
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.