aa <- airquality
aa2 <- rbind(aa, aa)
testthat::test_that("summary_c2c is properly adjust the std error", {
ll <- lm(Ozone ~ ., aa)
ss <- summary(ll)
ll2 <- lm(Ozone ~ ., aa2)
ss2 <- summary_c2c(ll2, ll$df.residual, ll2$df.residual)
expect_equal(unname(ss$coefficients[, 3]), ss2[, 7])
})
data("occup", package = "cat2cat")
data("trans", package = "cat2cat")
occup_old <- occup[occup$year == 2008, ]
occup_new <- occup[occup$year == 2010, ]
data_simple <- list(
old = occup_old, new = occup_new, cat_var = "code", time_var = "year"
)
mappings_simple_back <- list(trans = trans, direction = "backward")
ml <- list(
data = occup_new,
cat_var = "code",
method = c("knn", "rf", "lda"),
features = c("age", "sex", "edu", "exp", "parttime", "salary"),
args = list(k = 10, ntree = 30)
)
testthat::test_that(
"summary_c2c is properly adjust the std error - cat2cat case",
{
occup <- cat2cat(
data = data_simple,
mappings = mappings_simple_back,
ml = ml
)
lms <- lm(
I(log(salary)) ~ age + sex + factor(edu) + parttime + exp, occup$old,
weights = multiplier * wei_freq_c2c
)
ss_c2c <- summary_c2c(lms, df_old = nrow(occup_old) - length(lms$assign))
lms$df.residual <- nrow(occup_old) - length(lms$assign)
ss1 <- suppressWarnings(summary(lms))
lms2 <- lm(
I(log(salary)) ~ age + sex + factor(edu) + parttime + exp, occup_old,
weights = multiplier
)
ss2 <- summary(lms2)
expect_true(sum((ss2$coefficients[, 2] - ss1$coefficients[, 2])**2) < 0.01)
expect_true(sum((ss2$coefficients[, 2] - ss_c2c$std.error_c)**2) < 0.01)
}
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.