メインコンテンツへスキップ

スピアマンの相関:非線形な関係を定量化する方法

スピアマンの順位相関は、直線ではなくカーブ、横ばい、変化速度のシフトといった関係性を捉えます。Python、R、Excelでの計算・解釈・活用方法を学びましょう。
更新 2026年9月15日  · 10 分 読む

AIで探索

ChatGPTClaudePerplexity

すべての関係が直線に従うわけではありません。

たとえば、マーケティング予算が増えるにつれて顧客コンバージョンは改善する傾向にあるものの、その割合は一定ではないかもしれません。あるいは、所得が上がると幸福度も高まることが多い一方で、どこかで頭打ちになることもあります。パターンは明らかでも、線形ではありません。では、それをどのように定量化すればよいでしょうか?

相関は、2つの変数がどのように共に動くかを表すために用いられます。よく目にする相関としては、ピアソンの相関係数があり、線形関係に対して非常によく機能します。しかし、現実の関係は必ずしも線形ではありません。カーブを描いたり、横ばいになったり、直線にはならなくても一貫した傾向に従うことがあります。場合によっては、正確な値そのものよりも、その並び順が重要になることもあります。ここで役立つのがスピアマンの順位相関係数です。

スピアマンの相関は生の値ではなく順位を用いて、2つの変数が一貫して共に増減するかどうかを測定します。これにより、単調な関係の評価に適しています。また、外れ値や不均一な間隔といったデータの癖に対しても比較的頑健です。

スピアマンの順位相関とは?

スピアマンの順位相関係数は、2つの変数間の関係の強さと方向を測る指標で、値そのものではなく値の順位に基づいています。

これがどのように機能するかを見るために、ストリーミング・プラットフォーム上の楽曲を分析していると想像してみてください。曲の再生回数と「トップ100」チャートでの順位を比較するかもしれません。関係は完全に線形とは限らず、再生数が2倍になっても順位が必ず2倍良くなるわけではありません。しかし一般に、再生数が多い曲ほど上位にランクインする傾向があります。

スピアマンの相関は、正確な値ではなくデータの順序に着目することで、このようなパターンを捉えます。

そのため、関係が線形ではないが明確な傾向に従っている場合、データがもともと順位として表現される場合、外れ値が線形の測定を歪める可能性がある場合に特に有用です。

ピアソンの相関が生の値を直接扱うのに対し、スピアマンの相関はまずデータを順位に変換し、その順位同士がどの程度一致しているかを測定します。

技術的には、スピアマンの相関は単調関係を測ります。単調関係とは、一方の変数が増えるともう一方も増える、あるいは一方が減るともう一方も減るといったように、方向転換をせずに動く関係を指します。

単調関係と線形関係の違い

では、線形関係と単調関係の違いは具体的に何でしょうか?

線形関係は、データが直線的なパターンに従うものです。データをプロットすると、おおむね一直線上に点が並びます。

一方、単調関係はもっと緩やかな概念です。関係が一方向に動くことを意味します。つまり、両変数は一緒に動きますが、必ずしも直線とは限りません。方向を反転しない限り、パターンはカーブしたり、横ばいになったり、変化率が変わったりしても構いません。

グラフには4つの異なる単調関係の例が示されています。1つ目は線形、2つ目は対数、3つ目は指数、4つ目は飽和型です。5つ目の例は非単調で、弓形をしています。

上のグラフでは、4つの単調関係の例が見られますが、線形なのは最初のものだけです。最後のグラフは、パターンが方向転換し、正の関係から始まって最終的に負の関係になるため、単調ではありません。

関係の種類

説明

見た目の特徴

線形

変数が一定の割合で増減する

直線

単調

(非線形)

変数は一方向に動くが、変化率は変わる

曲線、横ばい、または加速する傾向

非単調

関係の方向が変わる(増加の後に減少、またはその逆)

U字、逆U字、または波状のパターン

スピアマンの順位相関を段階的に求める方法

大まかには、スピアマンの順位相関係数はデータを順位に変換し、それらの順位が変数間でどの程度似ているかを測ることで動作します。

小さな例で確認してみましょう。ここでは、楽器の練習時間とコンクールでの成績順位の関係を見ているとします。

生徒

練習時間(X)

成績スコア(Y)

Aladdin

2

50

Bonnie

4

65

Clyde

6

70

Daniel

8

80

Eloise

10

78

Franny

12

85

Gemma

14

90

Harris

16

88

まず、このデータをプロットしてみます。

練習時間と成績スコアの散布図。正の非線形な関係が見られる。

