4장: 두 변수 자료의 요약
Reporting Date: July. 4, 2024
조사 대상의 각 개체로부터 둘 또는 그 이상의 변수들을 동시에 관측하는 경우가 더 많다.
두 변수에 관한 관측값을 도표로 요약하고 해석하는 방법을 다루고자 한다.
1 . 자 료 의 입 력
## 교재 출처 최하단에 표시 ##
# 예제5: 통계학과 신입생 51명의 키와 몸무게를 기록한 것이다.
# 키와 몸무게의 표본상관계수를 구하고, 산점도를 그려라. (p.108)
import numpy as np
# 키와 몸무게 자료의 입력
height = np.array([181,161,170,160,158,168,162,179,183,178,171,177,163,
158,160,160,158,173,160,163,167,165,163,173,178,170,
167,177,175,169,152,158,160,160,159,180,169,162,178,
173,173,171,171,170,160,167,168,166,164,173,180])
weight = np.array([78,49,52,53,50,57,53,54,71,73,55,73,51,53,65,48,59,
64,48,53,78,45,56,70,68,59,55,64,59,55,38,45,50,46,
50,63,71,52,74,52,61,65,68,57,47,48,58,59,55,74,74])
2 . 표 본 상 관 계 수 ( Sample Correlation Coefficient )
산점도에서 점들이 얼마나 "직선에 가까운가" 의 정도를 나타내는 데 쓰이는 측도.
두 변수 ( x, y ) 에 대하여 관측값 n개의 짝 ( x₁, y₁ ), ( x₂, y₂ ), …, (xn, yn) 이 주어진 때,
상관계수는 다음과 같이 계산된다:
2 - 1 . 공 분 산 ( C o v a r i a n c e )
분산 (Variance) 은 "한 변수의 데이터" 가 평균 주위에서 얼마나 흩어져 있는지를 나타낸다.
공분산은 "두 변수" 가 함께 변하는 정도를 나타낸다.
- 공분산이 "양수" 이면, 두 변수는 "같은 방향" 으로 변한다.
- 공분산이 "음수" 이면, 두 변수는 "반대 방향" 으로 변한다.
- 공분산이 "0" 에 가까우면, 두 변수 간에 "선형 관계가 거의 없음" 을 의미한다.
위 값들은 다음과 같은 수식을 통해 계산된다:
x, y 의 표본 평균을 의미한다: 변수
표본상관계수는 두 변수의 직선관계의 정도(강도, 방향)를 나타내며,
다음과 같은 특징이 있다:
절댓값이 클수록 (1 또는 −1에 가까울수록) 점들은 기울기가 양수(또는 음수)인 직선에 가깝게 몰려 있다.
0보다 값이 클 경우, 점들이 좌하에서 우상방향으로 띠를 형성한다.
이때, 한 변수의 값이 크면 다른 변수의 값도 큰 경향을 가진다.
- 계수가 "0" 에 가까울수록 두 변수 간의 직선의 관계가 "매우 약함" 을 의미한다.
- 표본상관계수의 단위는 없다.
- 각 변수의 편차들의 곱을 사용해 계산할 때, 이 곱은 원래 변수들의 단위를 곱한 단위이지만,
- 분모에 각 변수의 분산을 곱한 값의 제곱근이 들어가기 때문에 단위가 사라지게 된다.
- 위 연산은 단위를 제곱근 단위로 바꾸는 역할을 하며, 이로 인해 단위가 없는 숫자가 된다.
변수들의 단위에 영향을 받지 않아, 서로 다른 단위를 가진 변수들 간에도 관계를 비교할 수 있다.
# 키와 몸무게의 표본상관계수
np.corrcoef(height, weight)[0][1]
## 출력된 값 > 0.7362765055636866 ##
## 해석: 표본상관계수 𝑟이 약 0.74로 나왔다는 것은
## 두 변수 사이에 강한 '양의 선형 관계'가 있음을 의미한다.
아래에서 설명할 산점도를 포함한 대부분의 그림 요약 방법은 "주관적" 일 수 있다.
반면, 표본상관계수는 "객관적" 인 수치 자료로, 이러한 문제를 "보완" 해준다.
단, 직선이 아닌 다른 관계(곡선 등)가 있을 수 있으며,
이를 표본상관계수가 제대로 나타내지 못할 수 있다는 점을 유념해야 한다.
3 . 산 점 도 ( S c a t t e r P l o t )
변수 x 를 "수평축" 에 놓고, 변수 y 를 "수직축" 에 놓은 후에
각 관측값의 찍을 좌표 위에 표시함 으로써 얻게 되는 그림.
이를 통해, "두 변수 간의 관계" 를 시각적으로 대략 파악할 수 있다.
import matplotlib.pyplot as plt
# 산점도 작성
plt.figure(figsize=(8, 6)) # 그래프의 크기 (가로 8, 세로 6)
plt.scatter(height, weight, color='slateblue') # 산점도 색상 설정
plt.xlabel('height (cm)') # x축 레이블
plt.ylabel('weight (kg)') # y축 레이블
plt.title('height(cm) and weight(kg)') # 그래프의 제목
plt.grid(True) # 그리드 추가 (경계선)
plt.show()
Symbols (wumbo.net)
참고용 블로그: 작은 숫자 특수문자 첨자 및 분수숫자 모음
참고용 블로그: 색상표 색상코드표
교제: 통계학: 파이썬을 이용한 분석