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的大小也是成比例缩放了。

转载于:https://www.cnblogs.com/hobart-xiao/p/6396734.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值