오늘은 '중간고사대비 연습문제' 노트북을 풉니다. 풀기 전에 몇 가지만 짚습니다.
상자그림·상관계수·추출·기댓값·분포 그래프·LaTeX 는 노트북의 설명 칸에 정리되어 있습니다. 노트북을 위에서부터 풀어 가세요.
07주차 · 중간고사 범위 복습01
실습본의 빈칸을 채우듯 { } 자리를 채우고 셀을 실행합니다.
| 항목 | 내용 |
|---|---|
| 시점 | 다음 주 (8주차) 수업 시간 |
| 형식 | 인터넷 없는 Jupyter 노트북 실기 — { } 빈칸 채우기 |
| 범위 | 교재 01장 ~ 06장 (1~6주차), 30점 — 07·08장 연속형은 빠진다 |
| 허용 | 본인이 쓴 A4 반 장 단면 요약지 한 장 |
| 제출 | 모든 셀을 실행한 채 저장 → 학번_이름.ipynb |
07주차 · 중간고사 범위 복습02
빈칸의 모양에 따라 쓰는 방법이 다릅니다.
| 칸의 모양 | 이렇게 쓴다 |
|---|---|
| x = '{ }' | 보기 문자열 중 하나를 따옴표 안에 글자 그대로 — '비율' 을 '비율척도' 로 쓰지 않는다 |
| x = { } | 값을 내는 코드를 쓴다 — 손으로 계산한 숫자보다 코드가 안전하다 |
| 함수( … { }) | 빠진 인자만 채운다 — 예: , replace=False |
| $$ 와 $$ 사이 | 마크다운 셀을 더블클릭해 LaTeX 을 쓰고 Shift + Enter |
07주차 · 중간고사 범위 복습03
아래 척도일수록 위 척도의 성질을 모두 포함하고 하나를 더 할 수 있습니다.
| 척도 | 가능한 비교 | 0 의 의미 | 예시 |
|---|---|---|---|
| 명목척도 | 구분 | — | 혈액형, 학과, 성별 |
| 서열척도 | 구분 + 순서 | — | 등수, 만족도, 학점 |
| 등간척도 | 구분 + 순서 + 같은 간격 | 임의의 0 — 0℃ 는 온도가 없다는 뜻이 아니다 | 섭씨온도, IQ |
| 비율척도 | 구분 + 순서 + 같은 간격 + 배수 | 절대 0 — 0kg 은 무게가 없다는 뜻이다 | 키, 몸무게, 나이, 소득 |
숫자로 적었다고 양적 척도는 아닙니다. 혈액형을 A=1, B=2, O=3, AB=4 로 적어도 명목척도입니다.
07주차 · 중간고사 범위 복습04
아래 척도는 위 척도의 통계량을 모두 쓸 수 있습니다 (+ 는 추가되는 것).
| 척도 | 쓸 수 있는 통계량 | 부적절한 통계량 | 예시 |
|---|---|---|---|
| 명목척도 | 빈도, 비율, 최빈값 | 평균, 중앙값, 표준편차 | 혈액형 코드 평균 2.3 은 어느 혈액형도 아니다 |
| 서열척도 | + 중앙값, 백분위수 | 평균, 표준편차는 해석에 주의 | 만족도 중앙값 4 = 절반이 4점 이상. 점수 간격이 같다는 보장은 없다 |
| 등간척도 | + 평균, 분산, 표준편차 | 배수 비교 | 평균 15℃ 는 되지만 20℃ 가 10℃ 의 두 배 덥지는 않다 |
| 비율척도 | + 변동계수 | 척도에 따른 제한 없음 | 몸무게 평균 65kg · 표준편차 8kg, 80kg 은 40kg 의 두 배 |
리커트 한 문항은 서열척도지만 실무에서는 평균도 쓰고, 여러 문항 합산 점수는 등간척도처럼 다룹니다. 분포가 치우치거나 이상치가 있으면(소득 등) 평균보다 중앙값이 낫습니다.
07주차 · 중간고사 범위 복습05
식을 풀어 쓴 코드가 주어지면, 안쪽부터 읽어 무엇을 구하는지 알아낸 뒤 같은 값을 내는 함수를 씁니다.
| 풀어 쓴 코드 | 안쪽부터 읽으면 | 함수 하나 |
|---|---|---|
| sum(x) / len(x) | 합 ÷ 개수 | np.mean(x) |
| np.mean((x - np.mean(x)) ** 2) | 편차 → 제곱 → 평균 | np.var(x) |
| np.sqrt(np.mean((x - np.mean(x)) ** 2)) | 분산 → 제곱근 | np.std(x) |
| np.sort(x)[len(x) // 2] | 정렬 → 가운데 (개수가 홀수) | np.median(x) |
바꾼 뒤 셀을 실행해 위아래 값이 같은지 확인하면 틀렸는지 바로 압니다.
07주차 · 중간고사 범위 복습06
문제 문장에서 상황을 읽고 어느 분포인지, 인자에 무엇을 넣을지 정합니다.
| 문장에 이런 말이 있으면 | 분포 | 코드 |
|---|---|---|
| n 번 해서 정확히 k 번 성공 | 이항 | stats.binom(n, p).pmf(k) |
| k 번째에 처음으로 성공 | 기하 | stats.geom(p).pmf(k) |
| 평균 λ 건 일어나는 곳에서 정확히 k 건 | 포아송 | stats.poisson(λ).pmf(k) |
| 한 번 해서 성공할 확률 | 베르누이 | stats.bernoulli(p).pmf(1) |
07주차 · 중간고사 범위 복습07
각 상황의 분포를 고르고 scipy.stats 로 확률을 구하세요.
p1 = { }
p2 = { }
p3 = { }07주차 · 중간고사 범위 복습08
p1 = stats.binom(10, 0.1).pmf(1) # 이항 — 10번 중 1번
p2 = stats.geom(1/6).pmf(3) # 기하 — 세 번째에 처음
p3 = stats.poisson(4).pmf(2) # 포아송 — 평균 4건 중 2건기하 — 앞의 두 번 실패, 세 번째 성공
p1 ≈ 0.387, p2 ≈ 0.116, p3 ≈ 0.147
stats.geom(1/6, 3) 처럼 몇 번째인지를 분포에 넣으면 다른 값이 나옵니다. 분포에는 성공 확률만, 몇 번째인지는 pmf 에 넣습니다.
07주차 · 중간고사 범위 복습09
한 봉지에 들어 있는 사탕 수 X 가 2, 4, 6 중 하나입니다.
| x — 사탕 수(개) | 2 | 4 | 6 |
| P(X=x) — 그 수가 들어 있을 확률 | 0.15 | 0.55 | 0.30 |
여러 값의 확률 — 해당하는 칸을 더한다
기댓값 — 값 × 확률을 모두 더한다
분산 — (값 − 기댓값)² × 확률을 모두 더한다
코드로는 mean = np.sum(x_set * prob), np.sum((x_set - mean) ** 2 * prob) 입니다. x_set 이 윗줄, prob 이 아랫줄입니다.
07주차 · 중간고사 범위 복습10
표나 숫자만 주어지면, 분포를 코드로 정의하지 않고 바로 계산합니다.
prob = np.array([0.2, 1 - (0.2 + 0.3 + 0.1), 0.3, 0.1]) # 빈칸을 코드로
mean = np.sum(x_set * prob)
var = np.sum((x_set - mean) ** 2 * prob)
E_X, V_X = 4, 3
3 * E_X - 2, 3 ** 2 * V_X # E(3X−2), V(3X−2) → (10, 27)숫자만 넣으면 된다
분산 식의 mean 자리에 np.mean(x_set) 을 쓰면 확률을 무시한 평균이 들어가 틀립니다.
07주차 · 중간고사 범위 복습11
다음 주가 중간고사입니다. 07·08장 연속형은 시험 뒤 9·10주차에 배웁니다.
07주차 · 중간고사 범위 복습12