test_that("simulated data makes sense", {
n <- 1000
params <- list(mu = 0, sigma = 1)
data <- simulate_data(stanmodels$norm, params, n)
expect_that(nrow(data), equals(n))
expect_true("y" %in% names(data))
expect_true(abs(mean(data$y)) <= 0.1)
expect_true(abs(var(data$y) - 1) <= 0.1)
})
test_that("regression model recovers coefficients", {
parameters <- list(
mu = c(1, 2),
Sigma = matrix(c(1, 0.5, 0.5, 1), nrow = 2),
beta = c(1, 1),
sd_epsilon = 1
)
data <- list(K = 2)
sims <- simulate_data(
model = stanmodels$regression,
parameters = parameters,
n = 1000,
data = data
)
for (k in c("y", "X.1", "X.2")) {
expect_true(k %in% names(sims))
}
## expect_that(names(sims), equals("one"))
## fit <- lm(y ~ 0 + X.1 + X.2, data = sims)
## beta <- coef(fit)
## expect_true(abs(beta - data$beta) <= 0.1)
})
test_that("normal distribution with known variance works", {
d <- 0.5
n <- 25
sig.level = 0.05
## expected <- pwr.norm.test(d = d, n = n, sig.level = sig.level)
dgp <- function() {
simulate_data(stanmodels$norm, list(mu = d, sigma = 1), n = n)
}
reject <- function(df) {
zscore <- mean(df$y) * sqrt(n)
low <- qnorm(sig.level / 2, mean = 0, sd = 1)
high <- qnorm(1 - (sig.level / 2), mean = 0, sd = 1)
return((zscore < low) | (high < zscore))
}
x <- calculate_power(dgp, reject, 5)
expect_true(x >= 0)
expect_true(x <= 1)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.