nBentler: Bentler and Yuan's Procedure to Determine the Number of...

View source: R/nBentler.r

nBentlerR Documentation

Bentler and Yuan's Procedure to Determine the Number of Components/Factors

Description

This function computes the Bentler and Yuan's indices for determining the number of components/factors to retain.

Usage

nBentler(x, N, log = TRUE, alpha = 0.05, cor = TRUE,
  details = TRUE, minPar = c(min(lambda) - abs(min(lambda)) + 0.001,
  0.001), maxPar = c(max(lambda), lm(lambda ~
  I(length(lambda):1))$coef[2]), ...)

Arguments

x

numeric: a vector of eigenvalues, a matrix of correlations or of covariances or a data.frame of data

N

numeric: number of subjects.

log

logical: if TRUE does the maximization on the log values.

alpha

numeric: statistical significance level.

cor

logical: if TRUE computes eigenvalues from a correlation matrix, else from a covariance matrix

details

logical: if TRUE also returns detains about the computation for each eigenvalue.

minPar

numeric: minimums for the coefficient of the linear trend to maximize.

maxPar

numeric: maximums for the coefficient of the linear trend to maximize.

...

variable: additionnal parameters to give to the cor or cov functions

Details

The implemented Bentler and Yuan's procedure must be used with care because the minimized function is not always stable, as Bentler and Yan (1996, 1998) already noted. In many cases, constraints must applied to obtain a solution, as the actual implementation did, but the user can modify these constraints.

The hypothesis tested (Bentler and Yuan, 1996, equation 10) is:

(1) \qquad \qquad H_k: λ_{k+i} = α + β x_i, (i = 1, …, q)

The solution of the following simultaneous equations is needed to find (α, β) \in

(2) \qquad \qquad f(x) = ∑_{i=1}^q \frac{ [ λ_{k+j} - N α + β x_j ] x_j}{(α + β x_j)^2} = 0

and \qquad \qquad g(x) = ∑_{i=1}^q \frac{ λ_{k+j} - N α + β x_j x_j}{(α + β x_j)^2} = 0

The solution to this system of equations was implemented by minimizing the following equation:

(3) \qquad \qquad (α, β) \in \inf{[h(x)]} = \inf{\log{[f(x)^2 + g(x)^2}}]

The likelihood ratio test LRT proposed by Bentler and Yuan (1996, equation 7) follows a χ^2 probability distribution with q-2 degrees of freedom and is equal to:

(4) \qquad \qquad LRT = N(k - p)≤ft\{ {\ln ≤ft( {{n \over N}} \right) + 1} \right\} - N∑\limits_{j = k + 1}^p {\ln ≤ft\{ {{{λ _j } \over {α + β x_j }}} \right\}} + n∑\limits_{j = k + 1}^p {≤ft\{ {{{λ _j } \over {α + β x_j }}} \right\}}

With p beeing the number of eigenvalues, k the number of eigenvalues to test, q the p-k remaining eigenvalues, N the sample size, and n = N-1. Note that there is an error in the Bentler and Yuan equation, the variables N and n beeing inverted in the preceeding equation 4.

A better strategy proposed by Bentler an Yuan (1998) is to used a minimized χ^2 solution. This strategy will be implemented in a future version of the nFactors package.

Value

nFactors

numeric: vector of the number of factors retained by the Bentler and Yuan's procedure.

details

numeric: matrix of the details of the computation.

Author(s)

Gilles Raiche
Centre sur les Applications des Modeles de Reponses aux Items (CAMRI)
Universite du Quebec a Montreal
raiche.gilles@uqam.ca

David Magis
Departement de mathematiques
Universite de Liege
David.Magis@ulg.ac.be

References

Bentler, P. M. and Yuan, K.-H. (1996). Test of linear trend in eigenvalues of a covariance matrix with application to data analysis. British Journal of Mathematical and Statistical Psychology, 49, 299-312.

Bentler, P. M. and Yuan, K.-H. (1998). Test of linear trend in the smallest eigenvalues of the correlation matrix. Psychometrika, 63(2), 131-144.

See Also

nBartlett, bentlerParameters

Examples


## ................................................
## SIMPLE EXAMPLE OF THE BENTLER AND YUAN PROCEDURE

# Bentler (1996, p. 309) Table 2 - Example 2 .............
n=649
bentler2<-c(5.785, 3.088, 1.505, 0.582, 0.424, 0.386, 0.360, 0.337, 0.303,
            0.281, 0.246, 0.238, 0.200, 0.160, 0.130)

results  <- nBentler(x=bentler2, N=n)
results

plotuScree(x=bentler2, model="components",
    main=paste(results$nFactors,
    " factors retained by the Bentler and Yuan's procedure (1996, p. 309)",
    sep=""))
# ........................................................

# Bentler (1998, p. 140) Table 3 - Example 1 .............
n        <- 145
example1 <- c(8.135, 2.096, 1.693, 1.502, 1.025, 0.943, 0.901, 0.816, 0.790,
              0.707, 0.639, 0.543,
              0.533, 0.509, 0.478, 0.390, 0.382, 0.340, 0.334, 0.316, 0.297,
              0.268, 0.190, 0.173)

results  <- nBentler(x=example1, N=n)
results

plotuScree(x=example1, model="components",
   main=paste(results$nFactors,
   " factors retained by the Bentler and Yuan's procedure (1998, p. 140)",
   sep=""))
# ........................................................


nFactors documentation built on Oct. 10, 2022, 5:07 p.m.

Related to nBentler in nFactors...