1

我正在使用 MATLABmnrfit执行多元二项式逻辑回归。我的输入是一个n x p矩阵 ,X其中观察值作为行,预测变量作为列(没有遗漏的观察值/NaN),以及n x 1标签的列向量Y,表示类别为“1”或“2”。

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

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

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

"Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.989093e-19 [differs for each col]." 

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

4

1 回答 1

2

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

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

这很容易用rankMatlab 中的命令检查。如果结果数字小于您的列数量,则您没有解决问题。


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

于 2013-10-04T13:24:05.923 回答