Amir Goldberg

Stanford Graduate School of Business

Relational Class Analysis

New! RCA is available as an R package

Relational Class Analysis (RCA) is a method for addressing ideational heterogeneity in attitudinal (survey) data. In simple terms, RCA takes a sample of survey respondents and divides them in to groups of people who exhibit the same pattern of relationships between answers. The intuition behind RCA is that the people in each group are employing a distinctive cultural logic, that they make up a 'subculture' of sorts. The main point is that members of the same group do not necessarily hold the same opinions but nevertheless understand the meaning of the issues at stake to be structured in a similar way.

An RCA approach is useful for studying domains in which there are good reasons to believe that different people employ systematically different logics, and therefore attribute different meanings to the same thing. Politics is a good example. We all use the terms 'liberal' and 'conservative' very often, but each of these two labels can connote very different things. RCA would delineate groups of respondents who understand the political debate (and these two political labels) in similar ways, even if they take different positions. Other applications might be understanding how people experience social identities (do they classify people as a function of ethnic identity? class? gender?), how they classify consumption items or how they draw moral and ethic boundaries. While the method was developed to infer multiple meanings from attitudinal data, it can also be applied to behavioral data.

You can read more about RCA here.


Currently, RCA is available as an R package, as well as a C package, compilable as a standalone executable. These packages are distributed as free software. You may redistribute these software packages and modify them under the terms of the GNU General Public License.

Conducting an RCA analysis is fairly simple. All you need is a dataset, where variables are ordinally scaled. Currently, the method is not designed to address missing data, so you should either remove missing observations, or impute them. A more detailed guide to using RCA will be added to this website in the near future. In the meanwhile, please consult manual files in the software packages below.

If you are experiencing difficulty using these software packages, or if you are making changes or enhancements, please do not hesitate to get in touch.

RCA for R

To install RCA on your machine, simply run the following code on R:

> install.packages("RCA")

You may be required to install the igraph package if it is not already installed.

You can also access the source code and binaries directly through CRAN. Or you can download the package directly for Windows or Mac and install by running the following command line: R CMD INSTALL package_file_name

Running an RCA analysis is easy. Create a dataset, and remove any observations with missing data. Then simply run the following code:

> library(RCA)

> out=RCA(dataset)

RCA returns the following output variables:

> out$member

A vector assigning observations to groups

> out$mod

Modularity, a number ranging from 0 to 1 measuring the strength of partition into groups

> out$merge

The clustering tree

RCA executable

The RCA-C package can be found here.

Binaries can be found here.