240719_통계 공부

J Lee·2024년 7월 19일
1

이진 데이터와 범주 데이터

  1. 이진변수나 변수가 몇 개 안 되는 범주형 변수를 분석하는 것은 그렇게 어렵지 않다. 중요한 범주의 비율이 어느 정도 되는지 알아보면 되기 때문.

  2. 막대도표(보통 '바 차트'라고 많이들 부른다)는 가장 흔한 시각화 방법으로, x축에 각 범주들을 놓고 y축에 이에 대응하는 횟수나 비율을 표시한다. 아래는 코드 예시. (데이터 불러오기까지의 과정은 생략)

  3. 바 차트는 히스토그램과 매우 유사하긴 하지만, 히스토그램은 x축에 수치적으로 나타낼 수 있는 하나의 변수의 값이 오는 반면 바 차트의 x축은 각 요인변수factored variables의 서로 다른 범주들을 나타낸다. 히스토그램의 막대들이 붙어 있고 중간에 틈이 있으면 그 부분에 해당하는 값들이 존재하지 않는다는 것을 의미하는 것에 반해, 바 차트에서 각 막대들은 서로 떨어져 있다.

  4. 바 차트 대신 파이 차트를 사용하기도 하지만, 통계학자나 데이터 시각화 전문가들은 파이 차트가 시각적으로 효과적이지 않다는 이유로 잘 사용하지 않는다고 한다. 이건 아직 내가 감당할 수 있는 이야기는 아니어서 그런갑다 하고 넘기기로.

    • 다만 아래 이미지를 보면 왜 이런 이야기가 나왔는지 대충 짐작은 된다.
      파이차트"만" 보고 파란색이 연두색보다 큰 경우가 정확히 어디인지 짚을 수 있을지?

최빈값

  1. 최빈값이란 데이터에서 가장 자주 등장하는 값, 혹은 값들을 말한다. 범주형 데이터를 분석하는 데 간단히 사용되지만, 수치 데이터에는 잘 사용되지 않는다.

기댓값

  1. 기댓값이란 확률변수가 가질 수 있는 각 값에 그 값이 나타날 확률을 가중치로 곱하여 모두 더한 값으로, 말하자면 가중치로 확률을 쓰는 가중평균이다. 예를 들어 동전 하나를 던져서 앞면이 나오면 1만원을 얻고 뒷면이 나오면 5천원을 잃는 게임이 있다고 했을 때, 이 게임에 참여함으로써 얻을 수 있는 수익의 기댓값은 (1/2×10,000) + (1/2×-5,000) = 2,500이다.

확률

  1. 어떤 사건이 발생할 확률이란, 상황이 수없이 반복될 경우 사건이 발생할 비율을 의미한다. 여기서의 핵심은 '수없이 반복될 경우'.

참고 : 오해를 일으킬 수 있는 그래프

