ff.rotationsDF {GPArotateDF}R Documentation

Rotations

Description

Optimize factor loading rotation objective.

Usage

	ff.bentler(L)
	ff.cf(L, kappa=0)
	ff.cubimax(L)
	ff.entropy(L)
	ff.geomin(L, delta=0.01)
	ff.infomax(L) 
	ff.oblimax(L)
	ff.pst(L, W=NULL, Target=NULL)
	ff.quartimax(L)
	ff.quartimin(L)
	ff.simplimax(L, k=nrow(L))
	ff.fss(L, kij=2)
	ff.target(L, Target=NULL) 
	ff.varimax(L)

Arguments

L

a factor loading matrix

kappa

see details.

delta

constant added to Lambda^2 in objective calculation.

Target

rotation target for objective calculation.

W

weighting of each element in target.

k

number of close to zero loadings.

kij

minimum additional number of forced simple structure loadings in a pair of factors.

Details

These functions are used to optimize a rotation objective. The name need to be included in a call to GPForth.df or GPFoblq. Calling the functions itself computes the values but no rotation is performed.

Functions listed here are all exported through NAMESPACE, and primarily serve as examples for programming new rotation methods. New rotation methods can be programmed with a name ff.newmethod. The inputs are the matrix L, and optionally any additional arguments. The output should be a list with elements

f the value of the criterion at L.
Method a string indicating the criterion.

Please note that the function value f has to be minimized. If the rotation criterion is supposed to maximize, then use the negative of the criterion to miniize. Functions which are available are

ff.bentler orthogonal or oblique Bentler's invariant pattern simplicity criterion
ff.cf orthogonal or oblique Crawford-Ferguson family
ff.cubimax orthogonal
ff.entropy orthogonal minimum entropy
ff.fss orthogonal or oblique Forced Simple Structure (see Vignette)
ff.geomin orthogonal or oblique
ff.infomax orthogonal or oblique
ff.oblimax oblique
ff.pst orthogonal or oblique partially specified target rotation
ff.quartimax orthogonal
ff.quartimin oblique
ff.simplimax oblique
ff.target orthogonal or oblique target rotation
ff.varimax orthogonal

The argument kappa parameterizes the family for the Crawford-Ferguson method. If m is the number of factors and p is the number of items then kappa values having special names are 0=Quartimax, 1/p=Varimax, m/(2*p)=Equamax, (m-1)/(p+m-2)=Parsimax, 1=Factor parsimony.

For the argument kij for Forced Simple Structure see rotationsDF.

Value

f

criterion function value.

method

A string indicating the rotation objective function.

Author(s)

Coen A. Bernaards and Robert I. Jennrich

References

Jennrich, R.I. (2004) Derivative free gradient projection algorithms for rotation, Psychometrika: 69(3), 475–480.

See Also

GPForth.df, GPFoblq.df, fssQ.df, fssT.df, cubimax.df, rotationsDF, factanal

Examples

  data("Harman", package="GPArotation")
  qHarman  <- GPForth.df(Harman8, Tmat=diag(2), method="quartimax")
  
  # define a new function as ff.newname for use with factanal
  ff.expomax <- function(L)
  {
    f <- -sum(diag(expm1(abs(L))))
    list(f = f, Method = "DF-Expomax")
  }
  GPForth.df(Harman8, method ="expomax")

  expomax.df <- function(L, Tmat = diag(ncol(L)), normalize = FALSE, eps = 1e-5, maxit = 1000){
   GPForth.df(L, Tmat=Tmat, method = "expomax", normalize = normalize, eps= eps, maxit = maxit)	
  }
  expomax.df(Harman8, normalize = TRUE)
  factanal(factors = 2, covmat = ability.cov, rotation = "expomax.df", 
      control = list(rotate =c(normalize = TRUE)))
 

[Package GPArotateDF version 2023.11-1 Index]