qmethod (version 1.8)

qzscores: Q methodology: z-scores from loadings

Description

Calculates factor characteristics, z-scores, and factor scores, provided a matrix of loadings and a matrix of (manually or automatically) flagged Q-sorts.

Usage

qzscores(dataset, nfactors, loa, flagged, forced = TRUE, 
         distribution = NULL)

Value

Returns a list of class QmethodRes, with seven objects:

brief

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").

dataset

original data.

loa

factor loadings for Q-sorts.

flagged

logical dataframe of flagged Q-sorts.

zsc

statements z-scores.

zsc_n

statements rounded scores, rounded to the values in the first row of the original dataset.

f_char

factor characteristics obtained from qfcharact.

Arguments

dataset

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.

nfactors

number of factors to extract.

loa

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.

flagged

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.

forced

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.

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).

Author

Aiora Zabala

Details

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 https://github.com/aiorazabala/qmethod/wiki/Advanced-analysis.

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.

References

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.

Examples

Run this code
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 DataCamp Workspace