Nothing
# Also see the first test in rotations.R
# compares varimax to Varimax to 0.001 discrepancy
Sys.getenv("R_LIBS")
library()
require("GPArotation")
search()
Sys.info()
### note that this is a slightly lower bar than other tests
### to correct for the built-in varimax function working differently
### than GPA, and to ensure Varimax convergence
### these are differences in the 4th decimal or better
fuzz <- 1e-4
###
all.ok <- TRUE
sortFac <- function(x){ # Based on Fungible faSort
vx <- order(colSums(x$loadings^2), decreasing = TRUE)
Dsgn <- diag(sign(colSums(x$loadings^3))) [ , vx]
x$Th <- x$Th %*% Dsgn
x$loadings <- x$loadings %*% Dsgn
if ("Phi" %in% names(x)) {
x$Phi <- diag(1/diag(Dsgn)) %*% x$Phi %*% Dsgn
}
x
}
data(Thurstone, package="GPArotation")
yv1 <- varimax(box20, normalize = FALSE, eps = 1e-7) #built-in R
names(yv1) <- c("loadings","Th")
yv1 <- sortFac(yv1)
yv2 <- sortFac(Varimax(box20, normalize = FALSE, maxit = 10000, eps = 1e-7)) #GPArotation version
# yv.diff <- unclass(yv1$loadings) - unclass(yv2$loadings)
# max(abs(yv.diff))
if( fuzz < max(abs(yv1$loadings - yv2$loadings))) {
cat("Calculated varimax is not the same as Varimax:\n")
# print(yv2$loadings, digits=18)
cat("difference:\n")
print(yv1$loadings - yv2$loadings, digits=18)
all.ok <- 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.