본문 바로가기

수업 연구/통계와 데이터 분석

[연구 데이터 수집] 어떤 실제 데이터 셋을 수집했나요? 파이썬과 판다스, 웹크롤링을 통해 영화 평점, 야구 타율, 신장 데이터를 수집했어요 [리송스쿨 X 생활수학]

반응형

어떤 데이터 셋을 수집했나요?

리송스쿨 0기 - Q.D.M 프로젝트 중간 발표(1)

(고등학교 <확률과 통계> 개념을 실제 데이터를 활용하여 이해할 수 있는 자료 만들기)

 

 

안녕하세요, 달빛샘입니다.

지난번 글에서는 Q.D.M 프로젝트를 통해 수행하고 싶은 주제("실제 데이터를 활용하여 표본평균의 확률분포 관찰하기")가 무엇인지와 Q.D.M에 대한 구체적인 이야기, 그리고 앞으로의 계획에 대한 이야기를 간략하게 나누었습니다.

 

math-life.tistory.com/1

 

[연구 주제 소개] 정말 n값에 따라 표본평균의 분포가 정규분포를 만들어낼 수 있을까? 실제 데이

실제 데이터를 활용하여 표본평균의 확률분포 관찰하기 리송스쿨 0기 - Q.D.M 프로젝트 계획 발표 (고등학교 <확률과 통계> 개념을 실제 데이터를 활용하여 이해할 수 있는 자료 만들기) 안녕

math-life.tistory.com

 

이번 시간에는 프로젝트를 진행하기 위한 데이터를 수집한 이야기를 들려드리려고 합니다. 어떤 데이터 셋들을 수집했는지 궁금하신가요?


어떤 종류의 데이터를 모으고 싶었나?


크게 두 종류의 데이터 셋을 모으고 싶었습니다. 

 

1. 정규분포를 따를 것으로 예상되는 데이터 셋

2. 정규분포를 따르지 않을 것으로 예상되는 데이터 셋

 

학생들과 데이터 셋에 대한 주제를 정하는 활동을 한다고 가정을 해 보아도 이 두 질문은 매우 의미가 있을 거라고 생각됩니다. "어떤 데이터가 정규분포를 이룰 것 같니?", "어떤 데이터가 정규분포를 이루지 않을 것 같니?" 아마도 대부분은 정규분포를 이룰 것이고, 정규분포를 이루지 않는 데이터를 찾기가 어려울 것 같은데 실제로 그런지도 확인해볼 수 있을 것 같습니다.

 

그리고 정규분포를 따르든 따르지 않든 표본평균의 확률분포를 그려보면 모두 정규분포를 이루는지를 확인해보는 것도 재미있을 것 같습니다. 그렇게 된다면 중심극한정리(Central Limit Theorem)를 보다 실제적으로 경험해볼 수 있을테니까요. (사실 저도 궁금하네요...^^)

 

그리고 또 한가지 중요한 것은 데이터가 통계적으로 미리 처리되지 않은 데이터를 모으기 원했습니다. 

 

신장(Cm) 인원(명)
160-165 10
165-170 15
170-175 8

 

이런 종류의 데이터는 표본을 (임의로) 추출할 수가 없어서 제가 원하는 데이터가 아니었습니다.

 

순번 사람 신장(Cm)
1 AAA 160
2 BBB 165
3 CCC 165
4 DDD 175

 

이런식으로 개별 데이터로 저장이 되어 있어야 표본을 (임의로) 추출할 수가 있습니다. 

 


데이터 셋 1 - 영화 평점 데이터


GroupLens 연구소라는 곳에서 제공하는 영화 평점 데이터 셋을 다운로드 받았습니다. 정말 방대한 양의 데이터가 모여 있습니다. 

 

grouplens.org/datasets/movielens/

 

MovieLens