視覚的には、練習時間が増えると成績スコアが高くなるように見えますが、パターンは完全な線形ではありません。練習しすぎると収穫逓減があるようにも見えます。スピアマンの順位相関を適用して、この関係を定量化してみましょう。

ステップ1:データを順位に変換する

まず、それぞれの値に順位を割り当てます。各変数内で、最小から最大へと順位を付けます。変数内で最も小さい値には1位、次に小さい値には2位、といった具合です。

生徒

練習時間(X)

順位(X)

成績スコア(Y)

順位(Y)

Aladdin

2

1

50

1

Bonnie

4

2

65

2

Clyde

6

3

70

3

Daniel

8

4

80

5

Eloise

10

5

78

4

Franny

12

6

85

6

Gemma

14

7

90

8

Harris

16

8

88

7

Yの順位はXとはやや異なる順序になっていることに注目してください。スピアマンの相関は、このずれを測定します。

ステップ2:順位の差を計算する

次に、各観測について順位の差を計算します。

その差を二乗します。

生徒

順位(X)

順位(Y)

di

(di)2

A

1

1

0

0

B

2

2

0

0

C

3

3

0

0

D

4

5

-1

1

E

5

4

1

1

F

6

6

0

0

G

7

8

-1

1

H

8

7

1

1

次に、表の最後の列にある二乗和を合計します。

ステップ3:式に当てはめる

最後に、スピアマンの相関係数の式に値を代入します。

先ほどの計算から(di)2=4であることがわかっています。分母のnは標本サイズで、ここでは8です。代入すると次のようになります。

結果の解釈

最終結果は ρ ≈ 0.95 です。この値が+1に近いことから、練習時間と成績の間に強い正の関係があることを示しています。関係は完全な線形ではないものの、順位は非常によく一致しています。つまり、xの値が変わると、それに合わせてyの値も一貫して変化する傾向があるということです。

実務では、これを手計算することはほとんどありません。ほとんどのソフトウェアが順位付けやタイの処理、計算を自動で行ってくれるためです。一般に標本サイズはもっと大きいですから、これは好都合です。

ソフトウェアでスピアマンの相関を計算する

最近の統計ソフトウェアの多くは、この計算を数秒で処理できます。代表的なソフトウェアを簡単に見ていきましょう。

Python

Pythonでは、ワークフローに応じてscipyまたはpandasを使うのが一般的です。配列やリストを扱う場合は、scipyでスピアマンの相関を直接計算できます。

py
corr, p_value = spearmanr(x, y)
print(corr, p_value)

これは相関係数とp値の両方を返し、統計的検定を行う場合に便利です。

表形式データを扱うなら、pandasの方が便利なことが多いでしょう。

corr_matrix = df.corr(method="spearman")
print(corr_matrix)

これは相関行列を計算し、複数の変数を一度に比較しやすくします。

特定の2列だけの相関を知りたい場合は、簡単に指定できます。

corr=df["column_1"].corr(df["column_2"],method="spearman")

R

Rでは、スピアマンの相関はコアの統計関数に組み込まれています。

簡単に計算するには、cor()を用い、Spearman法を指定します。

cor(x, y, method = "spearman")

p値や追加の統計情報も必要な場合は、cor.test()を使うと簡単に得られます。

cor.test(x,y,method="spearman")

Excel

Excelにはスピアマン専用の関数はありませんが、データに順位を付け、その順位の相関を取るという2つの手順で簡単に計算できます。

小さな例を示します。

A(X)

B(Y)

C(順位 X)

D(順位 Y)

2

50

1

1

4

65

2

2

6

70

3

3

8

80

5

5

10

78

4

4

順位(列CとD)は、RANK.AVG関数で作成できます。例えば次のようにします。

=RANK.AVG(A2, $A$2:$A$6,1)
=RANK.AVG(B2, $B$2:$B$6,1)

その後、スピアマンの相関を計算します。

=CORREL(C2:C6, D2:D6)

いずれのツールでも、基本的な流れは同じです。値を順位に変換し、その順位の相関を計算します。

スピアマンの順位相関の解釈方法

ピアソンの相関を使ったことがあれば、スピアマンの順位相関の解釈にも直感が働くはずです。基本的な解釈はほぼ同じです。

スピアマンの順位相関は -1 から 1 の値を返し、単調関係の方向と強さの両方を示します。

+1 は完全な増加の単調関係を示します。一方が増えると、もう一方も必ず増えます。これは各ペアの順位が完全に一致する場合です。

-1 は完全な減少の単調関係を示します。一方が増えると、もう一方は必ず減ります。これは各ペアの順位が完全に逆転している場合です。

0 は単調関係がないことを示します。順位に一貫した傾向がない場合に起こります。

