We will find a way. We always have.

고려대학교에서 인공지능과 금융공학을 연구하고 있는 어느 대학원생의 블로그입니다.

기타(etc)

[개발] 949회까지 로또 번호 빈도에 대한 분석

MinsukSung 2021. 2. 12. 19:34

미래에셋대우 인턴이 끝날 무렵, 

iOS 개발에 관심이 있는 친구랑 함께 토이프로젝트로 앱 개발을 해보기로 했습니다.

 

아이디어는 간단하게 로또 번호 생성해주는 앱을 만들어보자고 했습니다.

사실 로또 번호를 생성하여 예측하여 1등을 바라자는 요행이 아니라,

단순히 토이프로젝트였기 때문에 가장 구하기 쉬운 데이터였기 때문입니다.

 

일단 분석에 앞서 데이터가 필요했습니다.

로또 데이터를 가져오는 방법은 정말 간단했습니다.

 

 

로또6/45 - 회차별 당첨번호

949회 당첨결과 (2021년 02월 06일 추첨) 당첨번호 14 21 35 36 40 44 949회 순위별 등위별 총 당첨금액, 당첨게임 수, 1게임당 당첨금액, 당첨기준, 비고 안내 순위 등위별 총 당첨금액 당첨게임 수 1게임

dhlottery.co.kr

동행복권  사이트에 가면 아래와 같이 엑셀 다운로드가 있습니다. 현재 기준 2021년 2월 12일까지는 949회까지의 데이터만 존재하네요.

 

이렇게 가져온 로또 번호에 대해서 파이썬을 이용하여 몇가지 살펴봤습니다.

근데 여기서 xls 파일로 다운로드하면 pandas로 데이터를 불러올 때 XLRDError 처리 XLRDError 에러가 납니다. 이에 대해서는 여기를 참고하세요.

 

 

XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'\r\(부제 : xls파일을 파이썬으로)

문제 : 파일 불러오기 안됨 1. 판다스 안됨 pd.read_excel XLRDError: Unsupported format, or corru...

blog.naver.com

저 분의 코드를 활용하면, 정말 쉽게 변환됩니다. 코드는 아래와 같습니다.

import win32com.client as win32
fname = r'F:\workspace\deep-lotto\data\total.xls'
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(fname)
wb.SaveAs(fname+'x', FileFormat=51)
wb.Close()
excel.Application.Quit()

 

가져온 데이터를 전처리하여 확인하게 되면,

아래와 같이 2002년부터 2021년까지의 전체 데이터를 확인해볼 수 있습니다.

 

오늘 확인해볼 부분은 일단 1번째부터 보너스 번호까지 빈도수입니다.

일단 결과부터 확인해보시죠. 생각보다 일정하게 나오지 않는 것을 확인해볼 수 있습니다.

현재 949회까지 모든 숫자가 평균적으로 65.8회 나온 것을 확인할 수 있습니다. 또한 적게 나온 번호는 49회 나오기도 했고, 특히 12번이나 43번의 경우는 다른 번호와 달리 유독 많이 나왔던 것(84회)을 확인할 수 있습니다.

지금까지의 가정은 사실 20년간 일정한 기계를 사용했다고 생각해야합니다.

하지만 조금 더 찾아본 결과, 262회와 733회 이후로 각각 추첨 기계가 바뀌었다고 하네요. 그렇기 때문에 각각 회차 기간에 따라서 확률을 다시 계산해보았습니다. 그러한 이유는 아래의 영상을 참고했습니다.

(저는 아래 영상과 관련없고 신뢰하지도 않습니다)

 

 

일단 한번에 전체적으로 보기 편하게 이렇게 올려드리겠습니다.

 

 

그 다음으로는 숫자별로 비교하실 수 있게 아래와 같이 보여드리겠습니다.

 

위 그래프는 각 추첨 기간별로 로또 숫자들의 확률을 분리한 그래프입니다. 

확실히 기계가 바뀌고 나서 많이 나오는 숫자들이 있는 반면에, 확률이 줄어든 숫자들도 보입니다.

 

하지만, 분명히 말씀드리지만 로또는 분석으로 절대 1등이 될 수 없습니다.

지금까지 모든 과정을 진지하게 받아드리지 마시고, 결과적으로 숫자들이 확률이 다르다는 것을 그냥 확인해주시는 것에 그치길 바랍니다.

로또 추첨은 독립시행이기 때문에, 지금까지 저렇게 나왔다고 해서 앞으로도 저 숫자가 나오리라고 보장할 수 없습니다.

 

다음 시간에는 당첨자수나 당첨금액에 대해서 조금 더 분석해볼 예정입니다.

이후 이를 바탕으로 간단하게 앱 출시까지 포스팅해볼 예정입니다.

'기타(etc)' 카테고리의 다른 글

어떤 클라우드를 써야할까?  (0) 2020.09.21