상관관계

  1. 모델링 프로젝트에서 EDA라고 하면 예측값들 간의, 혹은 예측값과 목푯값의 상관관계를 조사하는 것을 빼놓을 수 없다. 일반적으로 상관관계의 측정량으로는 상관계수(a.k.a 피어슨 상관계수)라는 표준화된 방식이 많이 쓰인다. 상관계수는 변수 1과 2의 각각의 평균으로부터 편차들을 서로 곱한 값들의 평균을 각 변수의 표준편차의 곱으로 나눠서 구할 수 있다.

  2. 다만 변수들이 선형적인 관계를 갖지 않을 경우에는 상관관계가 더 이상 유용한 측정 지표가 아니다.

  3. 상관관계를 나타내는 상관행렬을 이용해 여러 가지 변수들 사이의 관계를 시각화하는 데 사용할 수 있다. 상관행렬은 행렬의 대각원소가 모두 1이라는 것(자기 자신과 상관계수는 1), 그리고 대각원소의 위아래로 대칭이라는 특징을 갖는다. 아래는 통신사 주식 수익 사이의 상관관계를 보여주는 상관행렬의 예시.

  4. 상관계수 자체를 시각화해서 볼 수도 있다. 아래는 seaborn의 heatmap을 이용해 시각화한 예시.

    • seaborn의 히트맵을 쓰고 싶으면 sns.heatmap을 쓰면 된다.
    • 코드 위쪽에서 구했던 etfs의 각 컬럼끼리의 상관계수, 즉 etfs.corr()이 히트맵을 그릴 대상이 된다.
    • vmin = -1, vmax = 1은 히트맵의 색상 범위를 -1에서 1 사이로 지정하겠다는 뜻이다.
    • cmap은 히트맵의 색상 팔레트를 정하는 인자인데, 여기서는 seaborn의 diverging_palette를 사용해 양의 상관관계와 음의 상관관계를 다른 색으로 구분하였다. 숫자 20은 한 쪽 끝 색상의 색조(hue)값이고, 빨간 계통의 색이다. 여기서는 -1쪽으로 갈수록 빨간색으로 표시된다. 숫자 220은 반대쪽 끝 색상의 색조(hue)값이고, 파란 계통의 색이다. 여기서는 1 쪽으로 갈수록 파란색으로 표시된다.
    • as_cmap = True라는 것은 팔레트를 Matplotlib과 호환되는 색으로 바꾸겠다는 의미다. 이 값을 False로 바꾸면 색이 뭉개지면서 몇몇 색이 합쳐지고, 구분이 어려워지게 된다.
  5. 평균이나 표준편차와 마찬가지로, 상관계수는 데이터의 특잇값에 민감하다. 클래식한 상관계수(피어슨)를 대체할 수 있는 다른 형태의 상관계수가 있긴 하지만, EDA에는 주로 피어슨 상관계수나 혹은 이것의 로버스트한 다른 버전들이 사용된다. 아예 소프트웨어 패키지에서 로버스트한 방법들을 제공하기도 하는데, 사이킷런의 모듈 sklearn.covariance에 있는 메서드들이 그 예시다. 공분산을 또 보게 되다니

  6. 시각화 자체에 조금 더 많은 정보를 담을 수도 있다. 아래는 ETF 수익 간의 상관관계를 나타낸 차트인데, 타원의 색깔과 방향, 그리고 너비로 상관관계의 강도를 표현한다. 선이 얇고 진할수록 더 강한 관계성을 나타낸다. (코드는 너무 길어서 생략) 예를 들어, S$P500(SPY)과 다우존스 지수(DIA)는 상당히 강한 양의 상관관계를 갖는다. (파란색 + 우상향 + 얇음)

    반대로, 금(GLD)이나 유가(USO) 등과 관련된 안정적인 ETF들은 주식 중심의 다른 ETF들과 약한, 혹은 음의 상관관계를 보인다. (빨간색 + 좌상향 + 두꺼움)

산점도(Scatter Plot)

  1. 두 변수 사이의 관계를 시각화하는 가장 기본적인 방법은 산점도를 그려보는 것이다. 아래는 AT&T와 버라이즌의 일간 수익 사이의 상관관계를 산점도로 그린 예시다.

    • marker = '\u25EF' : 각 데이터 포인트를 원형 기호로 나타내겠다는 표시로, \u25EF는 유니코드 원 기호를 의미한다.

    • axhline : ax(축)의 h(수평) line(선)을 긋겠다는 의미. 값을 0이 아니라 다른 값으로 바꾸면 수평선이 올라간다. 색상은 회색, lw는 line weight, 선의 굵기를 의미한다.

    • axvline : 축의 수직선을 긋겠다는 의미. 나머지는 위와 동일하다.

  2. 산점도를 보면 두 수익은 0 주변에 모여있긴 하지만 강한 양의 상관성을 보임을 알 수 있다. 두 주식은 거의 매일 함께 오르거나, 함께 떨어지는 모습을 보인다. 한 주식이 올라갈 때 한 주식은 떨어지는 경우(2, 4사분면)는 상대적으로 드물다.

profile
기본기를 소홀히 하지 말자

0개의 댓글

관련 채용 정보