请问如何判断矩阵是否为病态?
我所知道的判断方法就是判断其中的向量之间是否存在多重共线性,即判断有多少对向量之间的方差扩大因子大于10,如果某一对向量的方差扩大因子大于10,则说明这一对向量线性相关性很强。如果一个矩阵,这种线性相关性很强的向量对太多,则说明该矩阵是病态的。不知道以上判断是否正确?
我有一个40维的矩阵,其中方差扩大因子大于10的向量对有6个,这个矩阵算病态吗?能否直接用线性回归法求解?
[ 本帖最后由 ChaChing 于 2010-5-2 14:26 编辑 ] 算一下它的条件数就知道了,即cond命令
[ 本帖最后由 ChaChing 于 2010-5-2 14:24 编辑 ] 用cond命令算出来是这么多:1.8359e+019
吓死人了,这说明什么问题? 条件数是按数学的角度来判断一个矩阵是否病态,你算出来的结果就是病态的一个例子,不过不知道按照你所说的相关性角度如何,不懂,呵呵
[ 本帖最后由 ChaChing 于 2010-5-2 14:26 编辑 ] 那么一般条件数要多大才不算是病态呢? 一般100以下吧,不过具体问题具体分析
[ 本帖最后由 ChaChing 于 2010-5-2 14:27 编辑 ]
矩阵多重共线性和条件数
还有,那我的这个矩阵有没有办法求解?看来我好像把这两个概念搞混了,多重共线性下矩阵难以求解,条件数过大,也不行。不知道二者有什么联系没有?
可能问得比较低级,我初次接触这些,还请多指点。
[ 本帖最后由 ChaChing 于 2010-5-2 17:17 编辑 ]
回复
一般条件数越大,就表明矩阵的共线性越强.另:注意不要发重复贴.
一个矩阵条件数很大,能得到较好的解吗?
一个矩阵,1200*40的,条件数很大,但必须解出,用一般的非负最小二乘难以得到准确的解,因为多重共线性太强(条件数太大)。有没有可能得到比较好的解?请推荐几种可能的解法。 比较简单的办法用伪逆来求吧,pinv,具体自己看看帮助当然如果要达到比较好的效果,用正则化方法来解
我这样改造后的矩阵条件数减小了一个数量级,能算成功吗?
有一个50*50的矩阵,其条件数为9.9*10^5,经过改造后,新矩阵的条件数降为了1.7*10^4,这样的改造有意义吗?是否意味着新矩阵并态度明显降低了?[ 本帖最后由 ChaChing 于 2010-5-2 17:16 编辑 ] 明显降低是模糊的概念。可以说降低到原来的10%等等 楼上,那是不是意味着这样的改造时成功的,并且改造后将能获得更加稳定的解? 可以这么说,但是条件数缩小一个量级虽然有进步,但是也不是特别显著 楼上,那应该缩小多少才算显著呢?一个矩阵,条件数为10^3量级,是不是很严重的病态?判断一个矩阵病态程度是“十分严重”,还是“一般”,还是“稍微病态”,有一个大致标准吗?我找了很久都没有这方面的资料。能否请你指点一二,并推荐一些相关资料呢?
页:
[1]
2