-
01-3 시그마 : 합의 기호 ∑데이터 분석/파이썬으로 배우는 데이터 분석을 위한 통계학 2022. 1. 12. 15:22
앞서 통계가 무엇인지, 통계를 왜 배워야 하는지 배웠어. 그럼 이제 통계적 기법들을 위한 방법을 배워볼까?
아참, 이제부터는 구글 스프레드시트를 활용하면서 본격적으로 시작해 볼게!
먼저 합의 기호를 배울거야. 히랍어 대문자 '∑'라고 쓰고 '시그마(sigma)'라고 읽어. 고등학교 때 배운적 있지? 만약 이 글을 읽는 친구가 시그마를 모른다고해도 괜찮아. 내가 알려줄거니까!
일단 합의 기호가 왜 필요한지부터 알아야겠지?
우리가 접하게 될 자료들은 하나의 수치가 아니라 여러 수치들이 뭉쳐있는 자료 덩어리들을 접하게 될거야. 특정 집단이 주어진다면 특정 집단의 모든 수치들을 다뤄야 하는거지. 중요한 것은 '모든'이라는 단어야.
앞서 배웠던 모집단과 표본집단을 떠올려봐. 모집단은 대부분 너~무~나 많기 때문에 모집단의 전체 수치들을 다루기란 사실상 불가능해. 전세계 모든 ADHD 환자들에 대한 정보를 다 수집한다고? 오노! 그럴순 없어. 하지만 모집단에서 무작위로 표본추출한 표본집단이라면? 표본집단은 추론 통계를 위해 추출한 집단이기 때문에 사례수가 모집단에 비하면 매우 적을거야. 표본집단이 가지고 있는 모든 수치를 다룰 수 있을 만큼 적겠지. 우리는 표본집단과 같이 파악 가능하고 계산 가능한 집단의 수치들을 컴퓨터 기술을 통해 다룰 수 있어. 그 때 필요한 기호 중 하나가 바로 시그마(∑)야.
쉽게 이해하기 위해 아래의 표를 먼저 볼게.
손흥민 선수의 토트넘에서의 골 기록 시즌 점수 기호 점수치 15-16 시즌 8 16-17 시즌 21 17-18 시즌 18 18-19 시즌 20 19-20 시즌 18 20-21 시즌 22 (편의를 위해 텍스트에서는 변인의 밑수를 일반 숫자로 대체하여 설명합니다.)
위의 표는 실제 손흥민 선수의 기록이야. 16-17 시즌 부터의 활약이 돋보이네!
그리고 점수 기호는 '변인(variable)'을 나타내기 위해 가장 많이 쓰이는 X로 나타냈어. 프로그래밍을 배운 친구들이라면 '변수(variable)'의 개념을 떠올리면 돼. X4는 18-19 시즌의 골 기록을 나타내는 변인이 되는거야. 어렵지 않지?
이제 우리는 손흥민 선수가 토트넘에서 한 시즌당 평균 몇 골을 넣었는지 알고 싶어졌어. 어떻게 알 수 있을까?
간단해. 모든 득점수의 합을 시즌의 횟수대로 나누면 돼. 총 여섯 시즌 동안의 기록이니까 모든 득점수를 합한 다음 6으로 나누면 되는거야. 수식으로 정리하면,
평균 = 모든 점수들의 합 / 점수들의 수
(프로그래밍에서 '/' 기호는 '÷'를 뜻 함. '/'를 기준으로 앞에 오는 것이 분자, 뒤에 오는 것이 분모이기 때문)
가 되겠지. 위의 표에서는 점수가 '득점수'가 되는 것이고. 그런데 '모든 점수들의 합'이라는 말이 너무 길잖아? 그래서 우리는 이제부터 '모든 점수들의 합'을 '∑(시그마)'라고 할거야. ∑ 자체가 합의 기호이기 때문에 가능하지! 그리고 만약 위와 같이 모든 변인 X들의 합을 나타내고 싶다면 '∑X'라고 표현하면 돼. 끝으로 '점수들의 수'는 N으로 표현할 수 있어. 이제 평균을 구하는 수식을 기호들을 사용해서 다시 표현해 볼까?
평균 = ∑X / N
어때? 훨씬 간단해졌지?
사실 변인 X들의 합을 더 자세하게 나타내려면
이런 식으로 나타내야 돼. Xi에서 i를 1부터 N까지 1씩 증가시키면서 더한다는 뜻이야. 정리하면,
와 같지. 쉽게 말해서 X1부터 XN까지 모든 변인들의 점수치를 다 더하라는 뜻이야. 손흥민 선수가 토트넘에서 6시즌 동안 득점한 총 득점수를 구한다고 하면
이렇게 나타낼 수 있어. i가 1부터 6까지 1씩 증가하면서 더하라는거지. 그리고 실제 기록에 대입해보면
와 같이 나타낼 수 있어. 6시즌 동안 107득점이라니! 굉장한걸?
만약 한 집단의 모든 점수치들을 더한다고 한다면 기호는 생략될 수 있어.
나는 앞으로 텍스트로 설명할 땐 '∑X'로 나타낼거야. 그래도 여러분들을 찰떡같이 알아듣고 '집단의 모든 점수치들을 더한 것이구나!' 라고 알 수 있겠지?
이제 합의 기호에는 알았으니 파이썬에서 점수치들을 더하는 방법에 대해 알아볼까? 파이썬을 사용하면 정말 쉽게 값들을 더할 수 있어!
그 전에..
이 포스팅을 통해 파이썬 혹은 프로그래밍 자체를 처음 배우는 친구들도 있을거 같아. 그래서 파이썬 코드를 입력하고 실행하는 방법에 대해 먼저 설명할게! 만약 본인이 파이썬 코드를 작성하고 실행할 수 있는 환경을 알고 있다면 생략해도 좋아.
파이썬 코드를 작성하고 실행하기 위한 많은 에디터들이 있겠지만.. 나는 google의 Colaboratory를 추천 해. 줄여서 Colab이라고 하고 구글 코랩이라고도 해.
https://colab.research.google.com/
클라우드 환경에서 동작하기 때문에 따로 파이썬을 설치할 필요도 없으니 언제 어디서나 인터넷만 연결되어 있으면 파이썬 코드를 쉽고 빠르게 작성하고 실행해 볼 수 있지! 꼭 Colab이 아니어도 좋지만 이 강좌는 Colab과 trinket을 기반으로 작성될 것이니 같은 환경이면 편할거야. trinket은 여러분들이 신경쓰지 않아도 좋아. 티스토리 블로그에서 파이썬 코드를 바로 실행해 볼 수 있게 해주는건데.. 나만 사용할거야. trinket이 무엇인지는 나중에 다시 설명해 줄게!
암튼 구글 코랩에 들어가서 구글 아이디로 로그인 하면 친구들이 가지고 있는 구글 계정과 연동이 돼. 코랩에서 작성한 코드는 구글 드라이브랑 연동이 되니까 작성한 코드도 관리하기 쉬워~ 넘나리 좋은것~
코랩에 들어가서 새노트를 하나 만들어 줘. 그럼 아래와 같은 에디터를 볼 수 있을거야.
상단에 제목을 적는 곳에 여러분이 원하는 문서의 제목을 적어주면 돼. 파이썬 코드는 코드를 적는 곳에 적으면 돼. 참 쉽지? 만약 코드를 실행하고 싶다면 동그라미 안에 ▶ 모양이 있는 아이콘을 눌러주기만 하면 돼. 참 쉽지? 시험 삼아서 코드를 적는 곳에 아래의 코드를 적어 볼까? main.py 밑에 1번 부터 3번 줄 까지의 코드를 복사해서 코랩에 붙여 넣으면 돼. 아니면 짧은 코드니까 직접 코랩에서 작성을 해도 되구. 아참! 바로 아래에 있는게 바로 trinket이야. 코드를 볼 수도 있고 바로 실행해 볼 수도 있어.
코랩에서 코드를 작성하고 코드 실행 버튼(단축키는 ctrl+enter)을 누르면 (코랩에 최초 접속하고 코드 실행 버튼을 누르면 시간이 조금 소요될 수 있어. 하지만 두 번째 실행 부터는 빠릿 빠릿 하니 걱정하지마~)
이런 출력 결과를 얻을 수 있을거야. 그치? 코드의 내용은 간단해. a가 3이고 b가 7인데 a와 b를 더한 값을 출력하라는 뜻이야. 이 정도는 프로그래밍을 몰라도 충분히 이해할 수 있을 정도로 간단하지?
그리고 실행 결과만 보고 싶다면 trinket에서 ▶ 버튼을 누르면 돼.
참 편리하지? trinket의 코드는 친구들이 원하는 대로 수정할 수 있으니 a와 b의 숫자들을 바꿔가면서 실행을 해보면 좋겠네~
정리하면
1. 친구들이 파이썬 코드를 작성하고 실행하고 관리하려면 google Colab을 이용하기.
2. 이 강좌에서 파이썬 코드를 바로 실행해 보면서 이해할 땐 trinket으로 작성된 코드를 이용하기.
알겠지?
자, 이제 본격적으로 점수치들을 더해 볼까?
먼저 가장 무식한 방법으로 점수치들을 더해 볼거야. 손흥민 선수의 골 들을 더하기 기호(+)를 통해 다 더하는거지. 아래와 같이 말야.
코드를 실행해 보면 107이 출력되는 것을 볼 수 있어. 맞는 답이지?
하지만 이렇게 무식한 방법으로 점수치들을 더하기 위해 파이썬을 배우려는게 아니잖아. 우리는 좀 더 프로그래밍 스러운 방법을 배울거야.
일단 점수들을 더하는 방법을 배우기 전에 '함수(function)'에 대해 알면 좋아. 함수는 수학 공부할 때 많이 접했던 용어지? 함수의 '함'은 상자 라는 뜻이야. 어렸을 때 상자에 어떤 수를 넣었더니 변해서 나오더라~ 하고 배웠을거야. 그치?
여기 빨간 공이 하나 있어. 이 공을 상자에 넣어 볼거야.
그랬더니 빨간 공이 하트 모양으로 바뀌어서 나왔어. 이 상자는 어떤 기능을 갖고 있을까? 아래의 그림을 보면서 좀 더 생각해 볼까? 이번에는 다른 색깔의 공들을 상자에 넣어볼거야.
빨간 공 뿐만 아니라 다른 색깔의 공들도 하트 모양이 되어서 나오는 것을 알 수 있어. 그럼 당연히 이 상자는 공 모양을 하트 모양으로 바꿔주는 기능을 갖고 있는 것이겠지? 이게 바로 함수의 개념이야.
초등학교 땐 숫자를 가지고 함수를 배웠을거야. 아래의 그림을 볼까?
만약 2를 넣었는데 4가 되어서 나오는 상자가 있다고 해 볼게. 혹은 3을 넣었더니 6이 돼서 나오고, 5를 넣었더니 10이 돼서 나오고, 7을 넣었더니 14가 돼서 나왔어.
그럼 이 상자의 '기능(function)'은 무엇일까?
당연히 '두 배가 된다.'라고 생각할 수 있을거야. 이게 바로 함수(function)의 개념이야. 함수도 영어로 function이고, 기능도 영어로 function이지? 기억하기 참 쉽네!
프로그래밍 언어에서는 함수가 참 많이 쓰여. 우리가 앞서 실행해 보았던 코드에도 함수가 존재하고 있었어. 바로 출력을 위한 print() 함수지! print() 함수는 우리가 함수의 기능을 정하지 않아도 파이썬 자체에 내장(built-in)되어 있어. 출력하는 기능을 갖고 있는 내장 함수(built-in function)지. 앞으로 파이썬을 배우면서 내장 함수에 대해서 같이 배우게 될거야. 기본적이라 자주 쓰이는 내장 함수들을 하나 하나씩 배우다 보면 파이썬 실력도 자연스레 늘겠지?
아, 그리고 파이썬 함수는 함수이름과 소괄호의 조합으로 되어 있어.
함수이름()
함수이름은 말 그대로 그 함수의 이름을 뜻 해. 보통 함수 이름은 명령어이기 때문에 동사로 되어 있고, 함수가 어떤 기능을 하는지 이름만 봐도 딱 알 수 있게 정해져있어. 동사 'print'라는 뜻은 '출력하다.'라는 뜻이잖아? 함수의 이름만 봐도 함수의 이름을 쉽게 알 수 있도록 지어진거지! 결국 pirnt() 함수는 소괄호 안의 것을 출력하라는 뜻이야. 참 쉽지?
다음으로는 값들을 더하기 위한 함수를 알아볼게. sum()이라는 함수야. sum()이라는 함수는 소괄호 안의 값들을 더하는 기능을 갖고 있어. 이때 소괄호 안의 값들은 '반복 가능한(iterable)'놈들 이어야 돼.
sum(반복 가능한 값들)
반복 가능한 값들에 대한 자세한 설명은 나중에 다시 해 볼게. 지금은 'sum()이라는 내장 함수가 반복 가능한 값들을 더하는 기능을 갖고 있구나!' 라고만 알고 있으면 돼.
우리는 손흥민 선수의 골 기록들을 소괄호 자리에 넣을거야. 그러면 sum() 함수의 기능이 다 더하는 것이니 점수치들을 다 더할 수 있겠지? 다만 이때 점수치들을 '대괄호([])'로 묶어 주어야 한다는 것만 기억했음 좋겠어. 대괄호에 대해서도 나중에 다시 설명해 줄게!
손흥민 선수의 골 기록은 8, 21, 18, 20, 18, 22 였어. 이 점수치들을 대괄호로 묶어서 sum()함수의 소괄호 안에 넣어주기만 하면 점수치들을 다 더할수 있지! 파이썬 코드로 실행해 볼까?
어? 그런데 실행 버튼을 눌러도 결과가 출력되지 않네? 왜 그럴까?
이유는 바로 출력을 해주지 않았기 때문이야. 출력할 때 필요한 print()함수를 사용하면 결과를 출력할 수 있어. 아래 코드를 실행해 보면 바로 결과를 볼 수 있을거야.
어때? 오른쪽 결과 창에 107이 출력되는게 보이지? 우리는 sum()이라는 내장 함수를 통해 값들을 더할 수 있게 되었어! 야호! 이 외에도 다른 방법으로 점수치들을 구할 수도 있지만 차차 배워보기로 할게.
암튼 이제 ∑에 대해 알겠지? 총합을 구할 수 있다면 평균도 구할 수 있을거야! 한 번 구해볼까?
는 다음 강좌에..
'데이터 분석 > 파이썬으로 배우는 데이터 분석을 위한 통계학' 카테고리의 다른 글
02-1 분포의 특징 : 빈도분포와 상대빈도분포 (0) 2022.03.14 01-4 평균 : 평균 그리고 연산 (0) 2022.01.12 01-2 기술 통계와 추론 통계 : 가설 검증 (0) 2022.01.12 01-1 기술 통계학 : 왜 통계를 공부해야 하는가? (0) 2022.01.12 0. 들어가며 (1) 2022.01.12