시뮬레이터는 누군가 미리 만들어 둔 것입니다. 이제 코드로 갑니다.
아래 프로그램은 오늘 본 여섯 장면을 한 번에 다 찍어 줍니다 —
열 명의 상관계수, 200번 되풀이 실험, 아이스크림, 260명 표,
순위대로 고르기, 그리고 급식.
다만 네 곳이 비어 있습니다. 그 넷을 채워야 돌아갑니다.
그중 둘은 상관계수 식의 분자와 분모예요. 개념 1에서 손으로 따라간 바로 그 식입니다.
⚠️ 빈칸 네 곳 (?????는 일곱 군데)
- ①
corr()의 분자 — 두 값이 ‘함께’ 벗어난 정도.
개념 1의 표에서 (x−x̄)(y−ȳ) 세로줄을 만들던 그 자리입니다.
- ②
corr()의 분모 두 줄 — 각자 벗어난 정도.
제곱합에 ** 0.5를 씌우면 제곱근입니다.
- ③ 【3】의 잔차 두 줄 — ‘기온으로 설명되지 않고 남은 것’.
실제 값에서 기온으로 예측한 값을 뺍니다.
- ④ 【5】의 정렬 기준 — 관계가 ‘센’ 것부터 줄 세우려면?
부호는 상관없고 크기만 봅니다. 큰 것이 앞에 오게 하세요.
채우지 않고 그냥 실행하면 SyntaxError가 납니다 — 정상입니다.
다 채우고 실행하면 166줄이 찍혀요.
맨 처음 【1】에 +0.97 · +0.16 · +0.99 · +0.16 · +0.01 · −0.31이 나오면
corr()를 제대로 짠 것입니다.
과제 ⑤ 시뮬레이터와 코드를 나란히 놓는다
이 코드의 【5】가 찍어 주는 순위표와, 손으로 ①의 막대 그림을 나란히 놓아 보세요.
열다섯 줄이 같은 차례로 늘어서 있고, r 값도 소수 넷째 자리까지 같아야 합니다.
다르면 둘 중 하나가 틀린 것입니다.
같은 방식으로 【4】의 ‘20명’ 가로줄과 과제 ①의 표를,
【6】의 마지막 표와 과제 ④의 아래 네 줄을 맞춰 보세요.
화면에서 손으로 만든 값과 코드가 찍은 값이 같다는 것을 확인하는 일이
오늘 실습의 마지막 단계입니다.
과제 ⑥ 코드를 부숴 본다
- 【5】의 정렬 기준에서
abs를 빼 보세요(-t[1]).
순위표 아래쪽 차례는 눈에 띄게 바뀝니다 — r이 음수인 난수들이 뒤로 밀려서
3위였던 난수12(−0.2909)가 꼴찌로 갑니다. 그런데 결론은 하나도 달라지지 않아요.
상위 두 개도, 가장 낮은 시험 오차 2.898도 그대로입니다.
왜 그럴까요? 순위표의 위 두 줄 부호를 보면 답이 보입니다.
그리고 어떤 데이터였다면 큰일이 났을지 한 줄로 적으세요.
- 【2】의
TRIALS = 200을 20으로 줄여 보세요.
표의 숫자가 얼마나 흔들리는지 보고, ‘되풀이 횟수’도 표본 크기라는 것을 확인하세요.
- 【1】의
X10에서 뒤 다섯 줄을 지워 다섯 명만 남겨 보세요.
출석번호와 무작위값의 r이 어떻게 바뀌나요? 개념 2의 표와 맞춰 보세요.
ℹ️ 코드 안의 solve · fit은 지금 열어 보지 않아도 된다
이 넷(solve · fit · predict · rmse)은
성능을 재는 자입니다. 최소제곱으로 직선(평면)을 맞추는 코드예요.
회귀는 9차시에서 제대로 배웁니다. 오늘은 ‘특성을 넣고 빼면 성능이 어떻게 되나’만 보면 됩니다.
자를 어떻게 만들었는지는 그때 열어 보세요.