*! Version 1.21 01FEB2023

Title

qpair -- Analysis of paired Q-sorts

Syntax

qpair [if] [in]
,
first(varlist) second(varlist) nfactor(#) [extraction(string) rotation(string)
approach(string) score(string) esize(string) bipolar(string) stlength(#) minimum]

varlist includes Q-sorts that need to be factor-analyzed.

Description

qpair performs by-person factor analysis on paired Q-sorts. The command performs factor
analysis on pairs of Q-sorts (matched Q-sorts) using either principal factor, iterated
principal factor, or principal-component factor extraction methods.
qpair is also able to rotate factors using all factor rotation techniques available in
Stata (orthogonal and oblique) including varimax, quartimax, equamax, obminin, and promax.
qpair displays the eigenvalues of the correlation matrix, the factor loadings,
and the uniqueness of the variables. It also provides number of Q-sorts loaded on each
factor, distinguishing statements for each factor, and consensus statements.
qpair is able to handle bipolar factors and identify distinguishing statements based on Cohen's effect size (d).

Variables used in qpair are Q-sorts. qpair is able to extract factors for subgroup of Q-sorts using “if” and “in” options.

first(varlist) Q-sorts from the first set (Q-sorts from time 1 or baseline)

second(varlist) Q-sorts from the second set (Q-sorts from time 2 or follow-up )

nfactor(#) maximum number of factors to be retained

extraction(string) factor extraction method which includes:

pf principal factor
pcf principal-component factor
ipf iterated principal factor; the default

rotation(string) qpair accommodates almost every rotation technique in Stata including:

none this option is used if no rotation is required

varimax varimax; varimax is the default option

quartimax quartimax

equamax equamax

promax(#) promax power # (implies oblique); default is promax(3)

oblimin(#) oblimin with gamma=#; default is oblimin(0)

target(Tg) rotate toward matrix Tg; this option accommodates theoretical rotation

approach(string) the analysis can be coducted using the following two approaches:

one, 1, or I the analysis is conducted on the differenes between Q-sorts from time 1 and time 2; this is the default option

two, 2, or II Q-sorts from time one are used as the baseline Q-sorts

score(string) it identifies how the factor scores to be calculated. The options include:

brown factor scores are calculated as described by Brown (1980); the default approach.

regression regression scoring method

bartlett Bartlett scoring method

thompson Thompson scoring method

esize(string) it specifies how the distinguishing statements to be identified for each factor. The options include:

stephenson distinguishing statements are identified based on Stephenson's
formula as described by Brown (1980); this is the default option.

any # for any # between zero and one (0<#≤1) distinguishing statements are identified based on Cohen's d.

bipolar(string) defines the criteria for a bipolar factor, it calculates the factor
scores for each bipolar factor seperately. This option works only with Brown’s factor scores. The options include:

0 or no indicates no assessment of a bipolar factor; the default approach

any # any integer number more than 0 indicates number of negative loadings required for a bipolar factor.

stlength(#) it identifies the maximum length of characters for each statement to be displayed; the default length is 50 characters.

minimum a minimum amount of output is displayed which includes factor scores, distinguishing statements, and consensus statements}.

Options for factor extraction

pf, pcf, and ipf
indicate the type of extraction to be used. The default is ipf.

pf
specifies that the principal-factor method be used to analyze the correlation matrix.
The factor loadings, sometimes called the factor patterns, are computed using the
squared multiple correlations as estimates of the communality.

pcf
specifies that the principal-component factor method be used to analyze the correlation matrix.
The communalities are assumed to be 1.

ipf
specifies that the iterated principal-factor method be used to analyze the correlation matrix.
This reestimates the communalities iteratively. ipf is the default approach.

Stored results

In addition to the displayed results, qpair stores two matrices in r(). The first matrix is
r(fctrldngs) and its columns includes variables such as Q-sort number, unrotated and rotated
factor loadings, uniqueness and communality of each Q-sort, and Factor which indicates which
Q-sort was loaded on what factor. The second matrix is r(fctrscrs) which stores factor scores
for all statements. This matrix is generated only when approach II is used and contains
z-scores and ranked scores for the extracted factors. These matrices can be retrieved and
used in subsequent analysis, e.g., to compare factors scores based on different factor
extraction techniques, to compare demographic and other background variables among the
extracted factors, or to graphically display rotated and unrotated factor loadings.

Examples of qpair

qpairdata.dta: This dataset includes perceptions of 50 IT professionals on person-organization
fit with training and development priorities (Wingreen & Blanton 2018). Each IT professional completed
two Q-sorts, one Q-sort for the person’s priorities and one Q-sort for the organization's priorities.
The organizational priorities are the basically the person’s subjective perception or understanding
of the organizational priorities. The study was conducted using 27 statements. Q-sorts are
named Q-sort1_1, Q-sort2_1,…, Q-sort50_1 for person's priorities and Q-sort1_2, Q-sort2_2,…,
Q-sort50_2 for organization's priorities.

The following commands conduct analysis using approach I to extract 3 ipf factors using varimax rotation:

qpair, first(qsort*_1) second(qsort*_2) nfa(3)

or

qpair, first(qsort1_1-qsort50_1) second(qsort1_2-qsort50_2) nfa(3)

The same as above using pcf extraction and esize 0.50:

qpair, first(qsort*_1) second(qsort*_2) nfa(3) ext(pcf) esize(.50)

Same as above with varimax rotation but if there is 2 or more negative loadings on any factor it treats it as a bipolar factor:

qpair, first(qsort*_1) second(qsort*_2) nfa(3) ext(pcf) esize(.50) bip(2)

The following command runs qpair on only 30 Q-sorts to extract 3 ipf factors using varimax rotation:

qpair, first(qsort1_1-qsort30_1) second(qsort1_2-qsort30_2) nfa(3) ext(ipf)

Same as above but to display only a maximum of 25 characters for each statement:

qpair, first(qsort1_1-qsort30_1) second(qsort1_2-qsort30_2) nfa(3) ext(ipf) stlength(25)

The following commands conducts analysis using approach II to extract 3 pcf factors using varimax rotation:

qpair, first(qsort*_1) second(qsort*_2) nfa(3) app(II) ext(pcf)

Same as above to use regression factor scores

qpair, first(qsort*_1) second(qsort*_2) nfa(3) app(II) ext(pcf) score(regression)

Author

Noori Akhtar-Danesh (daneshn@mcmaster.ca), McMaster University, Hamilton, CANADA

References

Akhtar-Danesh, N., & Wingreen, SC. qpair: A command for analyzing paired Q-sorts in Q-methodology. The Stata Journal. 2022;22(4):884-907.

Akhtar-Danesh, N., & Wingreen, SC. How to analyze change in perception from paired Q-sorts. Communication in Statistics- Theory and Methods. 2022;51(16):5681-5691.

Akhtar-Danesh N. qfactor: A command for Q-methodology analysis. The Stata Journal. 2018;18(2):432-446.

Wingreen, SC., & Blanton, JE. IT professionals' person–organization fit with IT training and development priorities. Information Systems Journal. 2018;28(2):294-317.