# reliability-corrected single items

    library(modsem)

## Reliablity-Corrected Single Items

If wanted, indicators for latent variables can be replaced with reliablity corrected single items, using Chronbach’s \(\alpha\). This can either be done using the `relcorr_single_item` function, returning the altered model syntax and data, or via the `rcs` argument in `modsem`. Here we can see an example using the `relcorr_single_item` function:

    tpb_uk <- "
    # Outer Model (Based on Hagger et al., 2007)
     ATT =~ att3 + att2 + att1 + att4
     SN =~ sn4 + sn2 + sn3 + sn1
     PBC =~ pbc2 + pbc1 + pbc3 + pbc4
     INT =~ int2 + int1 + int3 + int4
     BEH =~ beh3 + beh2 + beh1 + beh4

    # Inner Model (Based on Steinmetz et al., 2011)
     INT ~ ATT + SN + PBC
     BEH ~ INT + PBC
     BEH ~ INT:PBC
    "

    corrected <- relcorr_single_item(syntax = tpb_uk, data = TPB_UK)
    corrected

Here we can see that `relcorr_single_item` returns a new model syntax, and a new `data.frame` containing the generated items. Additionally, it also returns the Chronbach’s \(\alpha\) and average variance extraced (AVE) for the different constructs in the model. The syntax and data can be extracted using the `$` operator, and used to estimate the model.

    syntax <- corrected$syntax
    data   <- corrected$data

    est_dca <- modsem(syntax, data = data, method = "dblcent")
    est_lms <- modsem(syntax, data = data, method="lms", nodes=32)
    summary(est_lms)

The easiest approach however, is to use the `rcs` argument in the `modsem` function to call `relcorr_single_item` before estimating the model.

    est_dca <- modsem(tpb_uk, data = TPB_UK, method = "dblcent", rcs = TRUE)
    est_lms <- modsem(tpb_uk, data = TPB_UK, method = "lms", rcs = TRUE)

# Choosing Variables

If you don’t want to use reliablity-corrected single items for all of the latent variables in the model, you can use the `choose` argument in `relcorr_single_item` (or`rcs.choose` in `modsem`) to select which set of indicators to replace.

    relcorr_single_item(syntax = tpb_uk, data = TPB_UK,
                        choose = c("ATT", "SN", "PBC", "INT"))

    est_dca <- modsem(tpb_uk, data = TPB_UK, method = "dblcent", rcs = TRUE,
                      rcs.choose = c("ATT", "SN", "PBC", "INT", "INT:PBC"))
    summary(est_dca)