MyNixOS website logo
Description

Automated Item Removal Strategies for Exploratory Factor Analysis.

Automates the identification and comparative evaluation of item-removal strategies in exploratory factor analysis, producing transparent summaries (explained variance, loading ranges, reliability) to support comfortable, reproducible decisions. The criteria are based on best practices and established heuristics (e.g., Costello & Osborne (2005) <doi:10.7275/jyj1-4868>, Howard (2016) <doi:10.1080/10447318.2015.1087664>).

ItemRest

ItemRest is an R package developed to automate item removal strategies in Exploratory Factor Analysis (EFA).
It helps researchers identify low-quality items using statistical criteria and simulate the impact of different removal combinations on the factor structure and internal consistency of the scale.

🔧 Features

  • Automatically identifies cross-loading and low-loading items based on customizable thresholds.
  • Tests all possible combinations of flagged items.
  • Reports explained variance, Cronbach’s alpha, and factor loading range for each solution.
  • Highlights optimal strategies with no cross-loading items.
  • Built on top of psych, GPArotation, EFAtools, and qgraph packages.

📦 Installation

Install the package directly from GitHub using the devtools package:

# First install devtools if not already installed:
install.packages("devtools")

# Then install ItemRest from GitHub:
devtools::install_github("ahmetcaliskan1987/ItemRest")

Example

Load the library

library(ItemRest) # We will use the ‘bfi’ dataset from the ‘psych’ package for a realistic example. # This requires the ‘psych’ package to be installed. # The ‘bfi’ dataset contains responses to 25 personality items.

1. Prepare the data: Select the personality items (first 25 columns)

and remove rows with missing values for this example.

data(bfi, package = “psych”) example_data <- bfi[, 1:25] example_data <- na.omit(example_data)

2. Run the item removal analysis.

Based on theory, the Big Five model has 5 factors.

Let’s run the analysis with n_factors = 5.

results <- itemrest( data = example_data, n_factors = 5, cor_method = “pearson” # Data is not ordinal, so pearson is appropriate )

3. Print the report for optimal strategies.

This will show the final table after the analysis is complete.

print(results, report = “optimal”)

📄 License

This package is distributed under the MIT License.
See the LICENSE file for more details.

Metadata

Version

0.2.3

License

Unknown

Platforms (76)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows