Nothing
##### several checks for function elementary_symmetric_functions()
##### 2012/09/07, BAEK
##### preliminaries
library("psychotools")
set.seed(1)
##################################################
##### dichotomous items (zero and first order derivatives)
##################################################
di10 <- runif(10, -2.5, 2.5)
di20 <- runif(20, -2.5, 2.5)
elementary_symmetric_functions(di10)
elementary_symmetric_functions(di20)
## with 10 items, everything is fine
all.equal(elementary_symmetric_functions(di10, order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(di10, order = 1, engine = "C", diff = FALSE)) # R-bin sum vs. C sum
all.equal(elementary_symmetric_functions(di10, order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(di10, order = 1, engine = "C", diff = TRUE)) # R-bin sum vs. C diff
all.equal(elementary_symmetric_functions(di10, order = 1, engine = "R", diff = TRUE), elementary_symmetric_functions(di10, order = 1, engine = "C", diff = FALSE)) # R-bin diff vs. C sum
all.equal(elementary_symmetric_functions(di10, order = 1, engine = "R", diff = TRUE), elementary_symmetric_functions(di10, order = 1, engine = "C", diff = TRUE)) # R-bin diff vs. C diff
all.equal(elementary_symmetric_functions(as.list(di10), order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(di10, order = 1, engine = "R", diff = FALSE)) # R-poly sum vs. R-bin sum
all.equal(elementary_symmetric_functions(as.list(di10), order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(di10, order = 1, engine = "R", diff = TRUE)) # R-poly sum vs. R-bin diff
all.equal(elementary_symmetric_functions(as.list(di10), order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(di10, order = 1, engine = "R", diff = FALSE)) # R-poly diff vs. R-bin sum
all.equal(elementary_symmetric_functions(as.list(di10), order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(di10, order = 1, engine = "R", diff = TRUE)) # R-poly diff vs. R-bin diff
## with 20 items we get (rounding) errors for difference algorithm :)
all.equal(elementary_symmetric_functions(di20, order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(di20, order = 1, engine = "C", diff = FALSE)) # R-bin sum vs. C sum
all.equal(elementary_symmetric_functions(di20, order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(di20, order = 1, engine = "C", diff = TRUE)) # R-bin sum vs. C diff
all.equal(elementary_symmetric_functions(di20, order = 1, engine = "R", diff = TRUE), elementary_symmetric_functions(di20, order = 1, engine = "C", diff = FALSE)) # R-bin diff vs. C sum
all.equal(elementary_symmetric_functions(di20, order = 1, engine = "R", diff = TRUE), elementary_symmetric_functions(di20, order = 1, engine = "C", diff = TRUE)) # R-bin diff vs. C diff
all.equal(elementary_symmetric_functions(as.list(di20), order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(di20, order = 1, engine = "R", diff = FALSE)) # R-poly sum vs. R-bin sum
all.equal(elementary_symmetric_functions(as.list(di20), order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(di20, order = 1, engine = "R", diff = TRUE)) # R-poly sum vs. R-bin diff
all.equal(elementary_symmetric_functions(as.list(di20), order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(di20, order = 1, engine = "R", diff = FALSE)) # R-poly diff vs. R-bin sum
all.equal(elementary_symmetric_functions(as.list(di20), order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(di20, order = 1, engine = "R", diff = TRUE)) # R-poly diff vs. R-bin diff
## second order derivatives (only implemented for R-bin sum/diff)
all.equal(elementary_symmetric_functions(di10, order = 2, engine = "R", diff = FALSE), elementary_symmetric_functions(di10, order = 2, engine = "R", diff = TRUE)) # R-bin sum vs. R-bin diff
all.equal(elementary_symmetric_functions(di20, order = 2, engine = "R", diff = FALSE), elementary_symmetric_functions(di10, order = 2, engine = "R", diff = TRUE)) # R-bin sum vs. R-bin diff
##################################################
##### polytomous items (zero and first order derivatives)
##################################################
pi10 <- unname(split(runif(10, -2.5, 2.5), factor(rep(1:5, each = 2))))
pi20 <- unname(split(runif(20, -2.5, 2.5), factor(rep(1:10, each = 2))))
elementary_symmetric_functions(pi10)
elementary_symmetric_functions(pi20)
## with 10 items, everything is fine.
all.equal(elementary_symmetric_functions(pi10, order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(pi10, order = 1, engine = "C", diff = FALSE)) # R-poly sum vs. C sum
all.equal(elementary_symmetric_functions(pi10, order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(pi10, order = 1, engine = "C", diff = TRUE)) # R-poly sum vs. C diff
all.equal(elementary_symmetric_functions(pi10, order = 1, engine = "R", diff = TRUE), elementary_symmetric_functions(pi10, order = 1, engine = "C", diff = FALSE)) # R-poly diff vs. C sum
all.equal(elementary_symmetric_functions(pi10, order = 1, engine = "R", diff = TRUE), elementary_symmetric_functions(pi10, order = 1, engine = "C", diff = TRUE)) # R-poly diff vs. C diff
## with 20 items we get (rounding) errors for difference algorithm :)
all.equal(elementary_symmetric_functions(pi20, order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(pi20, order = 1, engine = "C", diff = FALSE)) # R-poly sum vs. C sum
all.equal(elementary_symmetric_functions(pi20, order = 1, engine = "R", diff = FALSE), elementary_symmetric_functions(pi20, order = 1, engine = "C", diff = TRUE)) # R-poly sum vs. C diff
all.equal(elementary_symmetric_functions(pi20, order = 1, engine = "R", diff = TRUE), elementary_symmetric_functions(pi20, order = 1, engine = "C", diff = FALSE)) # R-poly diff vs. C sum
all.equal(elementary_symmetric_functions(pi20, order = 1, engine = "R", diff = TRUE), elementary_symmetric_functions(pi20, order = 1, engine = "C", diff = TRUE)) # R-poly diff vs. C diff
##################################################
##### check 'check'
##################################################
all.equal(elementary_symmetric_functions(di10, order = 1), elementary_symmetric_functions(as.list(di10), order = 1)) # dichotomous items as list / vector
inherits(try(elementary_symmetric_functions(di10, log = FALSE, engine = "C")), "try-error") # input on log scale for dichotmous items not possible (engine C)
inherits(try(elementary_symmetric_functions(pi10, log = FALSE, engine = "R")), "try-error") # input on log scale for polytomous items not possible (engine R)
inherits(try(elementary_symmetric_functions(pi10, log = FALSE, engine = "C")), "try-error") # input on log scale for polytomous items not possible (engine C)
inherits(try(elementary_symmetric_functions(di10, order = 2, engine = "C")), "try-error") # second order derivatives for dichotmous items not possible (engine C)
inherits(try(elementary_symmetric_functions(pi10, order = 2, engine = "R")), "try-error") # second order derivatives for polytomous items not possible (engine R)
inherits(try(elementary_symmetric_functions(pi10, order = 2, engine = "C")), "try-error") # second order derivatives for polytomous items not possible (engine C)
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.