Scipy scipy.stats.pearsonr メソッド
-
scipy.stats.pearsonr()の構文: -
コード例:
scipy.stats.pearsonr()コアレーション係数を求める方法 -
コード例:
scipy.stats.pearsonr()メソッドを使用して、csv ファイル内の変数間の相関関係を求める
Python Scipy scipy.stats.pearsonr() メソッドは、2つの変数間の線形関係を表すピアソン相関係数を求めるために使用されます。また、非相関をテストするための p 値も提供します。
ピアソン相関係数の値は、-1 から+1 の範囲です。-1 に近い場合、変数間に強い負の線形関係があります。0 の場合、線形関係はなく、+1 の場合、変数間に強い関係があります。
正の関係は、ある変数の値が増加または増加すると、別の変数の値も増加することを示します。
scipy.stats.pearsonr() の構文:
scipy.stats.pearsonr(x, y)
パラメーター
x |
これは、最初の変数または属性の入力配列要素です。 |
y |
これは、2 番目の変数または属性の入力配列要素です。長さは x と等しくなければなりません。 |
戻り値
2つの値のタプルを返します。
r: ピアソン相関係数です。xとyの関係の程度を示します。p値: 確率有意値です。帰無仮説を受け入れるか拒否するかをチェックします。
帰無仮説は、検討中の変数間に関係がないことを意味します。
コード例:scipy.stats.pearsonr() コアレーション係数を求める方法
import scipy
from scipy import stats
arr1 = [3, 6, 9, 12]
arr2 = [12, 10, 11, 11]
r, p = scipy.stats.pearsonr(arr1, arr2)
print("The pearson correlation coefficient is:", r)
print("The p-value is:", p)
出力:
The pearson correlation coefficient is: -0.31622776601683794
The p-value is: 0.683772233983162
ここでは、等しい要素を持つ 2つの配列が考慮され、それらは引数として pearsonr 関数に渡されます。ここでは、最初の配列には線形に増加する値の要素があるのに対し、2 番目の配列では要素がランダムに取得されるため、負の相関係数が出力として表示されます。
p 値(0.683772233983162)は 0.05 より大きいため、帰無仮説は true です。
コード例:scipy.stats.pearsonr() メソッドを使用して、csv ファイル内の変数間の相関関係を求める
import numpy as np
import pandas as pd
import scipy
from scipy import stats
data = pd.read_csv("dataset.csv")
newdata = data[["price", "mileage"]].dropna()
r, p = scipy.stats.pearsonr(newdata["price"], newdata["mileage"])
print("The pearson correlation coefficient between price and mileage is:", r)
print("The p-value is:", p)
出力:
The pearson correlation coefficient between price and mileage is: -0.4008381863293672
The p-value is: 4.251481046096957e-97
ここでは、pandas ライブラリを使用してデータを pandas データフレームとしてロードします。dataset.csv ファイルが読み込まれます。このファイルには、名前、価格、走行距離、ブランド、製造年の列を持つ自動車データが含まれています。次に、価格とマイレージを除くすべての列をドロップダウンして、それらの関係の強さを確認しました。
出力値を分析すると、ピアソン相関係数が負であることがわかります。これは、価格と走行距離が比較的強い負の線形関係にあることを意味します。価格が安い車ほどマイレージが高くなり、価格が上がるとマイレージ値が下がり始めます。
p は非常に微細(約 0)であるため、テスト仮説は False であり、棄却する必要があります。