The squared multiple correlation of a variable with the remaining variables in a matrix is sometimes used as initial estimates of the communality of a variable.

SMCs are also used when estimating reliability using Guttman's lambda 6 `guttman`

coefficient.

The SMC is just 1 - 1/diag(R.inv) where R.inv is the inverse of R.

`smc(R,covar=FALSE)`

R

A correlation matrix or a dataframe. In the latter case, correlations are found.

covar

if covar = TRUE and R is either a covariance matrix or data frame, then return the smc * variance for each item

a vector of squared multiple correlations. Or, if covar=TRUE, a vector of squared multiple correlations * the item variances

If the matrix is not invertible, then a vector of 1s is returned. Note, that I now take the left pseudo inverse so this is less likely to happen (if at all).

In the case of correlation or covariance matrices with some NAs, those variables with NAs are dropped and the SMC for the remaining variables are found. The missing SMCs are then estimated by finding the maximum correlation for that column (with a warning).

```
# NOT RUN {
R <- make.hierarchical()
round(smc(R),2)
# }
```

Run the code above in your browser using DataLab