Nothing
#devtools::test("asremlPlus")
context("model_selection")
asr41.lib <- "D:\\Analyses\\R ASReml4.1"
cat("#### Test for boot using wheat example with asreml41\n")
test_that("Wheatboot_asreml41", {
skip_if_not_installed("asreml")
skip_on_cran()
library(dae)
library(asreml, lib.loc = asr41.lib)
library(asremlPlus)
## use asremlPlus to analyse the wheat (barley) example from section 8.6 of the asreml manual (Butler et al. 2010)
data(Wheat.dat)
#'## Add cubic trend to Row so that spline is not bound
Wheat.dat <- within(Wheat.dat,
{
vRow <- as.numeric(Row)
vRow <- vRow - mean(unique(vRow))
yield <- yield + 10*vRow + 10 * (vRow^2) + 5 * (vRow^3)
})
# Fit initial model
asreml.options(design = TRUE)
current.asr <- do.call("asreml",
list(yield ~ Rep + WithinColPairs + Variety,
random = ~ spl(vRow) + Row + Column + units,
residual = ~ ar1(Row):ar1(Column),
maxit=100, data=Wheat.dat))
summary(current.asr)$varcomp
info <- infoCriteria(current.asr)
testthat::expect_equal(info$varDF, 5)
testthat::expect_lt(abs(info$AIC - 1357.118), 1e-03)
# Load current fit into an asrtests object
current.asrt <- as.asrtests(current.asr, NULL, NULL)
# Check for and remove any boundary terms
current.asrt <- rmboundary(current.asrt)
#Check term for within Column pairs
current.asrt <- testranfix(current.asrt, "WithinColPairs", drop.fix.ns=TRUE)
# Test nugget term
current.asrt <- testranfix(current.asrt, "units", positive=TRUE)
current.asrt$test.summary
# Use bootstrap to test units
full.asreml.obj <- current.asrt$asreml.obj
reduced.asreml.obj <- update(full.asreml.obj, random = ~ . - units)
units.lrt <- REMLRT(h0.asreml.obj = reduced.asreml.obj,
h1.asreml.obj = full.asreml.obj)
boot.units <- bootREMLRT(h0.asreml.obj = reduced.asreml.obj,
h1.asreml.obj = full.asreml.obj,
nboot = 100, seed = 6250,
fixed.spline.terms = "spl(vRow)")
testthat::expect_equal(length(boot.units), 6)
testthat::expect_equal(boot.units$DF, 1)
testthat::expect_equal(length(boot.units$REMLRT.sim) +
length(attr(boot.units$REMLRT.sim, which = "na.action")), 100)
testthat::expect_equal(length(boot.units$nunconverged), 100)
testthat::expect_lt(abs(boot.units$REMLRT - 10.9), 1e-01)
testthat::expect_lt(abs(boot.units$REMLRT - units.lrt$REMLRT), 1e-01)
# Use bootstrap to test Row autocorrelation
full.asreml.obj <- current.asrt$asreml.obj
reduced.asreml.obj <- update(full.asreml.obj, residual. = ~ Row:ar1(Column))
arR.lrt <- REMLRT(h0.asreml.obj = reduced.asreml.obj,
h1.asreml.obj = full.asreml.obj)
REMLRT(h0.asreml.obj = reduced.asreml.obj,
h1.asreml.obj = full.asreml.obj, bound.exclusions = "B")
boot.units <- bootREMLRT(h0.asreml.obj = reduced.asreml.obj,
h1.asreml.obj = full.asreml.obj,
nboot = 100, seed = 6250,
fixed.spline.terms = "spl(vRow)")
testthat::expect_equal(length(boot.units), 6)
testthat::expect_equal(boot.units$DF, 2)
testthat::expect_equal(length(boot.units$REMLRT.sim) +
length(attr(boot.units$REMLRT.sim, which = "na.action")), 100)
testthat::expect_equal(length(boot.units$nunconverged), 100)
testthat::expect_lt(abs(boot.units$REMLRT - 29.8), 1e-01)
testthat::expect_lt(abs(boot.units$REMLRT - arR.lrt$REMLRT), 1e-01)
# Use bootstrap to test Col autocorrelation
reduced.asreml.obj <- update(full.asreml.obj, residual. = ~ ar1(Row):Column)
arC.lrt <- REMLRT(h0.asreml.obj = reduced.asreml.obj,
h1.asreml.obj = full.asreml.obj)
boot.units <- bootREMLRT(h0.asreml.obj = reduced.asreml.obj,
h1.asreml.obj = full.asreml.obj,
nboot = 100, seed = 6250,
fixed.spline.terms = "spl(vRow)")
testthat::expect_equal(length(boot.units), 6)
testthat::expect_equal(boot.units$DF, 1)
testthat::expect_equal(length(boot.units$REMLRT.sim) +
length(attr(boot.units$REMLRT.sim, which = "na.action")), 100)
testthat::expect_equal(length(boot.units$nunconverged), 100)
testthat::expect_lt(abs(boot.units$REMLRT - 56.1), 1e-01)
testthat::expect_lt(abs(boot.units$REMLRT - arC.lrt$REMLRT), 1e-01)
asreml.options(design = FALSE)
})
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.