\encoding{UTF-8}
\name{GriffithMulaik}
\docType{data}
\alias{GriffithMulaik}
\title{Griffith and Mulaik Interpersonal Personality Traits}
\description{
  Correlation matrix for 24 bipolar seven-point trait-adjective scales
  representing six hypothetical factors from the interpersonal domain
  of personality. Data from an unpublished senior thesis conducted under
  the supervision of Stanley Mulaik at the School of Psychology,
  Georgia Institute of Technology, 1998.
}
\usage{
data(GriffithMulaik, package = "GPArotation")
}
\format{
  A \eqn{24 \times 24}{24 x 24} numeric correlation matrix with
  \code{n.obs = 523}. Row and column names are abbreviated variable
  labels for 24 interpersonal trait scales:
  \code{ALLOW}, \code{OUTGO}, \code{NONTALK}, \code{PERMISS},
  \code{FAIR}, \code{UNFRIEND}, \code{FORCELSS}, \code{RESTRAIN},
  \code{NONDOMIN}, \code{UNLOVING}, \code{NONCNFRM}, \code{COMPLINT},
  \code{IMPARTL}, \code{LEADER}, \code{UNKIND}, \code{UNCNVENT},
  \code{DIRECTNG}, \code{PROHIBTV}, \code{UNGREGAR}, \code{JUST},
  \code{NEUTRAL}, \code{SOCIABLE}, \code{UNAFFECT}, \code{REBELLOS}.
}
\details{
  Participants were 523 Georgia Tech introductory psychology students
  who each rated three stereotypical persons selected at random from a
  large list of stereotypes on 52 bipolar seven-point trait-adjective
  scales. The 24 variables analyzed here represent six hypothetical
  factors from the interpersonal domain of personality: four synonym
  trait items per factor.

  The study was intended to test Mulaik's theory of personality trait
  factors. Six simple structure factors were obtained as expected,
  providing tentative support for the theory.

  The correlation matrix is reproduced as Table 8.5 in Mulaik (2018).
  The data are used in that chapter to illustrate maximum likelihood
  factor analysis with a reduced correlation matrix scree plot.
  
  The six-factor oblimin solution obtained by \code{GPArotation}
  closely replicates the Direct Oblimin solution reported in
  Mulaik (2018) Table 8.6, with minor differences attributable
  to factor ordering and sign conventions.
}
\seealso{
  \code{\link{rotations}},
  \code{\link{Harman}},
  \code{\link{Thurstone}},
  \code{\link{CCAI}}
}
\references{
  Griffith, D. and Mulaik, S.A. (1998).
  \emph{Personality trait factors from the interpersonal domain.}
  Poster presented at the Society for Multivariate Experimental
  Psychology (SMEP).

  Mulaik, S.A. (2018). Fundamentals of common factor analysis.
  In P. Irwing, T. Booth, and D.J. Hughes (Eds.),
  \emph{The Wiley Handbook of Psychometric Testing}
  (pp. 211--252). Wiley.
}
\examples{
  data(GriffithMulaik, package = "GPArotation")

  ## Scree plot comparing raw versus reduced correlation matrix
  ## (Mulaik, 2018, recommends reduced matrix for ML factor analysis)
  fa.un <- factanal(factors = 6, covmat = GriffithMulaik,
                    n.obs = 523, rotation = "none")
  res.un <- quartimax(fa.un)

  ## Six factor oblimin rotation
  res.ob <- oblimin(fa.un, randomStarts = 100)
  summary(res.ob)

  ## Compare simple structure across rotation methods
  res.vm <- Varimax(fa.un)
  res.gm <- geominQ(fa.un, randomStarts = 100)

  cat(sprintf("\%-12s  AUC = \%.3f  Hyperplane = \%.1f pct\n",
              "Varimax",  GPArotation:::calc_AUC(res.vm)$AUC_mean,
              GPArotation:::calc_hyperplane(res.vm)$HP_pct))
  cat(sprintf("\%-12s  AUC = \%.3f  Hyperplane = \%.1f pct\n",
              "Oblimin",  GPArotation:::calc_AUC(res.ob)$AUC_mean,
              GPArotation:::calc_hyperplane(res.ob)$HP_pct))
  cat(sprintf("\%-12s  AUC = \%.3f  Hyperplane = \%.1f pct\n",
              "GeominQ",  GPArotation:::calc_AUC(res.gm)$AUC_mean,
              GPArotation:::calc_hyperplane(res.gm)$HP_pct))

  ## --- Theory-guided rotation via partially specified target ---
  ## Mulaik (2018) Table 8.7 specifies a CFA hypothesis matrix:
  ## * = free parameter (NA), o = constrained to zero (0)
  GM_target <- matrix(c(
  ## F1  F2  F3  F4  F5  F6
    NA,  0,  0,  0, NA,  0,  ## ALLOW
    NA, NA,  0,  0, NA,  0,  ## OUTGO
     0, NA,  0,  0, NA,  0,  ## NONTALK
    NA,  0,  0,  0,  0,  0,  ## PERMISS
     0,  0, NA, NA,  0,  0,  ## FAIR
    NA, NA, NA, NA,  0,  0,  ## UNFRIEND
    NA, NA,  0, NA, NA,  0,  ## FORCELSS
    NA, NA,  0,  0, NA,  0,  ## RESTRAIN
    NA, NA,  0, NA, NA,  0,  ## NONDOMIN
     0,  0,  0, NA,  0,  0,  ## UNLOVING
     0,  0,  0,  0,  0, NA,  ## NONCNFRM
    NA,  0,  0,  0,  0, NA,  ## COMPLINT
     0, NA, NA,  0, NA,  0,  ## IMPARTL
     0,  0,  0,  0, NA,  0,  ## LEADER
     0, NA, NA, NA,  0,  0,  ## UNKIND
     0,  0,  0,  0,  0, NA,  ## UNCNVENT
     0,  0,  0, NA, NA,  0,  ## DIRECTNG
    NA,  0,  0,  0, NA, NA,  ## PROHIBTV
     0, NA,  0,  0,  0,  0,  ## UNGREGAR
     0,  0, NA, NA,  0,  0,  ## JUST
    NA, NA, NA, NA, NA,  0,  ## NEUTRAL
    NA, NA,  0, NA, NA, NA,  ## SOCIABLE
     0, NA,  0, NA,  0,  0,  ## UNAFFECT
     0, NA,  0, NA,  0, NA   ## REBELLOS
  ), nrow = 24, ncol = 6, byrow = TRUE)
  rownames(GM_target) <- rownames(GriffithMulaik)
  colnames(GM_target) <- paste0("F", 1:6)

  ## W: 1 = constrained to zero, 0 = free
  GM_target_pst <- ifelse(is.na(GM_target), 0, GM_target)
  GM_W          <- ifelse(is.na(GM_target), 0, 1)

  ## Oblique PST closely replicates Mulaik (2018) Table 8.8 CFA solution
  res.pstQ <- pstQ(fa.un, Target = GM_target_pst, W = GM_W)
  print(res.pstQ)

  ## Compare data-driven vs theory-guided rotation
  cat(sprintf("\%-10s  AUC = \%.3f  Hyperplane = \%.1f pct\n",
              "PST-Q",   GPArotation:::calc_AUC(res.pstQ)$AUC_mean,
              GPArotation:::calc_hyperplane(res.pstQ)$HP_pct))
  cat(sprintf("\%-10s  AUC = \%.3f  Hyperplane = \%.1f pct\n",
              "Oblimin", GPArotation:::calc_AUC(res.ob)$AUC_mean,
              GPArotation:::calc_hyperplane(res.ob)$HP_pct))
}
\keyword{datasets}