3つのグラフが、それぞれ完全に正の単調関係、非単調関係、完全に負の単調関係を示しています。

ピアソンの相関係数との重要な違いは、スピアマンの相関は実際の値がどれだけ直線に沿うかではなく、データの順序がどれだけ一致しているかを反映する点です。つまり、スピアマンの相関が強いということは、順位に明確な傾向があることを示し、必ずしも関係が線形であったり等間隔であったりすることを意味しません。

このため、相関の数値に加えて、基礎的なパターンを理解するための簡単な可視化を併用することを常におすすめします。

順位に同値(タイ)がある場合の扱い

複数の観測値が同じ値になるデータセットに出会うと、ここまでの話は一見うまくいかないように思えるかもしれません。どうすればよいでしょうか。これらはタイ(同順位)と呼ばれ、順位を割り当てる際に少し調整が必要です。

たとえば、10、20、20、30という値を考えます。20という2つの値は通常であれば2位と3位を占めます。しかし同じ値であるため、異なる順位を付けるのではなく、その順位の平均をそれぞれに割り当てます。つまり両方の20に2.5位を与えます。これにより、同値が公平に扱われ、全体の順位付けの一貫性が保たれます。

スピアマンの順位相関係数は完全に順位に基づいているため、タイの取り扱いを誤ると相関が歪められてしまいます。

スピアマンの相関の限界

スピアマンの順位相関係数は柔軟で広く使われる指標ですが、限界もあります。

最も重要なのは、単調関係しか捉えられないことです。関係が方向を変える場合(U字型や正弦波のようなパターン)には、明確なパターンがあっても相関は0に近くなることがあります。こうした場合は、多項式回帰などの非線形モデルを用いる方が適しています。

また、スピアマンの相関は順位に基づくため、実際の値の距離を無視します。これは外れ値への耐性を高めますが、その一方で情報の一部が失われます。このため、関係の大きさ(どの程度変化するか)の解釈は、ピアソンの相関に比べて難しくなります。スピアマンは変数が順序として一緒に動くかどうかは示しますが、一方が他方に対してどれだけ変わるかは示しません。

最後に、同値が多い場合は順位付けの精度が下がります。その結果、相関が弱く出てしまい、関係の全容を十分に表せない可能性があります。

スピアマンとピアソン:使い分けの目安

最も一般的に使われる相関はおそらくピアソンの相関係数でしょう。見た目にはスピアマンの相関係数とよく似た統計量に思えます。名前もほとんど同じです。しかし、答えている問いは少し異なります。

ピアソンは「これらの変数は直線的な関係に従っているか?」と問い、スピアマンは「これらの変数は同じ順序で動いているか?」と問います。

データがおおむね直線的なパターンに従い、値同士の距離が意味を持つ場合は、ピアソンの相関が通常は適切です。一方、関係がカーブしたり横ばいになったりする場合は、スピアマンの方が適していることが多いです。

スピアマンは寛容でもあります。生の値ではなく順位で扱うため、外れ値に敏感ではなく、データに関する仮定にもそれほど厳密に依存しません。その代わりに、値の大きさの違いを捉えるのは得意ではありません。

実務上の目安としては、関係が線形ならピアソン、単調だが線形でないならスピアマンを用いるのがよいでしょう。そしていつものように、判断の前にデータをプロットしてください。

まとめ

スピアマンの相関係数は、ピアソンの相関では十分に扱えないデータセットにおける単調なパターンを捉えるのに適した優れたツールです。順位を用いることで、外れ値に対して頑健で、非線形データにも対応しやすくなります。

データセットに最適な相関の選び方については、相関を理解する:データの関係性を測るをご覧ください。また、 共分散を理解する:入門ガイドにも興味があるかもしれません。

FAQ

スピアマンの順位相関係数とは?

スピアマンの順位相関係数はノンパラメトリックな統計量で、変数間の単調な関係、さらには非線形な関係も定量化します。

単調関係とは何ですか?

単調関係とは、変数が同じ方向に一緒に動く関係のことです。線形に関連している必要はありません。

スピアマンの相関で同値(タイ)はどのように扱いますか?

2つ以上の値が同じ順位になる場合は、本来占めるはずの順位の平均を取り、その平均をすべての同値に割り当てます。

ピアソンの相関とスピアマンの相関の違いは何ですか?

ピアソンの相関は、外れ値がなく線形な関係に特に適しています。スピアマンは、外れ値があったり非線形であったりする、より扱いにくいデータに向いています。

スピアマンの相関は正規分布を仮定しますか?

いいえ。スピアマンの相関はノンパラメトリックな統計量であり、データが正規分布であることを仮定しません。

トピック
データ分析