corSmooth | R Documentation |

A function for smoothing a non-positive definite correlation matrix by the method of Knol and Berger (1991).

```
corSmooth(R, eps = 1e+08 * .Machine$double.eps)
```

`R` |
A non-positive definite correlation matrix. |

`eps` |
Small positive number to control the size of the non-scaled smallest eigenvalue of the smoothed R matrix. Default = 1E8 * .Machine$double.eps |

`Rsmoothed` |
A Smoothed (positive definite) correlation matrix. |

Niels Waller

Knol, D. L., and Berger, M. P. F., (1991). Empirical comparison
between factor analysis and multidimensional item response
models.*Multivariate Behavioral Research, 26*, 457-477.

```
## choose eigenvalues such that R is NPD
l <- c(3.0749126, 0.9328397, 0.5523868, 0.4408609, -0.0010000)
## Generate NPD R
R <- genCorr(eigenval = l, seed = 123)
print(eigen(R)$values)
#> [1] 3.0749126 0.9328397 0.5523868 0.4408609 -0.0010000
## Smooth R
Rsm<-corSmooth(R, eps = 1E8 * .Machine$double.eps)
print(eigen(Rsm)$values)
#> [1] 3.074184e+00 9.326669e-01 5.523345e-01 4.408146e-01 2.219607e-08
```

fungible documentation built on March 31, 2023, 5:47 p.m.

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.