GroupLens Research has collected and made available rating data sets from the MovieLens web site ( The data sets were collected over various periods of time, depending on the size of the set. …

grouplens.org

이곳에서 다운로드 받은 데이터 셋을 파이썬과 판다스(pandas) 라이브러리를 활용하여 정리를 했습니다. 영화 정보, 영화 평점 데이터가 각각 다른 파일로 저장되어 있고 영화마다 평점들이 여러개씩 저장되어 있어서 영화별로 평점의 평균을 계산해서 하나의 파일로 만들었습니다.

 

data_mean.csv
0.34MB

 

이렇게 모은 데이터의 기본 정보는 아래와 같습니다.

 


데이터 셋 2 - 야구 타율 데이터


두 번째 데이터 셋은 올해(2020년) 국내 프로야구 정규시즌 기록 중에 타율 데이터를 수집했습니다. 웹크롤링을 연습해볼 수 있는 기회가 되었네요. 너무 어려웠...

 

cpbpoint.mbcplus.com/stats/player_rank/

 

:: 컴투스프로야구포인트 ::

 

cpbpoint.mbcplus.com

 

이 사이트에서 제공되는 html table 정보를 수집하여 자료를 모았습니다. 파이썬과 pandas, beautifulsoip4, HTMLParser 라이브러리 등을 이용했습니다. 복잡하지는 않았지만 처음 공부하는 내용이라 땀을 삐질삐질 흘리며 데이터를 모았네요.

 

이렇게 모은 데이터들 중에 규정타석 기준을 넘은 데이터만 수집한 정보는 아래와 같습니다.

 

baeball_avg.csv
0.00MB

 


데이터 셋 3 - 대한민국 성인 신장 데이터


국민건강보험공단에서 제공하는 국가중점 개방데이터(건강검진정보)입니다. 민건강보험의 직장가입자와 40세 이상의 피부양자, 세대주인 지역가입자와 40세 이상의 지역가입자의 「일반검강검진」 결과와 이들 일반건강검진 대상자 중에 만40세와 만66세에 도달한 이들이 받게 되는「생애전환기건강진단」의 결과입니다. (100만명 무작위 추출)

 

nhiss.nhis.or.kr/op/it/index.do

 

공공데이터 개방서비스

 

nhiss.nhis.or.kr

100만명의 데이터가 모여 있기 때문에 파일 용량이 상당히 큽니다. 엑셀로 파일을 열어서 사용하지 않을 열(column)들을 삭제하였습니다.

 

drive.google.com/file/d/1sQ-HmrfOLHCP5I7_9jEmuBe_BluY3ikG/view?usp=sharing

 

NHIS_OPEN_GJ_2016_modi.csv

 

drive.google.com

이 데이터들의 기본 정보는 아래와 같습니다.

 


영상 자료


앞의 내용을 영상으로 정리해 보았습니다^^

 

www.youtube.com/watch?v=WcPps1qRrqA


 

앞으로의 계획은?


스터디를 위한 기본적인 데이터 셋은 어느 정도 수집을 완료했습니다. 이제 각 데이터를 가지고 본격적인 스터디를 진행할 예정입니다.

 

이제 알고리즘을 고민해서 파이썬 코드 또는 엑셀로 구현해보고 최종적으로는 학습지 자료를 만들어보는 것이 목표입니다.

 

- 임의의 n값 만큼 랜덤으로 표본을 추출하고 평균을 구한다.

- 앞의 과정을 반복하여 표본평균들을 많이 모아서 분포를 그려본다.

- 분포가 정규분포를 이루는지를 확인해본다.

- 표본평균, 표본표준편차 등을 계산해보고 모평균과 모표준편차와 비교해본다.

 

앞으로도 스터디 진행되는 대로 정리해서 계속 공유하도록 하겠습니다. 관심이 있으실 지는 모르겠지만 여력이 된다면 앞의 세 가지 데이터 셋을 수집했던 방법에 대해서도 정리를 해볼 예정입니다. ^^


스터디를 응원해주세요


앞으로 스터디한 내용들을 이곳 블로그와 아래의 유튜브 등을 통하여 계속적으로 나누고 공유할 예정입니다. 스터디가 잘 진행되고 좋은 자료를 만들어낼 수 있도록 격려해주시고, 응원해주세요.

 

아직 내용이 많이는 없지만 이곳 블로그와 아래의 유튜브를 구독해주시고 응원해주시면 감사하겠습니다^^

 

 

다양한 채널을 만들어 놓았지만 아직 적극적으로 운영이 되는 곳은... 쩜쩜쩜...

 

생활수학 유튜브 : www.youtube.com/channel/UCb349HfXqoq2-LLUT41gN5g

생활수학 페이스북 그룹 : www.facebook.com/groups/math365

생활수학 네이버 카페 : cafe.naver.com/lifemath365

 

반응형