Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 상관 관계 탐색

<시간/>

상관관계는 두 변수 간의 관계를 측정하는 통계적 용어입니다. 관계가 문자열이면 한 변수의 변경이 예측 가능한 패턴으로 다른 변수의 변경을 반영한다는 의미이므로 변수가 상관 관계가 있다고 합니다. 또한 첫 번째 변수의 변동은 두 번째 변수의 양수 또는 음수 변동을 유발할 수 있습니다. 따라서 양의 상관관계 또는 음의 상관관계가 있다고 합니다. 이상적으로 상관 계수의 값은 -1에서 +1까지 다양합니다.

  • 값이 +1이거나 가까우면 변수가 양의 상관 관계가 있다고 말합니다. 그리고 동시에 같은 방향으로 변합니다.
  • 값이 -1이거나 이에 가까우면 변수가 음의 상관 관계가 있다고 말합니다. 그리고 동시에 반대 방향으로 변합니다.
  • 값이 0이거나 0에 가까우면 변수가 상관관계가 없다고 합니다.

상관 계수를 측정하는 방법에는 여러 가지가 있습니다. numpy 또는 scipy.stats에서 함수로 사용할 수 있습니다. 아래에서 사용 방법을 살펴보겠습니다.

Spearman의 상관 관계 사용

Spearman의 상관 관계는 선형적으로 관련된 변수 간의 관계 정도를 측정하는 것입니다. 결과를 생성하기 위해 scipy.stats 패키지에서 사용하는 공식을 기반으로 합니다. 상관 관계를 찾는 데 가장 널리 사용되는 공식입니다.

아래 예에서는 numpy.randon() 함수를 사용하여 값이 생성된 두 개의 변수를 사용합니다. 그런 다음 최종 결과를 얻기 위해 speakmanr()이 적용됩니다.

from numpy.random import randn
from numpy.random import seed
from scipy.stats import spearmanr
seed(1)
data_input1 = 20 * randn(1000) + 100
data_input2 = data_input1 + (10 * randn(1000) + 50)
correlation = spearmanr(data_input1, data_input2)
   print(correlation)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

SpearmanrResult(correlation=0.8724050484050484, pvalue=1.58425746359e-312)

Pearson의 상관 관계 사용

Pearson의 상관 관계는 선형으로 관련된 변수 간의 관계 정도를 측정하는 또 다른 방법입니다. 결과를 생성하기 위해 scipy.stats 패키지에서 사용하는 공식을 기반으로 합니다.

아래 예에서는 numpy.randon() 함수를 사용하여 값이 생성된 두 개의 변수를 사용합니다. 그런 다음 pearsonr()을 적용하여 최종 결과를 얻습니다.

from numpy.random import randn
from numpy.random import seed
from scipy.stats import pearsonr
seed(1)
data1 = 20 * randn(1000) + 100
data2 = data1 + (10 * randn(1000) + 50)
correlation, _ = pearsonr(data1, data2)
print('Pearsons correlation: %.3f' % correlation)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

Pearsons correlation: 0.888