Nothing
library(smcfcs)
context("Bias reduced model testing")
test_that("smcfcs gives error with perfect prediction and logreg method", {
#note that this is not guaranteed (for an arbitrary seed) to give an error
#because smcfcs initialises by randomly selecting some observed values, and
#these are used in the covariate model fits (unlike in mice)
suppressWarnings(
expect_error({
n <- 10
z <- c(0,0,0,0,0,1,1,1,1,1)
x <- z
y <- x+rnorm(n)
x[c(5,10)] <- NA
simData <- data.frame(x,z,y)
#impute x using z as an auxiliary variable
predMat <- array(0, dim=c(3,3))
predMat[1,2] <- 1
rm(x,z,y)
set.seed(62377)
imps <- smcfcs(simData, smtype="lm", smformula="y~x",
method=c("logreg", "", ""), predictorMatrix=predMat, m=1)
}))
})
test_that("smcfcs gives no warnings or errors with perfect prediction and brlogreg method", {
expect_error({
n <- 10
z <- c(0,0,0,0,0,1,1,1,1,1)
x <- z
y <- x+rnorm(n)
x[c(5,10)] <- NA
simData <- data.frame(x,z,y)
rm(x,z,y)
#impute x using z as an auxiliary variable
predMat <- array(0, dim=c(3,3))
predMat[1,2] <- 1
set.seed(62377)
imps <- smcfcs(simData, smtype="lm", smformula="y~x",
method=c("brlogreg", "", ""), predictorMatrix=predMat, m=1)
}, NA)
})
test_that("brlogreg gives results with minimal bias under perfect prediction between predictors", {
skip_on_cran()
expect_equal({
set.seed(1234)
n <- 1000
nSim <- 100
expit <- function(x) {
exp(x)/(1+exp(x))
}
simEsts <- array(0, dim=c(nSim,2))
for (i in 1:nSim) {
z <- 1*(runif(n)<0.5)
#true log odds parameters of x|z are finite but very large
x <- 1*(runif(n)<expit(-10+20*z))
x[runif(n)<0.25] <- NA
y <- x+rnorm(n)
simData <- data.frame(x,z,y)
rm(x,z,y)
#impute x using z as an auxiliary variable
predMat <- array(0, dim=c(3,3))
predMat[1,2] <- 1
imps <- smcfcs(simData, smtype="lm", smformula="y~x",
method=c("brlogreg", "", ""), predictorMatrix=predMat)
library(mitools)
impobj <- imputationList(imps$impDatasets)
smcfcsRes <- MIcombine(with(impobj, lm(y~x)))
simEsts[i,] <- smcfcsRes$coefficients
}
ttestRes <- t.test(simEsts[,2], mu=1)
ttestRes$p.value>0.05
}, TRUE)
})
test_that("smcfcs gives no warnings or errors with perfect prediction and brlogistic method
for substantive model and covariate model", {
expect_error({
n <- 10
x <- c(0,0,0,0,0,1,1,1,1,1)
y <- c(0,0,0,0,0,1,1,1,1,1)
x[c(5,10)] <- NA
simData <- data.frame(x,y)
rm(x,y)
set.seed(62377)
imps <- smcfcs(simData, smtype="brlogistic", smformula="y~x",
method=c("brlogreg", ""), m=1)
}, NA)
})
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.