Nothing
context("Structural model specification\n")
# Test cases
## Format 1
sm <- relationships(
paths(to = "Satisfaction",
from = c("Image", "Expectation", "Value", "Image*Expectation", "Image*Value"))
)
## Format 2
sm2 <- relationships(
paths(from = "Image", to = "Satisfaction"),
paths(from = "Expectation", to = "Satisfaction"),
paths(from = "Value", to = c("Satisfaction")),
paths(from = "Image*Expectation", to = "Satisfaction"),
paths(from = "Image*Value", to = "Satisfaction")
)
# Testing
test_that("Structural model is correctly generated", {
expect_equal(sm[,1], c("Image","Expectation", "Value", "Image*Expectation", "Image*Value"))
expect_equal(sm2[,1], c("Image","Expectation", "Value", "Image*Expectation", "Image*Value"))
expect_equal(sm[,2], c("Satisfaction", "Satisfaction", "Satisfaction", "Satisfaction", "Satisfaction"))
expect_equal(sm2[,2], c("Satisfaction", "Satisfaction", "Satisfaction", "Satisfaction", "Satisfaction"))
})
test_that("Matrix in correct format", {
expect_equal(colnames(sm), c("source","target"))
expect_equal(colnames(sm2), c("source","target"))
expect_equal(nrow(sm), 5)
expect_equal(nrow(sm2), 5)
expect_equal(ncol(sm), 2)
expect_equal(ncol(sm2), 2)
})
test_that("Two model syntaxes produce same structural model", {
expect_identical(sm, sm2)
})
context("Structural model specification - constructs with spaces and numeric construct names interaction and regular\n")
# Test cases
##
# Numeric construct names
sm1 <- relationships(
paths(to = "Satisfaction",
from = c("1", "Expectation", "Value", "1*Expectation", "1*Value"))
)
## Construct names with spaces
sm2 <- relationships(
paths(from = "Image", to = "Satisfaction"),
paths(from = "Expectation of", to = "Satisfaction"),
paths(from = "Value", to = c("Satisfaction")),
paths(from = "Image*Expectation of", to = "Satisfaction"),
paths(from = "Image*Value", to = "Satisfaction")
)
mm1 <- constructs(
composite("1", multi_items("IMAG", 1:5), weights = correlation_weights),
composite("Expectation", multi_items("CUEX", 1:3), weights = mode_A),
composite("Satisfaction", multi_items("CUSA", 1:3)),
composite("Value", multi_items("PERV", 1:2)),
interaction_term(iv = "1", moderator = "Expectation", method = orthogonal, weights = mode_A),
interaction_term(iv = "1", moderator = "Value", method = orthogonal, weights = mode_A)
)
mm2 <- constructs(
composite("Image", multi_items("IMAG", 1:5), weights = correlation_weights),
composite("Expectation of", multi_items("CUEX", 1:3), weights = mode_A),
composite("Satisfaction", multi_items("CUSA", 1:3)),
composite("Value", multi_items("PERV", 1:2)),
interaction_term(iv = "Image", moderator = "Expectation of", method = orthogonal, weights = mode_A),
interaction_term(iv = "Image", moderator = "Value", method = orthogonal, weights = mode_A)
)
seminr_model1 <- estimate_pls(data = mobi,
measurement_model = mm1,
structural_model = sm1)
seminr_model2 <- estimate_pls(data = mobi,
measurement_model = mm2,
structural_model = sm2)
# Testing
test_that("Structural model correctly handles numeric construct names with and without interaction", {
expect_equal(seminr_model1$constructs, c("1","Expectation","Value","1*Expectation","1*Value","Satisfaction"))
})
test_that("Structural model correctly handles construct names containing space with and without interaction", {
expect_equal(seminr_model2$constructs, c("Image","Expectation of","Value","Image*Expectation of","Image*Value","Satisfaction"))
})
context("Structural model specification - can summary function handle construct names numeric and including space\n")
sum1 <- summary(seminr_model1)
sum2 <- summary(seminr_model2)
test_that("Summary method correctly handles construct names containing space with and without interaction", {
expect_equal(round( sum2$vif_antecedents$Satisfaction[[1]], digits = 6), 1.617113)
})
test_that("Summary method correctly handles numeric construct names with and without interaction", {
expect_equal(round( sum1$vif_antecedents$Satisfaction[[1]], digits = 6), 1.617113)
})
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.