Skip to content

Latest commit

 

History

History
115 lines (75 loc) · 5.94 KB

File metadata and controls

115 lines (75 loc) · 5.94 KB

EFAtools 0.4.0

Changes to Functions

  • EFA(): Changed error to warning when model is underidentified. This allows the Schmid-Leiman transformation to be performed on a two-factor solution.
  • OMEGA(): Added calculation of additional indices of interpretive relevance (H index, explained common variance [ECV], and percent of uncontaminated correlations [PUC]). This is optional and can be avoided by setting add_ind = FALSE.

Bug Fixes

  • CD(): Added na.omit() to remove missing values from raw data to avoid an error in the comparison-data procedure.

EFAtools 0.3.1

General

  • When testing for whether a matrix is singular and thus smoothing should be done, test against .Machine$double.eps^.6 instead of 0, as suggested by Florian Scharf.

Changes to Functions

  • EFA():
    • Added warnings if type = "SPSS" was used with method = "ML" or method = "ULS", or with a rotation other than none, varimax or promax.
    • Avoided smoothing of non-positive definite correlation matrices if type = "SPSS" is used.
    • Use Moore-Penrose Pseudo Inverse in computation of SMCs if type = "psych" is used, by calling psych::smc().
    • Use varimax_type = "kaiser" if type = "EFAtools" is used with varimax or promax.

Bug Fixes

  • EFA_AVERAGE():
    • Added future.seed = TRUE to call to future.apply::future_lapply() to prevent warnings.
    • Fixed test for Heywood cases from testing whether a communality or loading is greater than .998, to only test whether communalities exceed 1 + .Machine$double.eps
  • print.EFA(): Fixed test for Heywood cases from testing whether a communality or loading is greater than .998, to only test whether communalities exceed 1 + .Machine$double.eps
  • OMEGA(): Small bugfix when lavaan second-order model is given as input

EFAtools 0.3.0

General

  • Added examples for EFA_AVERAGE() to readme and the EFAtools vignette
  • Updated examples in readme and vignettes according to the updated OMEGA function

New Functions

  • Added function EFA_AVERAGE() and respective print and plot methods, to allow running many EFAs across different implementations to obtain an average solution and test the stability of the results.

Changes to Functions

  • EFA(): Defaults that were previously set to NULL are now mostly set to NA. This was necessary for EFA_AVERAGE() to work correctly.
  • PARALLEL(): Rewrote the generation of random data based eigenvalues to be more stable when SMCs are used.
  • OMEGA(): Changed expected input for argument factor_corres from vector to matrix. Can now be a logical matrix or a numeric matrix with 0's and 1's of the same dimensions as the matrix of group factor loadings. This is more flexible and allows for cross-loadings.

EFAtools 0.2.0

General

  • Created new vignette Replicate_SPSS_psych to show replication of original psych and SPSS EFA solutions with EFAtools.

New Functions

  • Added function FACTOR_SCORES() to calculate factor scores from a solution from EFA(). This is just a wrapper for the psych::factor.scores function.
  • Added function SCREE() that does a scree plot. Also added respective print and plot methods.

Changes to Functions

  • CD(): Added check for whether entered data is a tibble, and if so, convert to vanilla data.frame to avoid breaking the procedure.
  • EFA():
    • Updated the EFAtools type in PAF and Promax.
    • Added p value for chi square value in output (calculated for ML and ULS fitting methods).
    • Updated the SPSS varimax implementation to fit SPSS results more closely.
    • Created an argument "varimax_type" that is set according to the specified type, but that can also be specified individually. With type R psych and EFAtools, the stats::varimax is called by default (varimax_type = "svd"), with type SPSS, the reproduced SPSS varimax implementation is used (varimax_type = "kaiser").
    • Renamed the kaiser argument (controls if a Kaiser normalization is done or not) into normalize to avoid confusion with the varimax_type argument specifications.
  • ML(): Changed default start method to "psych".
  • N_FACTORS():
    • Added option to do a scree plot if "SCREE" is included in the criteria argument.
    • Added a progress bar.
  • OMEGA(): Now also works with a lavaan second-order solution as input. In this case, it does a Schmid-Leiman transformation based on the first- and second-order loadings first and computes omegas based on this Schmid-Leiman solution.
  • SL(): Now also works with a lavaan second-order solution as input (first- and second-order loadings taken directly from lavaan output).

Bug Fixes

  • .get_compare_matrix(): Fixed a bug that occurred when names of data were longer than n_char
  • COMPARE(): Fixed a bug that occurred when using reorder = "names".
  • EFA(): RMSEA is now set to 1 if it is > 1.
  • HULL(): Fixed a bug that occurred when no factors are located on the HULL
  • KMO(): Fixed a bug that the inverse of the correlation matrix was not taken anew after smoothing was necessary.
  • PARALLEL():
    • Fixed a bug that occurred when using decision_rule = "percentile"
    • Relocated error messages that were not evaluated if no data were entered (and should be)
  • print.COMPARE(): Fixed a bug that occurred when using print_diff = FALSE in COMPARE().
  • print.KMO(): Fixed a bug that printed two statements instead of one, when the KMO value was < .6.

Minor Changes

  • OMEGA() and SL(): Added an error message if the entered term in g_name is invalid (i.e., it cannnot be found among the factor names of the entered lavaan solution).

EFAtools 0.1.1

Minor Changes

  • Added an error message in PARALLEL() if no solution has been found after 25 tries.

Bug Fixes

  • Updated different tests

  • Deleted no longer used packages from Imports and Suggests in DESCRIPTION

  • PARALLEL(): fixed a bug in indexing if method "EFA" was used.

EFAtools 0.1.0

  • Added a NEWS.md file to track changes to the package.
  • Initial CRAN submission