Nothing
cat("# asis test\n")
library("qgcomp")
# does the checknames correctly intuit which are linear/non-linear models for common specifications
set.seed(50)
N=50
dat <- data.frame(time=(tmg <- pmin(.1,rweibull(N, 10, 0.1))),
d=1.0*(tmg<0.1), x1=runif(N), x2=runif(N), z=runif(N))
expnms=paste0("x", 1:2)
##### non additive
f0 = survival::Surv(time, d)~ x1 + x2
f1 = survival::Surv(time, d)~ x1*x2
f2 = survival::Surv(time, d)~ x1 + x2 + I(x1*x2)
f3 = survival::Surv(time, d)~x1 + x2 + x1:x2
set.seed(12321)
#res = try(qgcomp(f0, expnms = expnms, data = dat, B=2, MCsize=50))
#stopifnot(class(res)=="try-error")
res = try(obj0 <- qgcomp(f0, expnms = expnms, data = dat))
stopifnot(inherits(res, "qgcompfit"))
set.seed(12321)
res = try(obj1 <- qgcomp(f1, expnms = expnms, data = dat, B=2, MCsize=50))
stopifnot(inherits(res, "qgcompfit"))
set.seed(12321)
res = try(obj2 <- qgcomp(f2, expnms = expnms, data = dat, B=2, MCsize=50))
stopifnot(inherits(res, "qgcompfit"))
set.seed(12321)
res = try(obj3 <- qgcomp(f3, expnms = expnms, data = dat, B=2, MCsize=50))
stopifnot(inherits(res, "qgcompfit"))
stopifnot(all.equal(
obj0$fit$coefficients,
obj1$fit$coefficients, check.names=FALSE
)=="Numeric: lengths (2, 3) differ")
stopifnot(all.equal(
obj1$fit$coefficients,
obj3$fit$coefficients, check.names=FALSE))
stopifnot(all.equal(
obj1$fit$coefficients,
obj2$fit$coefficients, check.names=FALSE))
stopifnot(all.equal(
obj1$msmfit$coefficients,
obj3$msmfit$coefficients, check.names=FALSE))
stopifnot(all.equal(
obj1$msmfit$coefficients,
obj2$msmfit$coefficients, check.names=FALSE))
f0b = d ~ x1 + x2
f4 = d ~ x1*x2
f5 = d ~ x1 + x2 + I(x1*x2)
f6 = d ~ x1 + x2 + x1:x2
res = try(obj0b <- qgcomp(f0b, expnms = expnms, data = dat, B=2, family=binomial()))
stopifnot(inherits(res,"qgcompfit"))
res = try(obj4 <- qgcomp(f4, expnms = expnms, data = dat, B=2, family=binomial()))
stopifnot(inherits(res,"qgcompfit"))
res = try(obj5 <- qgcomp(f5, expnms = expnms, data = dat, B=2, family=binomial()))
stopifnot(inherits(res,"qgcompfit"))
res = try(obj6 <- qgcomp(f6, expnms = expnms, data = dat, B=2, family=binomial()))
stopifnot(inherits(res,"qgcompfit"))
stopifnot(all.equal(
obj0b$fit$coefficients,
obj4$fit$coefficients, check.names=FALSE
)=="Numeric: lengths (3, 4) differ")
stopifnot(all.equal(
obj4$fit$coefficients,
obj6$fit$coefficients, check.names=FALSE))
stopifnot(all.equal(
obj4$msmfit$coefficients,
obj6$msmfit$coefficients, check.names=FALSE))
stopifnot(all.equal(
obj4$fit$coefficients,
obj5$fit$coefficients, check.names=FALSE))
stopifnot(all.equal(
obj4$msmfit$coefficients,
obj5$msmfit$coefficients, check.names=FALSE))
##### non linear
# behavior changes when considering self interactions!
f0c = survival::Surv(time, d)~ x1 + x1:x1
f1c = survival::Surv(time, d)~ x1^2
f3c = survival::Surv(time, d)~ x1 + I(x1*x1)
f4c = survival::Surv(time, d)~ x1 + I(x1^2)
stopifnot(all.equal(
survival::coxph(f0c, data=dat)$coefficients,
survival::coxph(f1c, data=dat)$coefficients, check.names=FALSE))
stopifnot(all.equal(
survival::coxph(f3c, data=dat)$coefficients,
survival::coxph(f4c, data=dat)$coefficients, check.names=FALSE))
stopifnot(all.equal(
survival::coxph(f0c, data=dat)$coefficients,
survival::coxph(f3c, data=dat)$coefficients, check.names=FALSE)=="Numeric: lengths (1, 2) differ")
f0 = d~ x1 + x1:x1
f1 = d~ x1^2
f3 = d~ x1 + I(x1*x1)
f4 = d~ x1 + I(x1^2)
glm(f0, data=dat, family=binomial())$coefficients
glm(f1, data=dat, family=binomial())$coefficients
glm(f3, data=dat, family=binomial())$coefficients
glm(f4, data=dat, family=binomial())$coefficients
stopifnot(all.equal(
glm(f0, data=dat, family=binomial())$coefficients,
glm(f1, data=dat, family=binomial())$coefficients, check.names=FALSE))
stopifnot(all.equal(
glm(f3, data=dat, family=binomial())$coefficients,
glm(f4, data=dat, family=binomial())$coefficients, check.names=FALSE))
stopifnot(all.equal(
glm(f0, data=dat, family=binomial())$coefficients,
glm(f3, data=dat, family=binomial())$coefficients, check.names=FALSE)=="Numeric: lengths (2, 3) differ")
res = try(obj0 <- qgcomp(f0, expnms = expnms,
data = dat, B=2, family=binomial())) # defaults to RR
stopifnot(inherits(res,"qgcompfit"))
#res = try(obj0 <- qgcomp(f0, expnms = expnms,
# data = dat, B=2, family=gaussian())) # gives error due to B
res = try(obj1 <- qgcomp(f1, expnms = expnms, data = dat, B=2, family=binomial()))
#res = try(obj1 <- qgcomp(f1, expnms = expnms,
# data = dat, B=2, family=gaussian())) # gives error due to B
res = try(obj3 <- qgcomp(f3, expnms = expnms,
data = dat, B=2, family=binomial())) # defaults to RR
stopifnot(inherits(res,"qgcompfit"))
#res = try(obj0 <- qgcomp(f0, expnms = expnms,
# data = dat, B=2, family=gaussian())) # gives error due to B
res = try(obj4 <- qgcomp(f4, expnms = expnms, data = dat, B=2, family=binomial()))
#res = try(obj1 <- qgcomp(f1, expnms = expnms,
# data = dat, B=2, family=gaussian())) # gives error due to B
stopifnot(inherits(res,"qgcompfit"))
stopifnot(all.equal(
obj0$fit$coefficients,
obj1$fit$coefficients, check.names=FALSE))
stopifnot(all.equal(
obj3$fit$coefficients,
obj4$fit$coefficients, check.names=FALSE))
stopifnot(all.equal(
obj0$fit$coefficients,
obj3$fit$coefficients, check.names=FALSE)=="Numeric: lengths (2, 3) differ")
# should result in different MSMs
stopifnot(substr(all.equal(
obj0$msmfit$coefficients,
obj3$msmfit$coefficients, check.names=FALSE), 1, 10)=="Mean relat")
cat("done")
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.