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.
matrices.withoutNa<-coefa_read(type = "xlsx")
**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
mx1<-matrix(c(0.1,0.2,0.3,0.4,0.5,0.6),nrow = 3,byrow = TRUE)
mx2<-matrix(c(0.6,0.5,0.4,0.3,0.2,0.1),nrow = 3,byrow = TRUE)
matrices.withoutNa<-list(mx1,mx2)
#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.
matrices.tflm<-coefa_tflm(matrices.withoutNa,methodE = "ls",cutoff = 0.4)
In this step, the function coefa_gcm()
will be used to generate the
co-occurrence matrix.
matrices.gcm<-coefa_gcm(matrices.tflm)
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.
sz1<-c(100,200)
matrices.acm<-coefa_acm(matrices.gcm,sz=sz1,samplesized=TRUE)
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")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.