# Higher Order Models

    library(plssem)

# Higher Order Constructs

It is possible to estimate models with second order construcst with the `pls()` function, using the two-stage approach. Here we see an example using the `TPB_2SO` dataset, from the `modsem` package. The model below contains two second order latent variables, `INT` (intention) which is a second order latent variable of `ATT` (attitude) and `SN` (subjective norm), and `PBC` (perceived behavioural control) which is a second order latent variable of `PC` (perceived control) and `PB` (perceived behaviour).

    library(modsem)

    tpb_2so <- '
      # First order latent variables
      ATT =~ att1 + att2 + att3
      SN  =~ sn1 + sn2 + sn3
      PB =~ pb1 + pb2 + pb3
      PC =~ pc1 + pc2 + pc3
      BEH =~ b1 + b2

      # Higher order latent variables
      INT =~ ATT + SN
      PBC =~ PC + PB

      # Structural model
      BEH ~ PBC + INT + INT:PBC
    '

    fit <- pls(tpb_2so, data = TPB_2SO, bootstrap = TRUE, boot.R = 50)
    summary(fit)