zuohaoyi 发表于 2006-11-21 15:55

请问如何判断矩阵是否为病态?

我所知道的判断方法就是判断其中的向量之间是否存在多重共线性,即判断有多少对向量之间的方差扩大因子大于10,如果某一对向量的方差扩大因子大于10,则说明这一对向量线性相关性很强。如果一个矩阵,这种线性相关性很强的向量对太多,则说明该矩阵是病态的。

不知道以上判断是否正确?
我有一个40维的矩阵,其中方差扩大因子大于10的向量对有6个,这个矩阵算病态吗?能否直接用线性回归法求解?

[ 本帖最后由 ChaChing 于 2010-5-2 14:26 编辑 ]

eight 发表于 2006-11-21 15:56

算一下它的条件数就知道了,即cond命令

[ 本帖最后由 ChaChing 于 2010-5-2 14:24 编辑 ]

zuohaoyi 发表于 2006-11-21 16:13

用cond命令算出来是这么多:1.8359e+019
吓死人了,这说明什么问题?

eight 发表于 2006-11-21 16:22

条件数是按数学的角度来判断一个矩阵是否病态,你算出来的结果就是病态的一个例子,不过不知道按照你所说的相关性角度如何,不懂,呵呵

[ 本帖最后由 ChaChing 于 2010-5-2 14:26 编辑 ]

zuohaoyi 发表于 2006-11-21 16:28

那么一般条件数要多大才不算是病态呢?

eight 发表于 2006-11-21 16:30

一般100以下吧,不过具体问题具体分析

[ 本帖最后由 ChaChing 于 2010-5-2 14:27 编辑 ]

zuohaoyi 发表于 2006-11-21 16:39

矩阵多重共线性和条件数

还有,那我的这个矩阵有没有办法求解?

看来我好像把这两个概念搞混了,多重共线性下矩阵难以求解,条件数过大,也不行。不知道二者有什么联系没有?
可能问得比较低级,我初次接触这些,还请多指点。

[ 本帖最后由 ChaChing 于 2010-5-2 17:17 编辑 ]

xjzuo 发表于 2006-11-21 20:00

回复

一般条件数越大,就表明矩阵的共线性越强.
另:注意不要发重复贴.

zuohaoyi 发表于 2006-11-26 17:01

一个矩阵条件数很大,能得到较好的解吗?

一个矩阵,1200*40的,条件数很大,但必须解出,用一般的非负最小二乘难以得到准确的解,因为多重共线性太强(条件数太大)。有没有可能得到比较好的解?请推荐几种可能的解法。

happy 发表于 2006-11-27 11:35

比较简单的办法用伪逆来求吧,pinv,具体自己看看帮助

当然如果要达到比较好的效果,用正则化方法来解

zuohaoyi 发表于 2009-11-4 14:44

我这样改造后的矩阵条件数减小了一个数量级,能算成功吗?

有一个50*50的矩阵,其条件数为9.9*10^5,经过改造后,新矩阵的条件数降为了1.7*10^4,这样的改造有意义吗?是否意味着新矩阵并态度明显降低了?

[ 本帖最后由 ChaChing 于 2010-5-2 17:16 编辑 ]

VibrationMaster 发表于 2009-11-4 19:28

明显降低是模糊的概念。可以说降低到原来的10%等等

zuohaoyi 发表于 2009-11-5 01:10

楼上,那是不是意味着这样的改造时成功的,并且改造后将能获得更加稳定的解?

VibrationMaster 发表于 2009-11-8 06:42

可以这么说,但是条件数缩小一个量级虽然有进步,但是也不是特别显著

zuohaoyi 发表于 2009-11-8 19:39

楼上,那应该缩小多少才算显著呢?一个矩阵,条件数为10^3量级,是不是很严重的病态?判断一个矩阵病态程度是“十分严重”,还是“一般”,还是“稍微病态”,有一个大致标准吗?我找了很久都没有这方面的资料。能否请你指点一二,并推荐一些相关资料呢?
页: [1] 2
查看完整版本: 请问如何判断矩阵是否为病态?