-
파이썬 통계분석_Chapter03. 2차원 데이터 정리카테고리 없음 2024. 1. 11. 16:34
2장에서는 영어 시험 점수를 사용해 학생 1명에게 점수 하나가 대응되는 1차원 데이터를 정리하는 방법을 알아보았다.
-> 평균과 분산이라는 지표, 히스토그램과 상자그림 그래프
3장에서는 영어 시험 점수와 수학 시험 점수를 사용해, 학생 1명에게 두 과목의 점수가 대응되는 2차원 데이터 정리 방법을 알아본다.
2차원 데이터로 정리하면 '수학 점수가 높은 학생이 영어 점수도 높은가'와 같은 데이터의 상관성 또한 파악할 수 있다.
- 라이브러리, 데이터 세팅
- 처음 10명에 해당하는 데이터 준비, 학생에게 각각 A,B,...라는 이름 부여.
영어 점수가 높은 학생이 수학 점수도 높은 경향이 있다면, 영어 점수와 수학 점수는 양의 상관관계에 있다고 한다.
반대로 영어 점수가 높은 학생일수록 수학 점수가 낮은 경향이 있다면, 영어 점수와 수학 점수는 음의 상관관계에 있다고 한다.
영어 점수와 수학 점수가 서로 직접적으로 영향을 미치지 않는다면, 영어 점수와 수학 점수는 무상관이라고 한다.
01. 공분산 : 데이터의 상관관계 표현
공분산이 분산과 다른 점은, 가로축과 세로축의 데이터가 다르기 때문에 편차들로 만든 도형이 직사각형이 될 뿐만 아니라, 음의 면적도 얻을 수 있다는 점이다.
'부호를 붙인 면적'이라는 관점에서, 면적이 양의 값이 되는 것은 영어 점수와 수학 점수가 모두 평균 점수보다 높거나 모두 평균 점수보다 낮은 경우이기에, 점수의 상관관계를 잘 나타내준다.
-> 부호를 붙인 면적의 평균은 상관의 지표가 된다.
공분산이 양의 값이면 면적이 양의 값이 되는 데이터가 많다는 뜻이므로 양의 상관관계에 있고, 반대로 공분산이 음의 값이면 면적이 음의 값이 되는 데이터가 많다는 뜻으로 음의 상관관계에 있다고 할 수 있다.
공분산이 0에 가까우면 무상관을 나타낸다.
- DataFrame으로 공분산 계산
분석: 영어 점수와 수학 점수는 양의 상관관계에 있다.
- Numpy의 경우, 공분산은 cov 함수로 구할 수 있다.
** 반환값은 공분산값이 아닌 공분산 행렬(covariance matrix) 또는 분산공분산 행렬(variance-covariance matrix)이라고 부르는 행렬이다.
02. 상관계수(correlation coefficient)
이번과 같은 시험 점수들 간에 공분산은 (점수X점수)라는 단위를 사용한다.
학생의 키와 시험 점수의 상관관계를 살펴본다면, 공분산은 (cmX점수)라는 단위가 된다.
-> 이런 단위는 직감적으로 파악하기 어렵다.
-> 단위에 의존하지 않는 상관을 나타내는 지표가 필요하다.
공분산은 각 데이터의 단위를 곱한 것으므로, 공분산을 각 데이터의 표준편차로 나누어 단위에 의존하지 않는 지표를 정의할 수 있다.
이와 같이 정의 된 지표를 상관계수(correlation coefficient)라고 한다.
상관계수는 반드시 -1과 1사이의 값을 취하고, 데이터가 양의 상관관계에 놓여 있을 수록 1에 가까워지고, 음의 상관관계에 있을수록 -1에 가까워진다. (무상관이면 0.)
또한 상관계수가 -1이나 1일때에는 데이터가 완전히 직선상에 놓인다.
- 영어 점수와 수학 점수의 상관계수
'상관계수가 어느 정도이면 상관이 있다.'라는 명확한 기준은 없지만, 상관계수가 0.8인 데이터는 강한 상관을 가지고 있다.
-> 영어 점수와 수학 점수에는 강한 양의 상관이 있음을 알 수 있다.
- Numpy의 경우, corrcoef 함수로 계산, 반환값은 공분산의 경우와 마찬가지로 상관행렬(correlation matrix)라고 부르는 행렬.
- DataFrame의 경우, corr 메서드와 동일한 결과.
2차원 데이터를 그릴 때는 산점도가 매우 편리하다.
- Matplotlib에서 scatter메서드를 사용해 그린 산점도, scatter의 첫 번째 인수가 x축, 두 번째 인수가 y축의 데이터.
분석: 영어 점수가 높은 사람일수록 수학 점수도 높은 경향이 있다.
회귀직선(regression line)은 두 데이터 사이의 관계를 더욱 잘 나타내는 직선이다.
- 회귀직선과 함께 그린 산점도
히트맵(heat map)은 히스토그램의 2차원 버전으로 색을 이용해 표현할 수 있는 그래프이다.
- hist2d 메서드로 작성한 히트맵, 영어 점수가 35점부터 80점가지 5점 간격, 수학 점수가 55점부터 95점까지 5점 간격이 되도록 bins와 range를 지정.
색이 진한 영역일수록 많은 학생이 분포되어 있음을 나타낸다.
데이터의 다양한 특징을 평균이나 분산, 상관계수라는 수치 지표를 통해 분석하는 방법을 알아보았다.
수치로 데이터를 정리하면 많은 정보를 잃어버릴 수 있으므로 주의해야한다.
동일해 보이는 지표를 가진 데이터라도 그림으로 나타내면 종종 전혀 다른 데이터가 될 수 있다.
이처럼 동일한 지표를 가지고 있지만 전혀 다른 데이터가 되는 예시로, 앤스컴의 예가 있다.
- 4가지 데이터가 들어있고, 각각 11개의 2차원 데이터이다.
- 각 데이터의 평균, 분산, 상관계수, 회귀직선을 계산하여 DataFrame으로 정리
모든 데이터가 평균부터 회귀직선 식까지 전부 일치한다.
결국 지표상으로 보면 이 네가지 데이터는 모두 동일하다.
- 네가지 데이터의 산점도
이들 데이터는 전혀 다른 분포를 띄고 있다.
평균이나 분산이라는 지표가 많은 의미를 갖고 있지만, 이러한 지표들을 과신해선 안된다.
앤스컴의 예는 데이터를 분석할 때는 가능하면 그림을 그려야 한다는 것을 알려주고 있다.
누구나 파이썬 통계분석[타니아이 히로키] 참조