Data Analysis

내가 진행한 데이터 분석 프로젝트: 배운 점과 개선 방향

Geeyoon 2024. 12. 9. 02:36

이번 글은 제가 대학교에서 진행했던 데이터 분석 프로젝트를 바탕으로 작성한 보고서와 그 과정에서 배운 교훈에 대한 이야기입니다. 이 프로젝트는 데이터를 분석하고 시각화하여 명확한 인사이트를 제공하는 것을 목표로 했으며, 이를 통해 데이터 시각화의 중요성과 보고서 작성의 요령을 배울 수 있었습니다.

이 글에서는 보고서의 그래프 중심으로 공개하며, 잘한 점과 부족했던 점, 그리고 이를 어떻게 개선할 수 있을지에 대해 다룹니다.


 

프로젝트의 전반적인 흐름과 보고서 구성

이 프로젝트는 Summer Olympics 메달 분포를 분석하고, 이를 효과적으로 시각화하여 사용자 이해를 돕는 것을 목표로 설계되었습니다. 웹 기반 설문 시스템을 개발하여 참가자들의 시각화 자료 해석 능력을 평가했습니다. 보고서는 다음과 같은 구성으로 진행되었습니다.

 

1. 프로젝트 개요

  • 목적: 올림픽 메달 분포 데이터의 역사적 추세를 분석하고, 시각화된 데이터를 통해 참가자들의 이해도와 반응을 평가.
  • 연구 질문:
    • 시간에 따른 메달 분포의 변화.
    • 특정 국가의 메달 분포와 역사적/정치적 사건의 연관성.

2. 데이터 처리와 시각화 도구

프로그래밍 언어와 라이브러리

  • Python: 데이터 처리 및 분석.
  • 라이브러리:
    • Flask: 웹 애플리케이션 개발.
    • Matplotlib: 시각화(선 그래프, 영역 그래프 생성).
    • Pandas: 데이터 처리.
    • Scipy.stats: 통계 분석.

소프트웨어 기능

  • Flask를 사용해 설문 시스템을 개발, 사용자와의 인터랙션을 처리.
  • PythonAnywhere에 호스팅하여 참가자가 설문에 접근 가능.
  • 각 질문에는 메인 그래프(선 그래프와 영역 그래프)와 관련된 서브 그래프를 제공.

3. 설문 구성 및 데이터 분석

  • 라인 차트(Line Chart):
    • 메달 수가 시간에 따라 어떻게 변화했는지 보여줌.
    • 주요 질문 예시: "1980년에 가장 많은 메달을 획득한 국가는?"
  • 영역 차트(Area Chart):
    • 국가별 전체 메달 분포를 시각화.
    • 주요 질문 예시: "2008년 베이징 올림픽에서 중국의 메달 분포는?"


2. 그래프 간소화

  • 복잡한 데이터를 여러 그래프로 나눠 표현하여 독자가 각 데이터를 더 쉽게 이해할 수 있도록 디자인.

3. 주석과 강조

  • 주요 데이터 포인트에 주석을 추가하거나, 강조된 색상과 굵은 선을 사용해 결과를 시각적으로 부각.

4. 상호작용 기능 추가

  • Plotly와 같은 상호작용 가능한 시각화 도구를 사용해 독자가 특정 데이터를 클릭해 세부 정보를 확인할 수 있도록 기능 강화.

결론

이 프로젝트는 데이터를 효과적으로 시각화하고 설문으로 그 결과를 평가하는 흥미로운 실험이었습니다. 라인 차트는 시간별 메달 변화를 명확히 보여주는 훌륭한 사례였지만, 영역 차트는 정보 과부하와 색상 문제로 개선이 필요했습니다.
이 경험을 통해 데이터 시각화는 단순히 그래프를 그리는 것을 넘어, 독자의 관점을 고려한 디자인이 중요함을 배웠습니다. 앞으로는 이러한 교훈을 적용해 더 효과적인 데이터 시각화를 설계할 계획입니다. 😊

잘한 점: 그래프의 강점과 이유

1. 잘한 그래프의 예: 

라인 차트 - 주요 국가의 시간 별 메달 수

이유:

  • 명확한 데이터 전달: 국가별 메달 분포의 변화를 시간 흐름에 따라 이해하기 쉽게 표현.
  • 컬러 대비: 각 국가를 명확히 구분할 수 있는 색상 사용.
  • 주석 활용: 특정 데이터 포인트(예: 1980년 러시아 불참 시기)에 주석을 추가하여 독자의 이해를 도움.
    • 효과: 이 그래프는 독자들이 시간에 따른 국가별 변화를 직관적으로 파악할 수 있도록 설계되었습니다.

부족한 점: 개선이 필요한 그래프와 이유

1. 부족한 그래프의 예: 

      • 문제점:
        • 색상 문제: 색각 이상자를 고려하지 않은 색 조합 사용(녹색과 빨강의 구분이 어려움).
        • 과도한 정보량: 한 그래프에 너무 많은 데이터를 포함하여 독자가 정보를 이해하기 어려움.
        • 범례 불충분: 각 색상이 의미하는 메달 종류를 명확히 표시하지 않아 해석에 혼란.
      • 개선 방안:
        • 색각 친화적 색상 사용:
          • 파랑-주황, 보라-노랑 조합 추천.
        • 정보 분리:
          • 메달 종류별로 개별 차트를 생성하여 시각적 복잡성을 줄임.
        • 범례 추가:
          • 각 색상의 의미를 명확히 표시하여 데이터 해석을 용이하게 함.

영국에서는 데이터 시각화에서도 장애인의 접근성을 중요하게 생각하기 때문에, 색각 이상자를 고려하지 않은 색상 조합은 개선이 필요합니다. 색각 친화적인 팔레트를 사용하고, 색상 외에도 패턴이나 텍스트 설명을 추가하면 더 나은 접근성을 제공할 수 있습니다.


시각화 개선 방안

  1. 색상 접근성 개선
    • 색각 이상자를 고려한 색상 팔레트를 사용
import seaborn as sns
sns.set_palette("colorblind")

2. 그래프 간소화

  • 복잡한 데이터를 여러 그래프로 나눠 표현하여 독자가 각 데이터를 더 쉽게 이해할 수 있도록 디자인.

3. 주석과 강조

  • 주요 데이터 포인트에 주석을 추가하거나, 강조된 색상과 굵은 선을 사용해 결과를 시각적으로 부각.

4. 상호작용 기능 추가

  • Plotly와 같은 상호작용 가능한 시각화 도구를 사용해 독자가 특정 데이터를 클릭해 세부 정보를 확인할 수 있도록 기능 강화.

결론

이 프로젝트는 데이터를 효과적으로 시각화하고 설문으로 그 결과를 평가하는 흥미로운 실험이었습니다. 라인 차트는 시간별 메달 변화를 명확히 보여주는 훌륭한 사례였지만, 영역 차트는 정보 과부하와 색상 문제로 개선이 필요했습니다.
이 경험을 통해 데이터 시각화는 단순히 그래프를 그리는 것을 넘어, 독자의 관점을 고려한 디자인이 중요함을 배웠습니다. 앞으로는 이러한 교훈을 적용해 더 효과적인 데이터 시각화를 설계할 계획입니다. 😊