다차원 배열을 쉽게 처리하고 효율적으로 사용 가능하도록 지원하는 라이브러리
배열 내부에는 동일한 데이터 타입을 가진 원소들로만 구성되어 있다. 대용량 데이터를 다룰 때 유용할 만큼 메모리를 효율적으로 사용할 수 있다.
내부적으로 C 언어로 구현되어 있어 복잡한 수학 연산도 빠르게 처리할 수 있다.
수학 연산이 간단하게 수행 가능한 다양한 함수가 제공된다.
거진 모든 파이썬 라이브러리는 Numpy를 내부적으로 활용된다.
파이썬을 활용한 과학 계산 및 데이터 분석에 유용한 기본적인 라이브러리라고 할 수 있다.
# Numpy 불러오기
import numpy as np
행과 열로 이루어진 데이터를 조작 및 분석하는 데 특화된 라이브러리
하나의 데이터 타입만 처리 가능했던 Numpy 와는 다르게, Pandas는 확장된 개념으로
정수, 실수, 문자열, 객체, 리스트 등을 모두 처리할 수 있다.
누락된 데이터 값을 특정 값으로 채우거나, 포함하는 행이나 열을 삭제하는 등의 기능을 한다.
# 1. 어떤 데이터가 누락되었는지 확인
data.isnull() # bool형식으로 어떤 데이터가 결측되었는지 알려 줌
# 2. 누락 데이터 제거
data.dropna() # 행의 어떤 데이터라도 결측되었다면 제거
# 3. 결측 데이터 채우기
data.fillna() # 괄호 내부 숫자로 결측치 채움, 딕셔너리 형태로 삽입 O
여러 데이터 프레임을 하나로 병합하거나, 조인하여 함께 출력할 수 있는 기능을 제공한다.
# 1. 데이터 프레임을 물리적으로 병합
pd.concat()
# 2. 각 데이터에 존재하는 key(열)를 기준으로 병합
pd.merge()
# 3. 행 인덱스를 기준으로 병합
pd.join()
데이터 요약 및 분석에 용이한 피벗 테이블을 쉽게 생성할 수 있다.
pivot_table(df, index= , columns= , values= , aggfunc= )
반복해서 순환하는 시계열 데이터를 처리하기에 유용한 도구들을 제공한다.
1차원 배열 형태의 자료 구조로, 인덱스(index)와 값(value)의 쌍으로 구성된다.
2차원 배열 형태의 자료 구조로, 여러 개의 Series가 모여 하나의 DataFrame을 구성한다.
각 Series는 하나의 열(row)을 나타내고,
하나의 행(column)에 각 인덱스(index)가 부여된다.
# Pandas 불러오기
import pandas as pd
파이썬에서 데이터를 시각화하기 위해 널리 사용되는 라이브러리
선 그래프, 산점도, 히스토그램 등 다양한 그래프가 지원된다.

그래프 스타일, 축, 색상 등 거진 모든 요소들을 세밀하게 조정하여 시각화가 가능하다.
matplotlib document의 Example을 살펴보면 여러 그래프들의 코드를 살펴볼 수 있다.
Pandas, Numpy 라이브러리와 통합되어, 데이터 프레임과 배열을 사용할 수 있다.
데이터 프레임과 배열을 불러와 필터링하고 이를 토대로 원하는 그래프를 뽑아 낼 수 있다
간단한 코드로 빠르게 그래프를 그릴 수 있는 인터페이스를 제공한다.
PNG, JPG 등 다양한 형식으로 그래프를 저장할 수 있다.
# Matplotlib 불러오기
import matplotlib.pyplot as plt
Matplotlib 를 기반으로, 데이터 분석 및 시각화 작업을 간편하게 해 주는 라이브러리
기본 설정만 해도 그래프가 시각적으로 보기 좋아, 복잡한 설정 없이도 사용이 가능하다. 상대적으로 matplotlib보다 코드가 간단하고, 그래프의 색과 모양이 예쁜 편이다.
배열 데이터 프레임과 자연스럽게 연동되어, 해당 객체의 데이터를 직접 사용해 생성할 수 있다.
히트맵, 박스플롯 등 다양한 고급 그래프를 보다 간단한 코드를 사용해 생성이 가능하다.

