tests/testthat/test-weights.R

library(testthat)
context("Weights")


test_that("Effective Sample Size",
{
    expect_equal(EffectiveSampleSize(rep(1,100)), 100)
    expect_equal(EffectiveSampleSize(c(10, rep(1,9))), 3.311927, tolerance = 0.00001)
    expect_error(EffectiveSampleSize(c(Inf, rep(1,9))))
    expect_error(EffectiveSampleSize(c(-1, rep(1,9))))
    expect_error(EffectiveSampleSize(c(NA, rep(1,9))))
})

test_that("Calibrate weights",
{
    s <- rep(c(1, 2), 5)
    w <- c(1, 10)[s]
    expect_equal(sum(CalibrateWeight(w)), EffectiveSampleSize(w))
    expect_equal(sum(CalibrateWeight(w, s)), length(s))
})


#
# ## one-stage cluster sample
#
# dclus1<-svydesign(id=~dnum, weights=~pw, data=apiclus1, fpc=~fpc)
#
# svymean(~api00, dclus1, deff=TRUE)
# svymean(~factor(stype),dclus1)
# svymean(~interaction(stype, comp.imp), dclus1)
# svyquantile(~api00, dclus1, c(.25,.5,.75))
# svytotal(~enroll, dclus1, deff=TRUE)
# svyratio(~api.stu, ~enroll, dclus1)
#
# v<-svyvar(~api00+api99, dclus1)
# v
# print(v, cov=TRUE)
# as.matrix(v)
#
# # replicate weights - jackknife (this is slower)
# dstrat<-svydesign(id=~1,strata=~stype, weights=~pw,
#                   data=apistrat, fpc=~fpc)
# jkstrat<-as.svrepdesign(dstrat)
#
# svymean(~api00, jkstrat)
# svymean(~factor(stype),jkstrat)
# svyvar(~api00+api99,jkstrat)
#
# svyquantile(~api00, jkstrat, c(.25,.5,.75))
# svytotal(~enroll, jkstrat)
# svyratio(~api.stu, ~enroll, jkstrat)
#
# # coefficients of variation
# cv(svytotal(~enroll,dstrat))
# cv(svyratio(~api.stu, ~enroll, jkstrat))
#
# # extracting information from the results
# coef(svytotal(~enroll,dstrat))
# vcov(svymean(~api00+api99,jkstrat))
# SE(svymean(~enroll, dstrat))
# confint(svymean(~api00+api00, dclus1))
#
# # Design effect
# svymean(~api00, dstrat, deff=TRUE)
# svymean(~api00, dstrat, deff="replace")
# svymean(~api00, jkstrat, deff=TRUE)
# svymean(~api00, jkstrat, deff="replace")
# (a<-svytotal(~enroll, dclus1, deff=TRUE))
# deff(a)
NumbersInternational/flipData documentation built on March 2, 2024, 10:52 a.m.