matlab biplot 符号的困惑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab biplot 符号的困惑相关的知识,希望对你有一定的参考价值。

      在matlab中做Principal component Analysis 时,常要用biplot 函数来画图,表示原分量与主分量(principal component)之间的关系,以及原始观察数据在主分量坐标下的系数。下面就是一个运行实例:

 

load hald;

[pc,score,latent,tsquare] = princomp(ingredients);

biplot(pc(:,1:2),‘Scores‘,score(:,1:2),‘VarLabels‘,{‘X1‘ ‘X2‘ ‘X3‘ ‘X4‘});

显示图像如下:

技术分享

产生的结果数据如下图:

技术分享

对比观察数据与图像,就会发现以下几个困惑:

1、X1,X2,X3,X4是原分量在主分量坐标下的矢量表达,但是矢量分量的方向都不对(见下图)。

技术分享

2、所有观察数据(score)的符号和大小与图上显示不符(见下图)。

技术分享

      带着这些困惑,仔细查看了matlab关于biplot的帮助,发现有下面一段话:

“biplot做了一个符号转换,确保系数矩阵的每一列中的最大值为正。这样会改变一些系数矢量的方向,但会使图形更容易理解。...”(“biplot imposes a sign convention, forcing the element with largest magnitude in each column of coefs to be positive. This flips some of the vectors in coefs to the opposite direction, but often makes the plot easier to read. Interpretation of the plot is unaffected, because changing the sign of a coefficient vector does not change its meaning.”)。唉,效果适得其反啊!同时,这样做的结果同时也相应改变了score的符号,为了将score的红点画在同一个画面,score的大小也是成比例缩放了。

以上是关于matlab biplot 符号的困惑的主要内容,如果未能解决你的问题,请参考以下文章

在matlab中怎么输入特殊符号

在matlab中怎么输入特殊符号

MATLAB从入门到精通-matlab中符号推导应用及相关技巧

MATLAB——matlab特殊符号表转载

matlab 符号计算 求空间曲线长度

如何用matlab求解常微分方程?matlab解常微分方程之符号解法介绍