The goal of coefa
is to provide a calculation program
for the method of Meta Analysis of Factor Analysis Based on
Co-occurrence Matrices. The coefa
package is an effective
tools which can be used to solve the factor structure (i.e. inner
structure of a construct, or scale) debate in several disciplines, such
as psychology, psychiatry,management,education et al.
You can install the development version of coefa
like
so:
install.packages("coefa")
This is a basic example which shows you how to solve a inner structure debate:
First, the factor loading matrices data from a line of primary
studies should be imported into the R environment.These data(factor
loading matrices) should be stored using the type of list in R.This work
can be executed manually or using using the
coefa_read()
function of the coefa
package.
library(coefa)
#> 载入需要的程辑包:openxlsx
#> 载入需要的程辑包:psych
The function coefa_read()
provides an effective way to
read data files from a folder in a computer. The user can read several
types of files by specifying the parameters of the function. What should
be noted is that the miss values in data files will be replaced with the
number of 0.
#Supposing that the type of data are xlsx files.
<-coefa_read(type = "xlsx") matrices.withoutNa
**NOTE: Although thecoefa_read()
function can help you
quickly read the data in the folder, there are two points should be
noted: (1) The path of the stored file should be consistent with your
workspace. (2) The file in the folder should have the same file formats,
and different files should be set with different parameters.
In the step, all the factor loading matrices will be trimmed using the Shafer’s(2005) method or the Loeber and Schmaling’s method (1985). And the cutoff values(e.g., 0.3, 0.4, 0.5) can be given here according to the users’ consideration.
#Suppose matrices.withoutNa is obtained by coefa_read function
<-matrix(c(0.1,0.2,0.3,0.4,0.5,0.6),nrow = 3,byrow = TRUE)
mx1<-matrix(c(0.6,0.5,0.4,0.3,0.2,0.1),nrow = 3,byrow = TRUE)
mx2<-list(mx1,mx2)
matrices.withoutNa#Take the Loeber&Schmaling(1985) method, the cutoff value is 0.4 as an example.The result is that values in the matrix greater than or equal to 0.4 will become 1, and less than 0.4 will become 0.
<-coefa_tflm(matrices.withoutNa,methodE = "ls",cutoff = 0.4) matrices.tflm
In this step, the function coefa_gcm()
will be used to
generate the co-occurrence matrix.
<-coefa_gcm(matrices.tflm) matrices.gcm
In this step, aggregated co-occurrence matrix will be obtained using
the coefa_acm()
in which the aggregation algorithm will be
executed. Here, you can set the parameter samplesize = TURE
to add the weights to all studies. The sample sizes will be valued by
the sz1
variable If samplesize = FALSE
, no
weight will be considered in the aggregation process. When this step
finished, a final aggregated co-occurrence matrix (weighted or
unweighted by sample size) will be calculated.
#Assume that the sample sizes of the factor loading matrices for the two studies are 100 and 200, respectively.
<-c(100,200)
sz1<-coefa_acm(matrices.gcm,sz=sz1,samplesized=TRUE) matrices.acm
The function coefa_summary()
provides a preliminary
screening and suggestion for the later factor analysis. The results of
Scree plot and Kaiser’s criterion will be plotted by this function.
Furthermore, this function will test the aggregated co-occurrence
matrix, and return that whether it is a positive matrix not.
coefa_summary(matrices.acm,fa="pc")
Finally, the function coefa_fa
will provide the choice
for factor extraction under the condition of co-occurrence matrix. The
MDS, EFA, PCA can be a choice, and the function will generate a plot for
your choice. A typical setting comes as follows.
coefa_fa(matrices.acm,nfactors = 6,methodcoefa = "EFA",rotate = "varimax",fm="pa")