Nothing
test_that("PLS 'a la carte' is consistent with mixOmics", {
skip_on_cran()
for (scale in c(TRUE, FALSE)) {
# Data simulation
set.seed(1)
simul <- SimulateRegression(n = 20, pk = 15, q = 3, family = "gaussian", nu_xy = 1)
x <- simul$xdata + 10
y <- simul$ydata + 10
# Parameters
ncomp <- 3
# Using mixOmics
mypls1 <- mixOmics::pls(X = x, Y = y, ncomp = ncomp, scale = scale)
# Using our implementation
mypls2 <- PLS(xdata = x, ydata = y, ncomp = ncomp, scale = scale)
# Checking consistency in X-weights (i.e. that Wmat are X-loadings in mixOmics)
expect_true(min(diag(cor(mypls1$loadings$X, mypls2$Wmat))) > 0.99)
# Checking consistency in X-loadings (i.e. that Pmat are mat.c in mixOmics)
expect_true(min(diag(cor(mypls1$mat.c, mypls2$Pmat))) > 0.99)
# Checking consistency in X-scores (i.e. that Tmat are X-variates in mixOmics)
expect_true(min(diag(cor(mypls1$variates$X, mypls2$Tmat))) > 0.99)
# Checking consistency in Y-scores (i.e. that Umat are Y-variates in mixOmics)
expect_true(min(diag(cor(mypls1$variates$Y, mypls2$Umat))) > 0.99)
# New data simulation
set.seed(1)
simul <- SimulateRegression(n = 20, pk = c(5, 5, 5), family = "gaussian")
newdata <- simul$xdata + 1
# Predicting values
predicted1 <- predict(mypls1, newdata = newdata)$predict
predicted2 <- PredictPLS(xdata = newdata, model = mypls2)
# Checking consistency in predictions
for (comp in 1:ncomp) {
expect_true(min(diag(cor(predicted1[, , comp], predicted2[, , comp]))) > 0.99)
}
# plot(predicted1[,1,1], y[,1], panel.first=abline(0,1,col="red"))
# plot(predicted2[,1,1], y[,1], panel.first=abline(0,1,col="red"))
}
})
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.