본문 바로가기
자격증/[빅분기] 빅데이터분석기사

[작업형3] 회귀분석- 상관관계 (2)

by 바다의 공간 2024. 11. 12.

🌚 이번에는 상관관계 데이터를 연습해보려고 합니다.

상관관계는 말 그대로 그 둘사이의 관계 라고 생각하고있다.

상관관계

  • 두 변수 간의 선형적인 관계두 변수 간의 선형 관계의 강도와 방향 (-1 ≤ r ≤ 1)
  • 여기서는 상관계수가 중요한데 (r)로 표현을 하고 
r = 1: 강한 양의 선형관계
r = 0: 선형 관계 없음
r = -1: 강한 음의 선형관계

1이면 강한 양의 선형, 0은 없음, -1은 음의 선형관계를 뜻합니다.

 

 

🌚 데이터 준비

# 데이터
import pandas as pd
df = pd.DataFrame({
    '키': [150, 160, 170, 175, 165],
    '몸무게': [42, 52, 75, 67, 56]
})

 

상관계수에 대한 t검정

귀무가설: 두 변수 간에 상관관계가 없다.
대립가설: 두 변수 간에 상관관계가 있다.

  • stats.pearsonr(x, y) #피어슨
  • stats.spearmanr(x, y) # 스피어맨
  • stats.kendalltau(x, y) # 켄달타우

켄달타우는 R과 파이썬의 실행방법 (install등)과 결과값을 일치하기에 조금 복잡해서 출제될 가능성이 낮을것같다

그렇다고 안나온다고 확정난건 아니니 참고만하기에 좋을것같다.

 

🌚 피어슨 상관계수 구하기

df.corr()

df의 corr을하면 수치형변수에 대해서 상관계수값을 확인해줍니다.

키와 키, 몸무게 몸무게는 1로 아주강한 양의 상관관계를 확인할 수 있습니다. 같은변수니 당연하죠

 

만약 2개의 상관관계값만 확인하고싶으면

print(df['키'].corr(df['몸무게']))

이렇게하면 확인가능합니다. 

여기서 알아두어야할 것은 둘의 위치를 바꿔도 같은값이 나온다는 점 입니다~

 


그리고 나서 t검정을 할건데 t검정을해서 귀무,대립을 판별합니다.

 

# t검정
from scipy import stats
# 피어슨
print(stats.pearsonr(df['몸무게'], df['키']))

# 스피어맨
print(stats.spearmanr(df['몸무게'], df['키']))

'r'이 있는거 철자 꼭 확인하기!! 역시나 몸무게, 키 순서 바뀌어도 값은 같게 나옵니다.

pvalue값은 피어슨, 스피어만 모두 0.03정도가 나와서 대립가설 채택이 됩니다.