[python] 상관관계

코딩다시시작·2024년 10월 22일

빅데이터분석

목록 보기
9/19

상관관계 이론

상관관계란?

  • 두 변수 간의 선형적 관계를 타나태는 통계적 개념
  • 한 변수가 변할 때 다른 변수가 어떻게 변하는지 설명
  • 상관관계는 상관계수를 가지며 -1에서 1사이의 값을 가짐

상관관계의 해석


1. 양의 상관관계

  • 상관계수가 양수일 때, 두 변수는 같은 방향으로 움직임
  • 1에 가까울수록 다른 변수도 높은 폭으로 같은방향으로 움직임

2. 음의 상관관계

  • 상관계수가 음수일 때, 두 변수는 반대 방향으로 움직임
  • -1에 가까울수록 다른 변수도 높은 폭으로 반대방향으로 움직임

3. 상관관계 없음

  • 0에 가까운 경우, 두 변수는 선형적인 관계가 없음

상관계수 계산 방법

  • r: Pearson 상관계수
  • X, Y: 두 변수
  • bar{X}, bar{Y}: 각 변수의 평균

상관관계와 인과관계

상관관계는 인과관계를 의미하지 않음
즉 한 변수가 다른 변수의 변화를 직접적으로 일으키는 것을 증명하지 않음


상관관계 문제

상관관계 구하기
주어진 데이터에서 상관관계를 구하고, quality와의 상관관계가 가장 큰 값과, 가장 작은 값을 구한 다음 더하시오!
단, quality와 quality 상관관계 제외, 소수점 둘째 자리까지 반올림하여 계산

  • 데이터셋 : ../input/red-wine-quality-cortez-et-al-2009/winequality-red.csv
  • 오른쪽 상단 copy&edit 클릭 -> 예상문제 풀이 시작
  • 스크립트 방식 권장: File -> Editor Type -> Script

데이터 불러오기

import pandas as pd
import numpy as np

# 데이터 불러오기
df = pd.read_csv("../input/red-wine-quality-cortez-et-al-2009/winequality-red.csv")
print(df.head())

out:

  • quality가 df의 가장 마지막 열임을 확인

상관관계 구하기

#quality와 quality 상관관계를 제외한 quality와의 상관관계
df_corr = df.corr()
df_corr = df_corr[:-1]
print(df_corr['quality'])

out:

  • quality에 대한 각각 다른 컬럼의 상관관계를 구한다.
  • 이때, df.corr() 함수를 이용한다.
  • [:-1]을 통해 마지막 열을 제외(슬라이싱)한다.

상관관계의 절댓값

# 상관관계의 절댓값
abs_corr = abs(df_corr['quality'])
print(abs_corr)

out:

  • 상관관계에서 최댓값, 최솟값은 변수가 다른 변수를 움직이는 정도이기 때문에, 절댓값으로 구한다
  • 즉 1이나 -1에 가장 가까운 수와 0에 가장 가까운 수가 각각 최댓값 최솟값이 된다.
  • abs를 통해 절댓값으로 만든다

상관관계의 최댓값 최솟값

#상관관계의 최댓값 최솟값
max_corr = abs_corr.max()
min_corr = abs_corr.min()
print(max_corr)
print(min_corr)

out:

  • min(), max()를 통해 최소 최댓값을 구한다

덧셈

#덧셈 후 소수점 두자리까지 반올림 계산
ans = round(max_corr + min_corr,2)
print(ans)

out:

  • round(max_corr+ min_coor, 2)
  • round를 이용해 반올림을 하고 ,2를 통해 소수점 자릿수 변수를 넣는다.

출처:

profile
gpt로 다시 배우는 개발

0개의 댓글