qmethod-package {qmethod} | R Documentation |
Package for Q methodology analysis
Description
Q is a methodology to study distinct perspectives existing within a group on a topic of interest. It is used across social, health, and environmental studies. See the references below for more details about the methodology.
This package performs the analysis of Q methodology data (both forced and non-forced distributions). The user can choose the extraction method (principal components analysis or centroid factor extraction) and the rotation method (none, varimax or other rotations, uncommon in Q but implemented via principal
). The default analysis conducts automatic flagging, and manual flagging is optional.
The following steps of the analysis correspond to separate functions: automatic flagging of Q-sorts (qflag
), z-scores and factor scores for statements (qzscores
), distinguishing and consensus statements (qdc
), and general characteristics of the factors (qfcharact
).
The function qmethod
wraps them all.
The functions for each step may be used separately for advanced analysis, for example, for manual flagging (see details in qzscores
).
The package also includes additional functions for the following:
An interactive Graphical User Interface with the basic functionality (
runInterface
)Import data from PQMethod software (
import.pqmethod
), both HTMLQ and FlashQ (import.htmlq
), and easy-htmlq (import.easyhtmlq
) tools for online data collection of Q-sorts.Export a plain-text report of the analysis for interpretation in two flavours (
export.qm
).Generic methods to
print.QmethodRes
andplot.QmethodRes
Q method results. The specific dotchart visualisation of Q results inplot.QmethodRes
was first developed and introduced in this package, in preparation for the study in Zabala et al. (2017).Functions to explore the analysis and facilitate interpretation:
-
explore automatic pre-flagging, (
loa.and.flags
) -
to rename the factors in the results, with short, meaningful names (
q.fnames
).
-
Generate printable cards for the administration of a Q study. The function
make.cards
produces a PDF with full item wording and codes, ready for printout on business card templates that can be easily broken into individual Q-cards.Several functions to aid reproducible research, by importing the following from raw, separate *.CSV or *.TEX files for each respondent or item:
Q-sorts (
import.q.sorts
)Participant item feedback (
import.q.feedback
)Complete concourses (
import.q.concourse
)Item samples (
build.q.set
)
Use help(package="qmethod")
for a list of all the functions.
Terminology
The functions for analysis use the terms standard in Q methodology.
In addition, the optional functions to import raw data from separate *.CSV files (import.q.sorts
, import.q.concourse
, build.q.set
, import.q.feedback
) and the card printing function (make.cards
) refer to items in three distinct ways:
Item full wording, is the complete item, such as:
"‘One small community of indomitable Q-methodologists ...’". This item can be read in from individual *.TEX files by using
import.q.concourse
. The wording is not passed on to any other function, but can be readily retrieved from the object returned fromimport.q.concourse
.The item handle is a shorthand way of referring to an item, which should be meaningful to the researcher (e.g.
"life-with-q"
). Item handles are researcher-facing and can be used to refer to items during data analysis. They are read in from the filenames of individual *.TEX files when usingimport.q.concourse
. Handles can be used to identify items in other functions and their outputs. For example, the resulting array or matrix fromimport.q.sorts
carries these handles as row names.The item ID is another shorthand way of referring to an item, that should be meaningless to humans (so as not to influence the participants in unintended ways), such as an arbitrary string of characters. Item IDs are participant-facing and are used to identify items during data entry. The item ID can take two forms, depending on function arguments specified by the user:
Standard IDs (such as sta12, sta13) which are generated automatically in
qmethod
or can be provided by the user using the respectivemanual.lookup
arguments inmake.cards
,import.q.sorts
andimport.q.feedback
. See the documentation of these functions for details.A set of hexadecimal hashed IDs (such as ae128fs) can be automatically generated and expected by the functions
make.cards
,import.q.sorts
andimport.q.feedback
if the argumentmanual.lookup
remains empty and defaults toNULL
. In that case, IDs are computed by 'summarising' the full item wordings (e.g."‘Q Method is used by a crazy, but charming community ...’") into a hexadecimal number (e.g. "ae128fs"), a process known as cryptographic hashing (for more details see
digest
)). These hash values change whenever anything in the full item wordings is changed, and allow a precise identification of different versions of an item. This function never exposes users to the hash values. Automatic, hashed IDs are generally recommended and easier to use, but some caveats apply (seemake.cards
).
For more information on this terminology and the rationale behind it, consider the best practices suggested by Maximilian Held on the data management page.
Suggested File Structure
For studies in which each Q-sort and item are kept in separate *.CSV files, the import functions import.q.sorts
, import.q.concourse
, build.q.set
, import.q.feedback
and the print function make.cards
require a nested directory structure in the study folder. An example of such structure can be found in ../qmethod/extdata/importexample
.
Although recommended for complex studies, this structure is not necessary for using the data analysis functions or for exploring and exporting results.
If the suggested file structure is followed, the subdirectories for (within-subjects) conditions and languages are optional, and need to be used only if there are more than one condition and language, respectively.
In such case, the arguments conditions
and languages
for the above import functions must be specified accordingly.
For more information on the file structure and the rationale behind it, consider the best practices suggested by Maximilian Held on the data management page.
Bootstrapping
A set of functions are available to perform bootstrapping with Q data (see Zabala and Pascual, 2016, Bootstrapping Q Methodology to Improve the Understanding of Human Perspectives. PLoS ONE for details). The main bootstrap functions are as follows:
-
qmboots
performs a full bootstrap. It calls internally the functionsqbstep
(for each bootstrap step), and to eitherqindtest
orqpcrustes
in order to correct the alignment problem. -
qmb.summary
summarises the object resulting fromqmboots
into two tables: (1) summary of factor loadings (standard factor loadings, bootstrapped factor loadings, and flagging frequency) and (2) summary of statement scores (bootstrapped and standard z-scores, bootstrapped and standard factor scores, standard error of bootstrapped z-scores, and differences between standard and bootstrapped values). -
qmb.plot
plots an object resulting fromqmb.summary
in a figure designed for bootstrapped Q data (either the factor loadings or the statement z-scores).
Author(s)
Aiora Zabala
Main author and maintainer
https://aiorazabala.net/
aiora.zabala@gmail.com
Maximilian Held
Author of data management functions: import.q.sorts
, import.q.concourse
, build.q.set
, import.q.feedback
and make.cards
https://maxheld.de/
Frans Hermans
Author of centroid function: centroid
https://www.researchgate.net/profile/Frans-Hermans-3
References
Zabala, A., 2014. qmethod: A Package to Explore Human Perspectives Using Q Methodology. The R Journal, 6(2):163-173.
Available from: https://journal.r-project.org/archive/2014-2/zabala.pdf.Zabala A. and Pascual, U., 2016. Bootstrapping Q Methodology to Improve the Understanding of Human Perspectives. PLoS ONE.
Available from: doi:10.1371/journal.pone.0148087.Watts, S., and and P. Stenner, 2012. Doing Q Methodological Research: Theory, Method & Interpretation, London: Sage Publications Ltd.
Van Exel, J., and G. de Graaf, 2005. Q Methodology: A Sneak Preview
https://qmethodblog.files.wordpress.com/2016/01/qmethodologyasneakpreviewreferenceupdate.pdfAvailable at this link.Brown, S. R., 1980. Political subjectivity: Applications of Q methodology in political science, New Haven, CT: Yale University Press.
https://qmethodblog.files.wordpress.com/2016/01/brown-1980-politicalsubjectivity.pdfAvailable at this link.-
https://qmethod.org/
The website of the International Society for the Scientific Study of Subjectivity. -
http://schmolck.org/qmethod/
Peter Schmolck's Q Method Page, with further references, datasets and the PQMethod software.
Examples
data(lipset)
results <- qmethod(lipset[[1]], nfactors = 3, rotation = "varimax")
summary(results)
results
plot(results)