MWE(需要统计工具箱,在MATLAB R2014b上测试):
x = (1:3)';
b = mnrfit(x,x,'model','hierarchical');
pihat = mnrval(b,x,'model','hierarchical','type','conditional')
输出:
pihat =
1 1
2.2204e-16 1
2.2204e-16 2.2204e-16
(忽略已发出的警告,因为一些简单的例子,它是线性可分的(我用自己预测x
)。这并不重要:我&# 39;我在没有警告的情况下尝试了这个非平凡(并且不那么简单)的例子,结果也很相似。)
我的问题是结果。我已经指定我想要条件概率。根据MATLAB关于mnrval
的文档:
指定[
'conditional'
]以根据第一个k – 1
条件类别概率[...]返回预测[...],即概率[...]对于类别j
,给出j
或更高类别的结果。
在我的示例中,这意味着pihat
行包含
x=1
已x>=1
x=2
已x>=2
(x=3
的第三列不是必需的,因为如果前两个概率是已知的,则第三个概率也是已知的。它遵循P(x=1) + P(x=2) + P(x=3) = 1
的逻辑顺序。)
我是否正确地解释了这一点?因此,如果预测x=1
,那么第一列值应该很大(接近1),因为给定P(x=1)
的{{1}}很大。第二列应该接近于零,因为如果x>=1
,P(x=2)
x>=2
x=1
可能会很大。
但是,正如您在第一行中看到的那样,第二列值和第一列一样大!根据文档规定,我认为这是不正确的,我是对的吗?当前(不正确的?)结果意味着行中的预测概率不是x=j
给定x>=j
,但那么它们是什么?或者我该如何解释它们?
它们不等于累积概率,即x<=j
的概率,其随j
增加。我已经通过计算pihat2 = mnrval(b,x,'model','hierarchical','type','cumulative'); pihat2-pihat
来检查了这一点。