The function takes two objects of the same dimensions containing numeric information (loadings or communalities) and returns a list of class COMPARE containing summary information of the differences of the objects.
COMPARE(
x,
y,
reorder = c("congruence", "names", "none"),
corres = TRUE,
thresh = 0.3,
digits = 4,
m_red = 0.001,
range_red = 0.001,
round_red = 3,
print_diff = TRUE,
na.rm = FALSE,
x_labels = c("x", "y"),
plot = TRUE,
plot_red = 0.01
)A list of class COMPARE containing summary statistics on the differences of x and y.
The vector or matrix containing the differences between x and y.
The mean absolute difference between x and y.
The median absolute difference between x and y.
The minimum absolute difference between x and y.
The maximum absolute difference between x and y.
The maximum number of decimals to which a comparison makes sense. For example, if x contains only values up to the third decimals, and y is a normal double, max_dec will be three.
The maximal number of decimals to which all elements of x and y
agree in absolute value. The comparison is on magnitudes, so two elements that
are equal in size but opposite in sign count as agreeing; signed disagreements
are reflected in diff and the mean / median / min / max absolute differences.
NA if na.rm = FALSE and any element is missing.
The number of differing variable-to-factor correspondences between x and y, when only the highest loading is considered.
The number of differing variable-to-factor correspondences
between x and y when all loadings >= thresh are considered.
The root mean squared distance (RMSE) between x and y.
List of the settings used.
matrix, or vector. Loadings or communalities of a factor analysis output.
matrix, or vector. Loadings or communalities of another factor analysis output to compare to x.
character. Whether and how elements / columns should be
reordered. If "congruence" (default), the columns of y are matched to those
of x by an optimal one-to-one assignment that maximizes Tucker's congruence
coefficient, so each factor is matched exactly once; if "names", objects are
reordered according to their names; if "none", no reordering is done.
logical. Whether factor correspondences should be compared if a matrix is entered.
numeric. The threshold to classify a pattern coefficient as substantial. Default is .3.
numeric. Number of decimals to print in the output. Default is 4.
numeric. Number above which the mean and median should be printed in red (i.e., if .001 is used, the mean will be in red if it is larger than .001, otherwise it will be displayed in green.) Default is .001.
numeric. Number above which the min and max should be printed in red (i.e., if .001 is used, min and max will be in red if the max is larger than .001, otherwise it will be displayed in green. Default is .001). Note that the color of min also depends on max, that is min will be displayed in the same color as max.
numeric. Number above which the max decimals to round to where all corresponding elements of x and y are still equal are displayed in red (i.e., if 3 is used, the number will be in red if it is smaller than 3, otherwise it will be displayed in green). Default is 3.
logical. Whether the difference vector or matrix should be printed or not. Default is TRUE.
logical. Whether NAs should be removed in the mean, median, min, and max functions. Default is FALSE.
character. A vector of length two containing identifying labels for the two objects x and y that will be compared. These will be used as labels on the x-axis of the plot. Default is "x" and "y".
logical. Retained for backwards compatibility; the difference plot
is now drawn with plot.COMPARE() rather than when printing. Default is TRUE.
numeric. Threshold above which to plot the absolute differences in red. Default is .01.
# A type SPSS EFA to mimick the SPSS implementation
EFA_SPSS_6 <- EFA(test_models$case_11b$cormat, n_factors = 6, type = "SPSS")
# A type psych EFA to mimick the psych::fa() implementation
EFA_psych_6 <- EFA(test_models$case_11b$cormat, n_factors = 6, type = "psych")
# compare the two
COMPARE(EFA_SPSS_6$unrot_loadings, EFA_psych_6$unrot_loadings,
x_labels = c("SPSS", "psych"))
Run the code above in your browser using DataLab