Calculates factor characteristics, z-scores, and factor scores, provided a matrix of loadings and a matrix of (manually or automatically) flagged Q-sorts.
qzscores(dataset, nfactors, loa, flagged, forced = TRUE,
distribution = NULL)
Returns a list of class QmethodRes
, with seven objects:
a list with the basic values of the analysis: date ("date"
), number of statements ("nstat"
), number of Q-sorts ("nqsort"
), whether the distribution was 'forced' ("distro"
), number of factors extracted ("nfactors"
), type of extraction ("extraction"
), type of rotation ("rotation"
), method for correlation ("cor.method"
), and a summary of this information for display purposes ("info"
).
original data.
factor loadings for Q-sorts.
logical dataframe of flagged Q-sorts.
statements z-scores.
statements rounded scores, rounded to the values in the first row of the original dataset.
factor characteristics obtained from qfcharact
.
a matrix or a data frame containing raw data, with statements as rows, Q-sorts as columns, and the column scores in the distribution in each cell.
number of factors to extract.
matrix or data frame of nqsorts
rows and nfactors
columns, with values of factor loadings for Q-sorts, calculated using, e.g., principal(...)$loadings
or centroid
.
matrix or data frame of nqsorts
rows and nfactors
columns, with TRUE
values for the Q-sorts that are flagged. Automatic flagging can be aplied using qflag
. Manual flagging can be done by providing a logical matrix with nqsorts
rows and nfactors
columns to the argument flagged
.
logical; Is the distribution of items forced? Set to TRUE
if all respondents ranked the items following strictly the distribution scores, and the values of the distribution are calculated automatically. Set to FALSE
if respondents were able to rank the items without following the distribution, and the values of the distribution have to be provided as an array in the argument distribution
.
logical; when forced = FALSE
, the distribution has to be provided as a vector of numbers, such as c(-2, -1, -1, 0, 1, 1, 2, 2)
.
Aiora Zabala
In order to implement manual flagging, use a manually created data frame (or matrix) for flagged
. See an example of code to perform manual flagging or to manipulate the loadings in the website.
The loadings from principal(...)$loadings
or centroid
can be explored to decide upon flagging. The loa
data frame should have Q-sorts as rows, and factors as columns, where TRUE
are the flagged Q-sorts.
Brown, S. R., 1980 Political subjectivity: Applications of Q methodology in political science, New Haven, CT: Yale University Press.
See further references on the methodology in qmethod-package
.
data(lipset)
library(psych)
loa <- unclass(principal(lipset[[1]],
nfactors = 3, rotate = "varimax")$loadings)
flagged <- qflag(nstat = 33, loa = loa)
qmzsc <- qzscores(lipset[[1]], nfactors = 3, flagged = flagged, loa = loa)
qmzsc # Show results
Run the code above in your browser using DataLab