context("chi2 test statistic regression tests")
test_that("CCC chi2 test statistic regression tests", {
testthat::skip_on_cran()
set.seed(3141)
N = 1034 # Sample size
tau = 0.5
# Four-dimensional Clayton copula (D-vine)
structure = matrix(c(4,0,0,0,
1,3,0,0,
2,1,2,0,
3,2,1,1),4,4,TRUE)
families = array(3,dim=dim(structure))
par2 = array(0,dim=dim(structure))
names = c("V1", "V2", "V3","V4")
par_firstTree = BiCopTau2Par(3, tau)
par_secondTree = par_firstTree/(1+par_firstTree)
par_thirdTree = par_firstTree/(1+2*par_firstTree)
par = matrix(c(0,0,0,0,
par_thirdTree,0,0,0,
par_secondTree,par_secondTree,0,0,
par_firstTree,par_firstTree,par_firstTree,0),4,4,TRUE)
rvm = RVineMatrix(structure,families,par,par2,names)
rvm = RVineMatrixNormalize(rvm)
U = RVineSim(N,rvm)
rvmHat = RVineSeqEst(U,rvm)
svcmDataFrameHat = pacotest:::rVineDataFrameRep(rvmHat)
ind = matrix(NA,N,2)
ind[,1] = c(rep(TRUE,N/2),rep(FALSE,N/2))
ind[,2] = !ind[,1]
res = pacotest:::testStatEqualCorrWithoutEstimation(U, svcmDataFrameHat, ind)
resWithEstimation = pacotest:::testStatEqualCorrWithEstimation(U, svcmDataFrameHat, ind)
expect_equal(res$testStat,0.83383352525331200233, tolerance = 1e-4)
expect_equal(res$pValue,0.36116636240337429697, tolerance = 1e-4)
expect_equal(resWithEstimation$testStat,0.83806639986719244639, tolerance = 1e-4)
expect_equal(resWithEstimation$pValue,0.35995036758727094739, tolerance = 1e-4)
ind = matrix(NA,N,3)
ind[,1] = c(rep(TRUE,500),rep(FALSE,N-500))
ind[,2] = c(rep(FALSE,500),rep(TRUE,331),rep(FALSE,N-831))
ind[,3] = c(rep(FALSE,500),rep(FALSE,331),rep(TRUE,N-831))
res = pacotest:::testStatEqualCorrWithoutEstimation(U, svcmDataFrameHat, ind)
resWithEstimation = pacotest:::testStatEqualCorrWithEstimation(U, svcmDataFrameHat, ind)
expect_equal(res$testStat,2.454766624833430555, tolerance = 1e-4)
expect_equal(res$pValue,0.29305841758446760092, tolerance = 1e-4)
expect_equal(resWithEstimation$testStat,2.4885575465500195946, tolerance = 1e-4)
expect_equal(resWithEstimation$pValue,0.28814865371576092734, tolerance = 1e-4)
ind = matrix(NA,N,4)
ind[,1] = c(rep(TRUE,300),rep(FALSE,200),rep(FALSE,N-500))
ind[,2] = c(rep(FALSE,300),rep(FALSE,200),rep(TRUE,331),rep(FALSE,N-831))
ind[,3] = c(rep(FALSE,300),rep(FALSE,200),rep(FALSE,331),rep(TRUE,N-831))
ind[,4] = c(rep(FALSE,300),rep(TRUE,200),rep(FALSE,331),rep(FALSE,N-831))
res = pacotest:::testStatEqualCorrWithoutEstimation(U, svcmDataFrameHat, ind)
resWithEstimation = pacotest:::testStatEqualCorrWithEstimation(U, svcmDataFrameHat, ind)
expect_equal(res$testStat,2.7721624555651458444, tolerance = 1e-4)
expect_equal(res$pValue,0.42810299746943947241, tolerance = 1e-4)
expect_equal(resWithEstimation$testStat,2.7923075161895125618, tolerance = 1e-4)
expect_equal(resWithEstimation$pValue,0.42476780288929938401, tolerance = 1e-4)
set.seed(31412131)
# Data set 2
N= 1756
# Four-dimensional D-vine
structure = matrix(c(4,0,0,0,
1,3,0,0,
2,1,2,0,
3,2,1,1),4,4,TRUE)
families = matrix(c(0,0,0,0,
5,0,0,0,
1,1,0,0,
2,2,2,0),4,4,TRUE)
par2 = matrix(c(0,0,0,0,
0,0,0,0,
0,0,0,0,
3,8,6,0),4,4,TRUE)
par = matrix(c(0,0,0,0,
5,0,0,0,
0.4,0.3,0,0,
0.5,0.8,0.6,0),4,4,TRUE)
names = c("V1", "V2", "V3","V4")
rvm2 = RVineMatrix(structure,families,par,par2,names)
rvm2 = RVineMatrixNormalize(rvm2)
U2 = RVineSim(N,rvm2)
rvmHat2 = RVineSeqEst(U2,rvm2)
svcmDataFrameHat2 = pacotest:::rVineDataFrameRep(rvmHat2)
ind = matrix(NA,N,2)
ind[,1] = c(rep(TRUE,N/2),rep(FALSE,N/2))
ind[,2] = !ind[,1]
res2 = pacotest:::testStatEqualCorrWithoutEstimation(U2, svcmDataFrameHat2, ind)
resWithEstimation2 = pacotest:::testStatEqualCorrWithEstimation(U2, svcmDataFrameHat2, ind)
expect_equal(res2$testStat,1.1630787964924615974, tolerance = 1e-4)
expect_equal(res2$pValue,0.28082793910460845943, tolerance = 1e-4)
expect_equal(resWithEstimation2$testStat,1.1624376678721606293, tolerance = 1e-4)
expect_equal(resWithEstimation2$pValue,0.28096056269652236459, tolerance = 1e-4)
ind = matrix(NA,N,3)
ind[,1] = c(rep(TRUE,500),rep(FALSE,N-500))
ind[,2] = c(rep(FALSE,500),rep(TRUE,331),rep(FALSE,N-831))
ind[,3] = c(rep(FALSE,500),rep(FALSE,331),rep(TRUE,N-831))
res2 = pacotest:::testStatEqualCorrWithoutEstimation(U2, svcmDataFrameHat2, ind)
resWithEstimation2 = pacotest:::testStatEqualCorrWithEstimation(U2, svcmDataFrameHat2, ind)
expect_equal(res2$testStat,1.8312662134969845962, tolerance = 1e-4)
expect_equal(res2$pValue,0.40026313656338963209, tolerance = 1e-4)
expect_equal(resWithEstimation2$testStat,1.8292571074745975768, tolerance = 1e-4)
expect_equal(resWithEstimation2$pValue,0.40066542412825645325, tolerance = 1e-4)
ind = matrix(NA,N,4)
ind[,1] = c(rep(TRUE,300),rep(FALSE,200),rep(FALSE,N-500))
ind[,2] = c(rep(FALSE,300),rep(FALSE,200),rep(TRUE,331),rep(FALSE,N-831))
ind[,3] = c(rep(FALSE,300),rep(FALSE,200),rep(FALSE,331),rep(TRUE,N-831))
ind[,4] = c(rep(FALSE,300),rep(TRUE,200),rep(FALSE,331),rep(FALSE,N-831))
res2 = pacotest:::testStatEqualCorrWithoutEstimation(U2, svcmDataFrameHat2, ind)
resWithEstimation2 = pacotest:::testStatEqualCorrWithEstimation(U2, svcmDataFrameHat2, ind)
expect_equal(res2$testStat,2.704885100069900794, tolerance = 1e-4)
expect_equal(res2$pValue,0.43939776104000616286, tolerance = 1e-4)
expect_equal(resWithEstimation2$testStat,2.708403331235642586, tolerance = 1e-4)
expect_equal(resWithEstimation2$pValue,0.43880112469349530357, tolerance = 1e-4)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.