スピアマン相関(spearman)相関分析記事詳細解説+pythonサンプルコード


序文

相関分析は、多くのアルゴリズムとモデリングの基本的な知識の 1 つであり、非常に古典的です。相関分析を使用して、多くの機能相関と関連する傾向を計算して表現できます。その中で、3 つの一般的な相関係数があります: 人物相関係数、スピアマン相関係数、およびケンドールのタウブ ランク相関係数です。それぞれに独自の使用方法と使用シナリオがあります。もちろん、上記の 3 つの相関係数の計算アルゴリズムと原理 + コードはすべて私のコラムに書きます。現在、数理モデリングのコラムでは、従来の機械学習の予測アルゴリズム、次元アルゴリズム、時系列予測アルゴリズム、重みアルゴリズムについて書いていますので、興味のある学生はぜひ行ってみてください。

ピアソン相関分析の詳しい解説+pythonのサンプルコード


1. 定義

多くの場合、ギリシャ文字の ρ で表されます。これは、2 つの変数の依存関係のノンパラメトリックな尺度です。単調方程式を使用して、2 つの統計変数の相関関係を評価します。データに繰り返し値がなく、2 つの変数が完全に単調に相関している場合、Spearman 相関係数は +1 または -1 です。スピアマン相関係数は、ランク変数間のピアソン相関係数として定義されました。n 個の生データがランク データに変換されるサンプル サイズnのサンプルの場合、相関係数 ρ は次のようになります。

 実際のアプリケーションまたは特定の問題では、変数間の接続は無関係であり、観測された2つの変数の対応する要素を差し引いて差を得るとd、上記の式は次のように変換することもできます。

d_iの学年差は どこですかX_{i}Y_{i}

d_iは次のように計算されます。

2.スピアマン関連の使用シーン

スピアマン相関係数の適用条件はピアソン相関係数よりも広く、2変数の観測値がペアの評価データ、または連続変数の観測データを変換した成績データであれば、 2 つの変数に関係なく、全体的な分布形状とサンプル サイズのサイズはすべて、スピアマンの順位相関係数で調べることができます。データが単調な関係(線形関数、指数関数、対数関数など)を満たす限り使用できます。

スピアマンの相関係数は、ランキングに基づいて計算されるため、外れ値の影響を受けにくく、実際の値の差は計算結果に直接影響しません。

3. スピアマン相関係数の計算

前回の記事で使用した関数と同様に、pandas 関数の corr を使用できます。

DataFrame.corr(method='pearson', 
               min_periods=1,
               numeric_only=_NoDefault.no_default)

 パラメータの説明:

method: {'pearson', 'kendall', 'spearman'} または callable。相関の方法。

  • pearson : 標準相関係数、ピアソン係数

  • kendall : Kendall タウ相関係数、Kendall 係数

  • spearman : スピアマン順位相関、スピアマン係数

min_periods : int、オプション。列の各ペアに必要なサンプルの最小数。現在、Pearson と Spearman の相関関係でのみ使用できます。

numeric_only : bool、デフォルトは True。浮動小数点、整数、またはブール データのみが含まれます。

実装は簡単です:

rho =df_test.corr(method='spearman')
rho

ヒートマップ:

plt.rcParams['font.family'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
sns.heatmap(rho, annot=True)
plt.title('Heat Map', fontsize=18)

 

または、scipy の state 関数を使用しても、効果は同じです。

import numpy as np
from scipy import stats
 
stats.spearmanr(data1,data2)

 4. スピアマンの相関係数の仮説検定

小さいサンプルと大きいサンプルの 2 つのケースに分けられる

小さいサンプル (n ≤ 30) の場合は、臨界値テーブルを直接確認します
H0: rs = 0; H1: rs ≠ 0
得られたスピアマン相関係数 r を使用して、対応する臨界値と比較します。

 大きなサンプルの場合、統計

 H0: rs = 0; H1: rs ≠ 0、テスト値 z* を計算し、対応する p 値を見つけて 0.05 と比較します。


迷子にならないように注意してください。間違いがある場合は、アドバイスのためにメッセージを残してください。どうもありがとうございました

この問題は以上です。ご不明な点がございましたら、お気軽にメッセージを残してください。また次回お会いしましょう

 参照する

数学的モデリング - 相関係数 (4) - スピアマン相関係数 (スピアマン)

 

おすすめ

転載: blog.csdn.net/master_hunter/article/details/128609473
おすすめ