데이터 분포, 관계, 그룹별 비교 등 데이터를 보기 쉽게 시각화할 수 있다.
필요 시 matplotlib 설정을 이용해 세부적인 커스터마이징이 가능하다. 섬세하게 꾸며 낼 수 있다.
# Seaborn 불러오기
import seaborn as sns
✔️ Python 의 모든 라이브러리는 Numpy 에 기반하여 모두 연결성을 가지므로,
잘 학습해 두어 필요할 때마다 import 하여
내부에서 배열 생성, 데이터 시각화 등 많은 활용이 가능하다.
자세한 모든 활용법은 각각 공식 홈페이지에 방문하여 학습하길 바란다.
주장의 타당성을 표본 데이터를 이용해 확률적으로 판단하는 과정
이때, 판단이 틀릴 수 있다는 가능성을 배제하지 않는다.
새로운 주장, 연구자가 입증하고 싶은 가설
변화나 차이가 있음을 입증하고, 이를 채택하는 것을 목표로 한다.
연구자가 증명하고자 하는 효과나 차이가 존재하지 않는다는 가정
이를 기각할 수 있는 충분한 증명을 해내어야만이 대립 가설이 채택될 수 있다.
보통 대립 가설과 반대로 설정한 후, 추후 연구를 통해 가설의 기각 여부를 설정한다.
백신 개발 후, 효과가 있는지 확인하고자 연구를 진행하려 한다.
그럼 먼저, 내가 증명하고자 하는 대립 가설을 먼저 세운다.
💬 대립가설() : 해당 백신은 효과가 있다.
그리고, 대립 가설을 역으로 하여 보다 더 증명하기 쉬운 귀무 가설을 세운다.
💬 귀무가설() : 해당 백신은 효과가 없을 것이다.
이런 방식으로 가설을 세운 후,
귀무 가설을 증명하기 위해 모집단에서 표본을 추출한 후 연구를 진행한다.
귀무가설이 옳다는 전제 하에, 특정 값이 해당 데이터보다 크거나 같을 확률
여기에서 p는, 귀무 가설과 얼마나 일치하는지 수치적으로 나타낸 것이다.
즉 p값이 작을수록 귀무 가설 내에서 발생하기 어렵다고 볼 수 있으며, 이는 곧 귀무 가설이 옳지 않을 확률이 높다고 판단될 수 있다.
귀무 가설의 기각 여부를 따질 때 기준이 되는, 오류를 허용할 최대 확률
귀무 가설이 참임에도 불구하고, 대립 가설을 잘못 선택하는 것을 허용할 최대 확률을 이야기한다. 해당 수준까지 오류 범위를 허용하는 것이다.
유의 수준은 보통 정규분포 그래프의 꼬릿값이며, 보편적으로 5%(0.05) 를 사용한다.
귀무 가설을 검증했을 때 5% 이상으로 오류가 발생한다면, 해당 가설은 틀린 것으로 간주하고 기각한 후 대립 가설을 채택하는 것이다.
가설은 보통 p-value와 비교하여 채택과 기각 여부를 결정한다.
📌 결론적으로,
p-value 가 유의 수준보다 작으면 귀무 가설을 기각하고 (p-value < 0.05)
p-value 가 유의 수준보다 클 때 귀무 가설을 채택한다(p-value > 0.05)
💬 귀무가설() : 해당 백신은 효과가 없을 것이다.
- 유의수준() = 0.05
첫 번째 경우
100 명의 실험자에게 모두 백신을 투여하였을 때,
전체 중 3명에게 효과가 나타나지 않았다.(p = 3%)
하지만, 유의 수준은 5%로, 오류 수준이 전체 중 다섯 명을 넘지 않으니
효과가 없다는 귀무가설은 기각되고, 대립가설이 채택된다.
두 번째 경우
100 명의 실험자에게 모두 백신을 투여하였을 때,
전체 중 7명에게 효과가 나타나지 않았다.(p = 7%)
유의 수준이 5%, 즉 전체 중 다섯 명을 넘기는 만큼의 오류가 발생하였으므로
효과가 없다는 가설이 옳을 것이란 무게가 실려, 귀무 가설이 채택된다.
: 귀무 가설을 검증하였을 때를 기준으로, 대립 귀무가설을 채택 및 기각
| 귀무가설 | 귀무가설 채택 | 대립가설 채택 |
|---|---|---|
| 참 | 일치 | 1종 오류 α |
| 거짓 | 2종 오류 β | 일치 |
귀무 가설이 참임에도 불구하고, 귀무가설을 기각하고 대립 가설을 채택하는 오류
이는 유의 수준과 동일한 지표이다.
만약
α = 0.05, 즉 유의 수준이 5% 라면,
1종 오류를 허용하는 확률이 5% 라는 것을 의미하며,
해당 실험에서 귀무 가설을 채택할 확률은 단 5% 인 것이다.
귀무 가설이 거짓임에도 불구하고, 귀무 가설을 채택 하는 오류
이는 해당 가설의 검정력(1 - β),
즉 존재하는 실제 효과를 정확하게 테스트 가능한 정도를 통해 검증한다.
검정력이 높아지게 되면, 오류를 범할 확률은 낮아진다.
만약,
해당 백신을 사람에게 투여했을 때 효과가 있을 확률, 즉 검정력(1 - β)이 70% 라면
2종 오류(β)가 발생할 확률은 30%가 된다.
💡 검정력 높이는 방법
1. 표본 개수 늘이기
표본이 증가하면, 몇 개의 이상치가 발생하여도 전체의 표본 평균이 크게 흔들리지 않는다.
이는 표본 평균의 변동성이 감소하여,
모평균에 대한 추정이 더 안정적이어지기 때문이다.
결과적으로 우연으로 인해 가설을 잘못 판단할 확률이 낮아진다.
2. 유의 수준 높이기
α 를 높이면, 귀무 가설을 기각할 확률이 높아져 검정력이 증가한다.
하지만, 귀무 가설이 참임에도 불구하고 기각하는, 즉 1종 오류의 발생 확률이 높아지기 때문에 조심해야 한다.