psych (version 1.0-17)

00psych-package: A package for personality, psychometric, and psychological research


The psych package has been developed at Northwestern University to include functions most useful for personality and psychological research. Some of the functions (e.g., describe and pairs.panels ) are useful for basic descriptive analyses.

Psychometric applications include routines for Very Simple Structure VSS, Item Cluster Analysis ICLUST as well as functions to do Schmid Leiman transformations schmid and to calculate reliability coefficients alpha (score.items), beta (ICLUST) and omega.

Additional functions make for more convenient descriptions of item characteristics. Functions under development include 1 and 2 parameter Item Response measures.

A number of procedures have been developed as part of the Synthetic Aperture Personality Assessment (SAPA) project. These routines facilitate forming and analyzing composite scales equivalent to using the raw data but doing so by adding within and between cluster/scale item correlations. These functions include extracting clusters from factor loading matrices (factor2cluster), synthetically forming clusters from correlation matrices (cluster.cor), and multiple correlation from matrices (mat.regress).



The psych package is a combination of multiple source files maintained at the "useful.r", VSS.r., ICLUST.r, omega.r, etc. The "useful.r" is a set of routines for easy data entry (read.clipboard), simple descriptive statistics (describe), and splom plots combined with correlations pairs.panels (taken from the help files of cor).

The (VSS routines allow for testing the number of factors (VSS), showing plots (VSS.plot) of goodness of fit, and basic routines for psychometrics.

In addition, there are routines for hierarchical factor analysis using Schmid Leiman tranformations (omega) as well as Item Cluster analysis (ICLUST).

The more important functions in the package are for the analysis of multivariate data, with an emphasis upon those functions useful in scale construction of item composites.

When given a set of items from a personality inventory, one goal is to combine these into higher level item composites. This leads to several questions:

1) What is the most appropriate number of item composites to form? The Very Simple Structure (VSS) set of procedures is geared to this question. The number of factors/components problem is a standard question of factor analysis, cluster analysis, or principal components analysis.

2) What are the best composites to form? Although this may be answered using principal components (principal) or factor analysis (, it is sometimes more useful to address this question using cluster analytic techniques. Previous versions of ICLUST (e.g., Revelle, 1979) have been shown to be particularly successful at doing this. Graphical output from ICLUST.graph uses the Graphviz dot language and requires Graphviz. (As of April, 2007, R-graphviz did not work on the Intel-Mac. Soon one should be able to use R-graphviz.)

3) How well does a particular item composite reflect a single construct? This is a question of reliability and general factor saturation. Multiple solutions for this problem result in (Cronbach's) alpha (score.items), (Revelle's) Beta (ICLUST), and (McDonald's) omega. Functions to estimate all three of these are included in psych.

4) For some applications, data matrices are synthetically combined from sampling different items for different people. So called Synthetic Aperture Personality Assessement (SAPA) techniques allow the formation of large correlation or covariance matrices even though no one person has taken all of the items. To analyze such data sets, it is easy to form item composites based upon the covariance matrix of the items, rather than original data set. These matrices may then be analyzed using a number of functions (e.g., cluster.cor,, ICLUST, principal, mat.regress, factor2cluster.

5) More typically, one has a raw data set to analyze. score.items will score data sets on multiple scales, reporting the scale scores, item-scale and scale-scale correlations, as well as coefficient alpha and alpha-1. Using a 'keys' matrix, scales can have overlapping or independent items.

ll{ Package: psych Type: Package Version: 1.0-16 Date: 2007-5-1, License: GPL version 2 or newer } Index:

psych A package for personality, psychometric, and psychological research. Useful data entry and descriptive statistics describe Basic descriptive statistics useful for psychometrics Find summary statistics by groups read.clipboard shortcut for reading from the clipboard read.clipboard.csv shortcut for reading comma delimited files from clipboard pairs.panels SPLOM and correlations for a data matrix panel.cor part of pairs.panels panel.cor.scale part of pairs.panels panel.hist part of pairs.panels multi.hist Histograms of multiple variables arranged in matrix form skew Calculate skew for a vector, matrix, or data.frame error.crosses Two way error bars geometric.mean Find the geometric mean of a vector or columns of a data.frame harmonic.mean Find the harmonic mean of a vector or columns of a data.frame Data reduction through cluster and factor analysis ICLUST Apply the ICLUST algorithm ICLUST.graph Graph the output from ICLUST using the dot language omega Calculate the omega estimate of factor saturation (requires the GPArotation package schmid Apply the Schmid Leiman transformation to a correlation matrix score.items Combine items into multiple scales and find alpha VSS Apply the Very Simple Structure criterion to determine the appropriate number of factors. VSS.parallel Do a parallel analysis to determine the number of factors for a random matrix VSS.plot Plot VSS output VSS.scree Show the scree plot of the factor/principal components VSS.simulate Generate simulated data for the factor model make.hierarchical Generate simulated correlation matrices with hierarchical structure Procedures particularly useful for Synthetic Aperture Personality Assessment alpha.scale Find coefficient alpha for a scale (see also score.items correct.cor Correct a correlation matrix for unreliability count.pairwise Count the number of complete cases when doing pair wise correlations cluster.cor find correlations of composite variables from larger matrix cluster.loadings find correlations of items with composite variables from a larger matrix eigen.loadings Find the loadings when doing an eigen value decomposition Do a principal Axis factor analysis factor2cluster extract cluster definitions from factor loadings factor.congruence Factor congruence coefficient How well does a factor model fit a correlation matrix factor.model Reproduce a correlation matrix based upon the factor model factor.residuals Fit = data - model factor.rotate "hand rotate" factors mat.regress multiple regression from matrix input principal Do an eigen value decomposition to find the principal components of a matrix Miscellaneous functions fisherz Apply the Fisher r to z transform paired.r Test for the difference of two paired correlations phi2poly Given a phi coefficient, what is the polychoric polychor.matrix Use John Fox's polycor to create a matrix of correlations psycho.demo Create artificial data matrices for teaching purposes Functions that are under development and not recommended for casual use irt.item.diff.rasch IRT estimate of item difficulty with assumption that theta = 0 irt.person.rasch Item Response Theory estimates of theta (ability) using a Rasch like model


A general guide to personality theory and research may be found at the personality-project See also the short guide to R at In addition, see An Introduction to Psychometric Theory with applications in R (Revelle, in preparation) at


Run this code
#See the separate man pages

Run the code above in your browser using DataCamp Workspace