변수 간 상관관계 분석하기 : corr()

30 P
QUESTION 11 #327
두 변수 사이의 통계적 관계(양의 상관관계, 음의 상관관계 등)를 수치화하는 프로그램입니다. 빈칸을 채워보세요.
main.py
import pandas as pd

study_data = {
    "공부시간": [2, 4, 6, 8, 10],
    "시험점수": [65, 70, 85, 90, 98],
    "수면시간": [8, 7, 6, 5, 4]
}
df = pd.DataFrame(study_data)

# 모든 변수 간의 상관계수 계산 (-1 ~ 1 사이의 값)
correlation = df.()

print("--- 변수 간 상관계수 ---")
print(correlation)
실행 결과 예시
          공부시간      시험점수      수면시간
공부시간  1.000000  0.985611 -1.000000
시험점수  0.985611  1.000000 -0.985611
수면시간 -1.000000 -0.985611  1.000000
INTERACTIVE SHELL Shift + Enter 로 즉시 실행

corr()로 상관관계 분석하기

corr()는 데이터프레임의 모든 숫자 열 사이의 상관계수를 계산합니다.

상관계수란?

두 변수가 함께 변하는 정도를 -1에서 1 사이의 숫자로 나타낸 것입니다.

상관계수 의미 예시
+1에 가까움 강한 양의 상관 하나가 ↑ 다른 것도 ↑
0에 가까움 상관 없음 서로 무관
-1에 가까움 강한 음의 상관 하나가 ↑ 다른 것은 ↓

결과 해석

          공부시간    시험점수    수면시간
공부시간   1.000    0.986   -1.000
시험점수   0.986    1.000   -0.986
수면시간  -1.000   -0.986    1.000
관계 상관계수 해석
공부시간 ↔ 시험점수 +0.986 공부할수록 점수 올라감 (강한 양의 상관)
공부시간 ↔ 수면시간 -1.000 공부할수록 수면 줄어듦 (완벽한 음의 상관)
시험점수 ↔ 수면시간 -0.986 수면이 줄수록 점수 올라감 (강한 음의 상관)

대각선은 항상 1.0

자기 자신과의 상관계수는 항상 1.0입니다 (완벽한 양의 상관).

         공부시간  시험점수  수면시간
공부시간   [1.0]    ...     ...
시험점수    ...    [1.0]    ...
수면시간    ...     ...    [1.0]
          ↑ 대각선은 항상 1.0

상관계수 강도 기준

절대값 범위 강도
0.0 ~ 0.3 약한 상관
0.3 ~ 0.7 보통 상관
0.7 ~ 1.0 강한 상관

주의: 상관관계 ≠ 인과관계

아이스크림 판매량 ↑ → 익사 사고 ↑  (상관계수 높음!)

하지만 아이스크림이 익사를 일으키는 것이 아닙니다. 기온이라는 제3의 변수가 둘 다에 영향을 줄 뿐입니다.

💡 핵심: 상관관계는 "함께 변하는 경향"일 뿐, "원인과 결과"를 의미하지는 않습니다.