Nothing
#' @title Testing fit: SuperLeaner & k_split
#' @section Last Updated By:
#' Yongqi Zhong
#' @section Last Update Date:
#' 2021/01/25
test_that("AIPW fit: SuperLeaner & k_split", {
require(SuperLearner)
##k_split == 1: no cross-fitting
vec <- function() sample(0:1,100,replace = T)
sl.lib <- c("SL.mean","SL.glm")
aipw <- AIPW$new(Y=vec(),
A=vec(),
W.Q =vec(),
W.g =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 1,verbose = FALSE,
save.sl.fit = TRUE)
aipw$fit()
#check any null values after calculating results
expect_false(any(sapply(aipw$libs, is.null)))
expect_false(any(sapply(aipw$obs_est[1:4], is.na))) #mu - raw_p_score
expect_true(any(sapply(aipw$obs_est[5:7], is.null)))
expect_true(is.null(aipw$result))
expect_true(is.null(aipw$estimate))
##k_split >=3: cross-fitting == k_split
aipw <- AIPW$new(Y=vec(),
A=vec(),
W.Q =vec(),
W.g =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 2,verbose = FALSE)
aipw <- AIPW$new(Y=vec(),
A=vec(),
W.Q =vec(),
W.g =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 3,verbose = FALSE,
save.sl.fit = TRUE)
aipw$fit()
expect_false(any(sapply(aipw$libs, is.null)))
expect_false(any(sapply(aipw$obs_est[1:4], is.na))) #mu - raw_p_score
expect_true(any(sapply(aipw$obs_est[5:7], is.null)))
expect_true(is.null(aipw$result))
expect_true(is.null(aipw$estimate))
})
#' @title Testing fit: verbose and progressr
#' @section Last Updated By:
#' Yongqi Zhong
#' @section Last Update Date:
#' 2021/01/20
test_that("AIPW fit: verbose", {
#verbose == TRUE: "Done!"
library(SuperLearner)
vec <- function() sample(0:1,100,replace = T)
sl.lib <- c("SL.mean","SL.glm")
aipw <- AIPW$new(Y=vec(),
A=vec(),
W.Q =vec(),
W.g =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 1,verbose = T)
expect_message(aipw$fit(),regexp = "Done!")
##progressr
#when progressr not loaded
expect_false(aipw$.__enclos_env__$private$isLoaded_progressr)
#when loaded
library(progressr)
aipw$fit()
expect_true(aipw$.__enclos_env__$private$isLoaded_progressr)
})
#' @title Testing fit: missing outcome reporting (N)
#' @section Last Updated By:
#' Yongqi Zhong
#' @section Last Update Date:
#' 2021/03/24
test_that("AIPW fit: missing outcome", {
require(SuperLearner)
vec <- function() sample(0:1,100,replace = T)
sl.lib <- c("SL.mean","SL.glm")
##k_split == 1: no cross-fitting
expect_warning(aipw <- AIPW$new(Y=c(NA,vec()[2:100]),
A=c(1,vec()[2:100]),
W =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 1,verbose = FALSE)$fit())
#Check nuisance functions with missing data
expect_true(is.na(aipw$obs_est$mu0[1]))
expect_true(is.na(aipw$obs_est$mu1[1]))
expect_true(is.na(aipw$obs_est$mu[1]))
expect_false(is.na(aipw$obs_est$raw_p_score[1]))
##k_split == 2: 2 fold cross-fitting
expect_warning(aipw <- AIPW$new(Y=c(NA,vec()[2:100]),
A=c(1,vec()[2:100]),
W =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 2,verbose = FALSE)$fit())
#Check nuisance functions with missing data
expect_true(is.na(aipw$obs_est$mu0[1]))
expect_true(is.na(aipw$obs_est$mu1[1]))
expect_true(is.na(aipw$obs_est$mu[1]))
expect_false(is.na(aipw$obs_est$raw_p_score[1]))
##k_split == 3: 3 fold cross-fitting
expect_warning(aipw <- AIPW$new(Y=c(NA,vec()[2:100]),
A=c(1,vec()[2:100]),
W =vec(),
Q.SL.library=sl.lib,
g.SL.library=sl.lib,
k_split = 3,verbose = FALSE)$fit())
#Check nuisance functions with missing data
expect_true(is.na(aipw$obs_est$mu0[1]))
expect_true(is.na(aipw$obs_est$mu1[1]))
expect_true(is.na(aipw$obs_est$mu[1]))
expect_false(is.na(aipw$obs_est$raw_p_score[1]))
})
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.