matlab mnrfit警告:“矩阵接近单一或严重缩放”

时间:2013-10-04 13:19:49

标签: matlab

我正在使用MATLAB的mnrfit来执行多元二项Logistic回归。我的输入是n x p矩阵X,其中观察为行和预测变量为列(没有错过的观察/ NaN),以及标n x 1列向量,{{1 },表示类为“1”或“2”。

最初,我收到了一个奇异矩阵的错误消息,所以我经历了Y

  • 删除了包含全部1或全部0
  • 的列
  • 检查X以查找值相同的列

我删除了每个匹配对中的一个,因此不再有重复的列。但是,当我运行X时,虽然我得到了系数估计值的输出,但每个列都会收到此消息:

mnrfit

我搜索过,但一直无法弄清楚这意味着什么。此外,系数估计的向量包含一个顶部的值,旁边有一个星号,我不知道这意味着什么。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我最好的猜测是,尽管你的清洁你的矩阵仍然没有足够的等级(这给出了单一的警告)。

即使删除了所有明显的对,或只有1个值的单列,仍然可能存在线性组合。

使用Matlab中的rank命令很容易检查。如果结果数字小于您的列数,则无法解决问题。


要解决此问题,可能在矩阵(或转置矩阵?)上使用rref可以帮助您确定需要消除哪些列。