The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Adding indices and computing reliability estimates

2024-02-22

Tidycomm provides a workflow to quickly add mean/sum indices of several variables to the dataset and compute reliability estimates for those added indices:

Once again, we will again sample data from the Worlds of Journalism 2012-16 study for demonstration purposes.

WoJ
#> # A tibble: 1,200 × 15
#>    country   reach employment temp_contract autonomy_selection autonomy_emphasis
#>    <fct>     <fct> <chr>      <fct>                      <dbl>             <dbl>
#>  1 Germany   Nati… Full-time  Permanent                      5                 4
#>  2 Germany   Nati… Full-time  Permanent                      3                 4
#>  3 Switzerl… Regi… Full-time  Permanent                      4                 4
#>  4 Switzerl… Local Part-time  Permanent                      4                 5
#>  5 Austria   Nati… Part-time  Permanent                      4                 4
#>  6 Switzerl… Local Freelancer <NA>                           4                 4
#>  7 Germany   Local Full-time  Permanent                      4                 4
#>  8 Denmark   Nati… Full-time  Permanent                      3                 3
#>  9 Switzerl… Local Full-time  Permanent                      5                 5
#> 10 Denmark   Nati… Full-time  Permanent                      2                 4
#> # ℹ 1,190 more rows
#> # ℹ 9 more variables: ethics_1 <dbl>, ethics_2 <dbl>, ethics_3 <dbl>,
#> #   ethics_4 <dbl>, work_experience <dbl>, trust_parliament <dbl>,
#> #   trust_government <dbl>, trust_parties <dbl>, trust_politicians <dbl>

ethics_1 to ethics_4 measure agreement with statements concerning ethics in journalism and may be combined into an index of ‘ethical flexbility’, while the items starting with trust_ measure trust in various political institutions and thus may be combined into an index of trust in politics.

Add mean and sum indices

add_index() adds a mean index of specified variables to the data. The second (or first, if used in a pipe) argument is the name of index variable to be created:

WoJ %>% 
  add_index(ethical_flexibility, ethics_1, ethics_2, ethics_3, ethics_4) %>%
  # Select variables of relevance for output
  dplyr::select(ethical_flexibility, ethics_1, ethics_2, ethics_3, ethics_4)
#> # A tibble: 1,200 × 5
#>    ethical_flexibility ethics_1 ethics_2 ethics_3 ethics_4
#>                  <dbl>    <dbl>    <dbl>    <dbl>    <dbl>
#>  1                2           2        3        2        1
#>  2                1.5         1        2        2        1
#>  3                2.25        2        4        2        1
#>  4                1.75        1        3        1        2
#>  5                2           2        3        2        1
#>  6                3.25        2        4        4        3
#>  7                2           1        3        2        2
#>  8                3.5         2        4        4        4
#>  9                1.75        1        2        1        3
#> 10                3.25        1        4        4        4
#> # ℹ 1,190 more rows

To create a sum index instead, set type = "sum":

WoJ %>% 
  add_index(ethical_flexibility, ethics_1, ethics_2, ethics_3, ethics_4, type = "sum") %>%
  # Select variables of relevance for output
  dplyr::select(ethical_flexibility, ethics_1, ethics_2, ethics_3, ethics_4)
#> # A tibble: 1,200 × 5
#>    ethical_flexibility ethics_1 ethics_2 ethics_3 ethics_4
#>                  <dbl>    <dbl>    <dbl>    <dbl>    <dbl>
#>  1                   8        2        3        2        1
#>  2                   6        1        2        2        1
#>  3                   9        2        4        2        1
#>  4                   7        1        3        1        2
#>  5                   8        2        3        2        1
#>  6                  13        2        4        4        3
#>  7                   8        1        3        2        2
#>  8                  14        2        4        4        4
#>  9                   7        1        2        1        3
#> 10                  13        1        4        4        4
#> # ℹ 1,190 more rows

Compute reliability estimates of created indices

Use get_reliability() to compute reliability/internal consistency estimates for indices created with add_index(). Passing no further arguments to the function will automatically compute reliability estimates for all indices created with add_index() found in the data and output Cronbach’s \(\alpha\) along with descriptives and index information.

# Add two indices to data
WoJ <- WoJ %>% 
  add_index(ethical_flexibility, ethics_1, ethics_2, ethics_3, ethics_4) %>%
  add_index(trust_in_politics, trust_parliament, trust_government, trust_parties, trust_politicians)

WoJ %>% 
  get_reliability()
#> # A tibble: 2 × 5
#>   Index               Index_of                           M    SD Cronbachs_Alpha
#> * <chr>               <chr>                          <dbl> <dbl>           <dbl>
#> 1 ethical_flexibility ethics_1, ethics_2, ethics_3,…  2.45 0.777           0.612
#> 2 trust_in_politics   trust_parliament, trust_gover…  2.70 0.652           0.856

If you only want reliability estimates for specific indices, pass their names as function arguments.

WoJ %>% 
  get_reliability(trust_in_politics)
#> # A tibble: 1 × 5
#>   Index             Index_of                             M    SD Cronbachs_Alpha
#> * <chr>             <chr>                            <dbl> <dbl>           <dbl>
#> 1 trust_in_politics trust_parliament, trust_governm…  2.70 0.652           0.856

Essentially, get_reliability() provides a wrapper for the ci.reliability function from the MBESS package. Thus, all arguments of MBESS::ci.reliability() can be passed to get_reliability(). For example, to output \(\omega\) instead of Cronbach’s \(\alpha\) including robust maximum likelihood confidence intervals, you can type:

WoJ %>% 
  get_reliability(type = 'omega', interval.type = 'mlr')
#> # A tibble: 2 × 8
#>   Index               Index_of                 M    SD Omega CI_LL CI_UL CI_Type
#> * <chr>               <chr>                <dbl> <dbl> <dbl> <dbl> <dbl> <chr>  
#> 1 ethical_flexibility ethics_1, ethics_2,…  2.45 0.777 0.626 0.590 0.663 robust…
#> 2 trust_in_politics   trust_parliament, t…  2.70 0.652 0.856 0.840 0.871 robust…

See the function documentation for more info (and don’t forget to cite the MBESS package if using get_reliability()).

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.