Nothing
library(testthat)
library(pcFactorStan)
context("test-5loo")
skip_on_cran()
options(mc.cores=2)
suppressWarnings(RNGversion("3.6"))
library(rstan) # for get_logposterior
library(mvtnorm) # rmvnorm
test_that("loo univariate", {
set.seed(1)
palist <- letters[1:10]
df <- twoLevelGraph(palist, 300)
theta <- rnorm(length(palist))
names(theta) <- palist
df <- generateItem(df, theta, th=rep(0.5, 4))
df <- filterGraph(df)
df <- normalizeData(df)
dl <- prepCleanData(df)
dl$scale <- 1.5
m1 <- suppressWarnings(pcStan("unidim_ll", dl, chains=2L, iter=300))
loo1 <- suppressWarnings(toLoo(m1, cores=1))
expect_error(outlierTable(df, loo1),
"Data must be processed by prepData")
})
test_that("loo", {
library(testthat)
library(pcFactorStan)
options(mc.cores=2)
suppressWarnings(RNGversion("3.5"))
library(rstan) # for get_logposterior
library(mvtnorm) # rmvnorm
set.seed(1)
palist <- letters[1:10]
numItems <- 3
boundary <- 300
df1 <- twoLevelGraph(palist, boundary)
trueCor <- cov2cor(rWishart(1, numItems, diag(numItems))[,,1])
theta <- rmvnorm(length(palist), sigma=trueCor)
dimnames(theta) <- list(palist, paste0('i', 1:numItems))
df1 <- generateItem(df1, theta, th=rep(0.5, 4), alpha=1.25)
df2 <- twoLevelGraph(palist, 30)
df2 <- generateItem(df2, -theta, th=rep(0.5, 4), alpha=1.25)
df <- rbind(df1, df2)
for (k in paste0('pa',1:2)) df[[k]] <- factor(df[[k]], levels=palist)
df <- filterGraph(df)
df <- normalizeData(df)
dl <- prepCleanData(df)
dl$scale <- rep(1.5, dl$NITEMS)
# this *sometimes* generates warnings about divergent transitions
m1 <- suppressWarnings(pcStan("correlation_ll", dl, chains=2L, iter=400L))
loo1 <- suppressWarnings(toLoo(m1, cores=1))
ot <- outlierTable(dl, loo1, .3)
expect_true(nrow(ot) > 0)
bad <- df[df$pa1==ot[1,'pa1'] & df$pa2==ot[1,'pa2'],]
# no idea how to write tests for this TODO
})
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.