2015-04-05 212 views
0

对不起,如果已经有一个答案。我似乎无法找到它。可视化距离矩阵

我正在研究一个将立法者的投票记录提交给账单的应用程序,并且我试图想出一些可视化数据的有趣方法。现在我的脑海里有一个想法,但我不确定在数学上可能在两个维度上做我想要的可视化。

的数据是这样开始:

 HB1 HB2 HB3 
Smith 1 0 1 
Hill 1 1 1 
Davis 0 1 0 

Where 1 = aye, 0 = nay. 

下一步我采取的是由他们的投票记录的异或求和,以测量从所述其他各立法者的“距离”,从而使每次一个立法者与另一位议员不同意,他们与立法者有点距离。创建一个表是这样的:

 Smith Hill Davis 
Smith 0  1  3 
Hill  1  0  2 
Davis 3  2  0 

所以我的想法是图中的每个立法者作为一个平面上的点,并有那些点之间的距离反映的距离评级表。我认为这提供了一个有趣的机会,看看是否有类似投票模式的立法者集群等。

很明显,这很容易做到3分,因为您总是可以绘制三个给定长度的三角形两侧。但我无法弄清楚是否可以在数学上绘制更多(35-70)立法者的图,并且仍然在二维空间内拥有所有的距离,或者是否可能需要每个立法者在三维之后增加一个维度。

例如,如果数据表看起来像这样,是否可以保留所有的距离?

0 13 6 8 10 14 12 14 12 12 
    13 0 13 13 13 7 9 11 9 7 
    6 13 0 12 8 16 14 10 12 14 
    8 13 12 0 12 10 6 10 10 8 
    10 13 8 12 0 10 12 12 14 14 
    14 7 16 10 10 0 10 10 12 8 
    12 9 14 6 12 10 0 12 8 10 
    14 11 10 10 12 10 12 0 8 10 
    12 9 12 10 14 12 8 8 0 10 
    12 7 14 8 14 8 10 10 10 0 

如果是这样,Octave是否有内置函数?或任何人都可以指向我的算法?

回答

0

好的,找到答案。

  1. 不,通常在数学上不可能做我想做的事情。

  2. 最佳近似值是称为多维缩放的算法。 Octave具有内置功能:cmdscale

希望别人也许会觉得这有帮助。