Skip to content

sfcheung/semfindr

Repository files navigation

Lifecycle: stable Project Status: Active - The project has reached a stable, usable state and is being actively developed. CRAN status CRAN: Release Date CRAN RStudio mirror downloads Code size Last Commit at Master R-CMD-check

(Version 0.1.8.1, updated on 2024-06-06, release history)

semfindr: Finding influential cases in SEM

A find(e)r of influential cases in structural equation modeling based mainly on the sensitivity analysis procedures presented by Pek and MacCallum (2011).

This package supports two approaches: leave-one-out analysis and approximate case influence.

Leave-One-Out Analysis

This approach examines the influence of each case by refitting a model with this case removed.

Unlike other similar packages, the workflow adopted in semfindr separates the leave-one-out analysis (refitting a model with one case removed) from the case influence measures.

  • Users first do the leave-one-out model fitting for all cases, or cases selected based on some criteria (vignette("selecting_cases", package = "semfindr")), using lavaan_rerun().

  • Users then compute case influence measures using the output of lavaan_rerun().

This approaches avoids unnecessarily refitting the models for each set of influence measures, and also allows analyzing only probable influential cases when the model takes a long time to fit.

The functions were designed to be flexible such that users can compute case influence measures such as

  • standardized parameter estimates and generalized Cook's distance for selected parameters;
  • changes in raw or standardized estimates of parameters;
  • changes in fit measures supported by lavaan::fitMeasures().

This package can also be generate plots to visualize case influence, including a bubble plot similar to that by car::influencePlot() All plots generated are ggplot plots that can be further modified by users. More can be found in Quick Start (vignette("semfindr", package = "semfindr")).

Approximate Case Influence

This approach computes the approximate influence of each case using casewise scores and casewise likelihood. This method is efficient because it does not requires refitting the model for each case. However, it can only approximate the influence, unlike the leave-one-out approach, which produce exact influence. This approach can be used when the number of cases is very large and/or the model takes a long time to fit. Technical details can be found in the vignette Approximate Case Influence Using Scores and Casewise Likelihood (vignette("casewise_scores", package = "semfindr")).

Installation

The stable version at CRAN can be installed by install.packages():

install.packages("semfindr")

The latest developmental version can be installed by remotes::install_github:

remotes::install_github("sfcheung/semfindr")

You can learn more about this package at the Github page of this package and Quick Start (vignette("semfindr", package = "semfindr")).

Reference

Pek, J., & MacCallum, R. (2011). Sensitivity analysis in structural equation models: Cases and their influence. Multivariate Behavioral Research, 46(2), 202-228. https://doi.org/10.1080/00273171.2011.561068

Comments, Suggestions, and Bug Reports

Please post your comments, suggestions, and bug reports as issues at GitHub, or contact the maintainer by email. Thanks in advance for trying out semfindr.