qmethod (version 1.8)

centroid: Q methodology: centroid extraction

Description

Extracts factors/ components using the centroid approach as an alternative to Principal Components Analysis.

Usage

centroid(tmat, nfactors = 7, spc)

Value

Returns a matrix with Q-sorts as rows, and rotated factors as columns.

Arguments

tmat

a correlation matrix between Q-sorts.

nfactors

number of factors/ components to extract. Defaults to 7.

spc

the threshold to accept factor results, set to 0.00001 by default (in Brown 1980, this is set to 0.02).

Author

Frans Hermans

Details

This functions implement the centroid method for extraction of factors, an alternative to Principal Components that can be used in Q methodology. The calculations are based in Brown (1980; below).

The function is called from within qmethod where the attribute extraction is set to centroid.

This function can be used independently where conducting each step of the analysis separately, preceded by a correlation between Q-sorts and followed by the rotation of factors/ components (see below), calculation of z-scores, etc.

References

Brown, S. R., 1980 Political subjectivity: Applications of Q methodology in political science, New Haven, CT: Yale University Press, pages 208-224.

See further references on the methodology in qmethod-package.

Examples

Run this code
#### Example
require('qmethod')
require ("psych")

# Load data
data("lipset")
lip <- lipset[[1]]

# Correlation matrix
corlip <-cor(lip)

# Centroid extraction
lipcent <- centroid(corlip)
lipcent


## To finalise the full analysis, continue with the following steps
# Rotation (in this example, varimax over 3 factors)
vmax <- varimax(lipcent[,1:3])

# Automatic pre-flagging of Q-sorts
flags <- qflag(unclass(vmax$loadings), nstat = 33)

# Calculate z-scores and general characeristics
results <- qzscores(lip, 3, loa=vmax$loadings, flagged=flags)
summary(results)

# Consensus and distinguishing statements
results$qdc <- qdc(lip, 3, zsc=results$zsc, sed=results$f_char$sd_dif)

plot(results)

## All of the above can be done with:
results2 <- qmethod(lip, 3, extraction="centroid")

Run the code above in your browser using DataLab