Location : Home > Languages > Perl > Package
Title : Statistics::RankCorrelation
Toolbox Logo

名称

 Statistics::RankCorrelation - 2ベクトル間の順位相関係数を計算


概要

use Statistics::RankCorrelation;

$x = [ 8, 7, 6, 5, 4, 3, 2, 1 ];
$y = [ 2, 1, 5, 3, 4, 7, 8, 6 ];

$c = Statistics::RankCorrelation->new( $x, $y );

$n = $c->spearman;
$m = $c->csim;

説明

 本モジュールは2つの標本ベクトル間の順位相関係数を計算する。
 作業例は eg/ ディレクトリ及びモジュールテストファイルにある。
 下の関数セクションにも順位相関係数を挙げている。


メソッド

new

$c = Statistics::RankCorrelation->new( \@u, \@v );

 本メソッドは新たな Statistics::RankCorrelation オブジェクトをコンストラクトする。
 引数として2つの数値ベクトルを与えられれば(配列参照)、ベクトルの統計的な順位を計算してオブジェクトは初期化される。もし大きさが等しくなければ小さいほうのベクトルの不足部分は0で埋められる。

x_data, y_data

$x = $c->x_data;
$c->y_data( $y );

 配列参照としてコンストラクタに提供されたデータ標本を(オプションとして集合で)返す。

x_rank, y_rank

$rx = $c->x_rank;
$c->y_rank( $ry );

 配列参照として統計的に順位付けされたデータを(オプションとして集合で)返す。

spearman

$n = $c->spearman;

 スピアマンの順位相関係数はデータ値の順位に基づく関係性のノンパラメトリックな指標で、ピアソン積モーメント相関の特殊ケースである。
 計算式は以下の通り。

    6 * sum( ( Xi - Yi ) ^ 2 )
1 - --------------------------
        N * ( N ^ 2 - 1 )

 Where X 及び Y は2つの順位ベクトルで、i は 1 から標本数 N までの値をとるインデクスである。

csim

$n = $c->csim;

 輪郭類似性指標(contour similarity index)を返す。これは2ベクトル間の類似性を示す1次元の指標である。この指標は [-1..1] の範囲の値(両端を含む)を返し、元ベクトルの高低を示す値からなる2値データを用いた行列を用いて計算される。
 この指標は音楽における輪郭解析(musical contour analysis)で用いられる。


関数

rank

$ranks = rank( [ 1.0, 3.2, 2.1, 3.2, 3.2, 4.3 ] );
# [1, 4, 2, 4, 4, 6]

 与えられたデータに対する標準の順位の配列参照を返す。
 データは統計的順位を計算するに先立ちソートされていなければならないことに注意すること。この処理は初期化メソッドで自動的に行われる。
 データに同じ値がある場合は順位は平均化される。例としては以下のようになる。

sorted data:    [ 1.0, 2.1, 3.2, 3.2, 3.2, 4.3 ]
ranks:          [ 1,   2,   3,   4,   5,   6   ]
tied ranks:     3, 4, and 5
tied average:   (3 + 4 + 5) / 3 == 4
averaged ranks: [ 1,   2,   4,   4,   4,   6   ]

pad_vectors

( $u, $v ) = pad_vectors( [ 1, 2, 3, 4 ], [ 9, 8 ] );
# [1, 2, 3, 4], [9, 8, 0, 0]

 他方のベクトルと対照して不足する入力ベクトルの値に0を追加する。すなわち、短い方のベクトルの後ろを 0 で埋める(pad)処理を行う。

correlation_matrix

$matrix = correlation_matrix( $u );

 単一ベクトルに対する相関行列を返す。本関数はベクトル自身の値で高低を示す正方2次行列を構成する。


To Do

 他の順位相関係数の実装


参考資料


 csim メソッドについては

 spearman メソッドについては

謝辞

 Thomas Breslin <thomas@thep.lu.se> はソートされていない rank コードを提供してくれた。


著者

 Gene Boggs, <gene@cpan.org>


著作権

 Copyright 2003, Gene Boggs


ライセンス

 本ラライブラリはフリーソフトウェアであり、Perl 本体と同等の条件で修正/再配布してもよい。

Toolbox Logo
Updated : 2007/03/08