posdefify(sfsmisc)
posdefify()所属R语言包:sfsmisc
Find a Close Positive Definite Matrix
查找关闭正定矩阵
译者:生物统计家园网 机器人LoveR
描述----------Description----------
From a matrix m, construct a "close" positive definite one.
从矩阵m,建立一个“关闭”正定1。
用法----------Usage----------
posdefify(m, method = c("someEVadd", "allEVadd"),
symmetric = TRUE, eigen.m = eigen(m, symmetric= symmetric),
eps.ev = 1e-07)
参数----------Arguments----------
参数:m
a numeric (square) matrix.
一个数字矩阵(方形)。
参数:method
a string specifying the method to apply; can be abbreviated.
一个字符串,指定适用的方法;可以缩写。
参数:symmetric
logical, simply passed to eigen (unless eigen.m is specified); currently, we do not see any reason for not using TRUE.
逻辑,简单的通过eigen(除非eigen.m指定),目前,我们没有任何理由不使用TRUE。
参数:eigen.m
the eigen value decomposition of m, can be specified in case it is already available.
的eigen的m值分解,可以指定情况下,它已经是可用的。
参数:eps.ev
number specifying the tolerance to use, see Details below.
数字,指定使用的耐受性,请参阅下面的详细信息。
Details
详细信息----------Details----------
We form the eigen decomposition
我们形成的特征值分解
where L is the diagonal matrix of eigenvalues, L[j,j] = l[j], with decreasing eigenvalues l[1] >= l[2] >= ... >= l[n].
L是对角矩阵的特征值,L[j,j] = l[j],与递减特征值l[1] >= l[2] >= ... >= l[n]。
When the smallest eigenvalue l[n] are less than Eps <- eps.ev * abs(lambda[1]), i.e., negative or “almost zero”, some or all eigenvalues are replaced by positive (>= Eps) values, L~[j,j] = l~[j]. Then, m~ = V L~ V' is computed and rescaled in order to keep the original diagonal (where that is >= Eps).
当的最小特征值l[n]小于Eps <- eps.ev * abs(lambda[1]),即,负或“几乎为零”,一些或所有特征值被替换为阳性(>= Eps)值,L~[j,j] = l~[j] 。然后,m~ = V L~ V'计算和重新调整,以保持原始的对角线(如果这是>= Eps)。
值----------Value----------
a matrix of the same dimensions and the “same” diagonal (i.e. diag) as m but with the property to be positive definite.
相同的尺寸和“相同”的对角线(即diag)m“可是属性是正定矩阵。
注意----------Note----------
As we found out, there are more sophisticated algorithms to solve this and related problems. See the references and the nearPD() function in the Matrix package.
我们发现,有更复杂的算法来解决这个问题和相关问题。的参考和nearPD()包Matrix的函数。
(作者)----------Author(s)----------
Martin Maechler, July 2004
参考文献----------References----------
Gill, P.~E., Murray, W. and Wright, M.~H. (1981) Practical Optimization, Academic Press.
A Modified Cholesky Algorithm Based on a Symmetric Indefinite Factorization; SIAM J. Matrix Anal.\ Appl., 19, 1097–1110.
Least-squares approximation of an improper correlation matrix by a proper one. Psychometrika 54, 53–61.
Computing the nearest correlation matrix - a problem from finance; IMA Journal of Numerical Analysis 22, 329–343.
Computing nearest covariance and correlation matrices. A thesis submitted to the University of Manchester for the degree of Master of Science in the Faculty of Science and Engeneering.
参见----------See Also----------
eigen on which the current methods rely. nearPD() in the Matrix package.
eigen的方法依赖。 nearPD() Matrix包。
实例----------Examples----------
set.seed(12)
m <- matrix(round(rnorm(25),2), 5, 5); m <- 1+ m + t(m); diag(m) <- diag(m) + 4
m
posdefify(m)
1000 * zapsmall(m - posdefify(m))
转载请注明:出自 生物统计家园网(http://www.biostatistic.net)。
注:
注1:为了方便大家学习,本文档为生物统计家园网机器人LoveR翻译而成,仅供个人R语言学习参考使用,生物统计家园保留版权。
注2:由于是机器人自动翻译,难免有不准确之处,使用时仔细对照中、英文内容进行反复理解,可以帮助R语言的学习。
注3:如遇到不准确之处,请在本贴的后面进行回帖,我们会逐渐进行修订。
|