단원 홈

Ⅳ. 데이터 과학 프로젝트4차시

V자를 찾았다,
그다음은

단서 셋을 가설 셋과 방법 하나로

여덟 해 전력 수요와 기온을 이어 상관계수를 내면 −0.158이 나옵니다. 이 한 숫자를 믿고 "기온이 오르면 수요가 조금 준다"고 적으면 정반대의 자료를 손에 쥔 채 틀린 문장을 쓰게 됩니다. 오늘은 기온 축을 접어 숨은 V자를 펴고, 거기서 캔 단서를 틀릴 수 있는 가설과 새 속성의 식으로 옮겨 적습니다.

  • [12데과04-02]
  • 50분네 정거장
  • 새 도구pivot_table · plt.annotate
  • 자료전력 2,922일 × 24칸 · 기상 5지점 · 공휴일 145일
Ⅳ 단원 지도4 / 11차시
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11

학습 목표

  1. 개념에서

    상관계수 한 숫자가 V자를 어떻게 지우는지 말하고, 구간과 쪼개기로 단서를 캘 수 있다.

  2. 손으로

    두 표를 날짜로 잇고 새 속성(접은 기온)을 만들어, 날 유형과 달×시각으로 단서 셋을 뽑을 수 있다.

  3. 확인에서

    단서를 '만약 ~라면 ~가 보여야 한다'는 가설과 '이름 = 식'인 새 속성으로 옮겨 쓸 수 있다.

1
여는 장면 · 4분

보고서 한 줄 — "기온이 오르면 전력 수요는 조금 줄어든다"

3차시에서 우리는 여덟 해치 전력 수요 표를 한 바퀴 둘러보았습니다. 이번에는 거기에 기온을 이어 붙입니다. 두 열을 나란히 놓고 상관계수를 한 번 내면 −0.158. 어느 실습 팀이 이 숫자 하나를 보고 보고서 첫 줄을 이렇게 적었습니다.

숫자만 보면 흠잡을 데가 없어 보입니다. 부호는 음수이고, 크기는 0에 가까우니 "조금"이라는 말도 조심스럽게 골랐습니다. 그런데 같은 두 열로 그림을 한 장 그리면 이야기가 뒤집힙니다.

실습 보고서 · 가상

기온이 오르면 전력 수요는 조금 줄어든다 — 평일 1,977일, 상관계수 −0.158

2018~2025년 전력거래소 시간별 수요와 기상청 다섯 지점 기온 · 이 보고서는 수업을 위해 지어낸 것입니다
표 1보고서가 실은 것실은 숫자 넷과, 싣지 않은 칸 하나
칸값무엇인가
기간2,922일2018-01-01 ~ 2025-12-31
견준 날1,977일토요일·일요일·공휴일을 뺀 평일
상관계수 r−0.158하루 평균 기온과 하루 평균 수요
결론—"기온이 오르면 수요가 조금 줄어든다"
구간별 평균싣지 않음가려 둠

상관계수는 한 숫자입니다. 1,977개의 점을 하나로 줄이는 동안 무엇이 빠져나갔는지는 이 표가 말해 주지 않습니다. 자료: 전력거래소 시간별 전국 전력수요량(2018~2025) · 기상청 종관기상관측(ASOS) 일자료 다섯 지점 — 3정거장 코드 ②가 찍는 값과 같다

가려 둔 칸을 엽니다. 같은 1,977일을 기온 3℃ 구간으로 묶어 구간마다 평균 수요를 낸 그림입니다.

그림 1보고서가 싣지 않은 그림 — V자평일 1,977일 · 3℃ 구간 15칸 · 주황 막대가 가장 낮은 구간
6065707580−10010203061138801281921701591891771782282251712515~18℃ 60,088MW177일 · 가장 낮은 구간79,09675,896평일 1,977일 · 기온 3℃ 구간별 하루 평균 수요하루 평균 기온(℃) · 세로는 하루 평균 수요(천 MW) · 막대 위 숫자는 그 구간의 날 수 6065707580−10010203015~18℃ 60,088MW177일79,09675,896평일 1,977일 · 기온 3℃ 구간별 하루 평균 수요하루 평균 기온(℃) · 세로는 하루 평균 수요(천 MW)

왼쪽 팔은 난방, 오른쪽 팔은 냉방입니다. 추워도 더워도 수요가 늘고, 가장 적게 쓰는 날은 15~18℃인 날입니다. "기온이 오르면 준다"는 말은 V자의 왼쪽 절반에서만 맞습니다. 자료: 원장 실측 — 3정거장 코드 ②가 찍는 값과 같다(가장 낮은 구간 15~18℃ · 60,088MW · 177일)

먼저 예측

보고서의 한 줄은 어디서 틀렸을까요? 그리고 같은 자료로 어떻게 고쳐 쓰겠습니까? 한 문장으로 적어 두세요. 3정거장 실험실과 4정거장 확인 문제에서 이 문장을 다시 꺼내 맞대어 봅니다.

어디서 접을까
−12℃1033℃
접으면 어떤 모양
01427℃
체크포인트 1

한 숫자(−0.158)와 한 그림(V자)이 같은 자료에서 나왔다는 것을 보았고, 보고서를 어떻게 고쳐 쓸지 한 문장 적어 두었다.

다음 정거장 · 개념 6분 →
2
개념 · 6분

한 숫자가 숨긴 것, 그리고 단서를 가설로 바꾸는 길

2-1상관계수가 재는 것은 '직선'뿐이다

상관계수 r은 두 열이 한 직선 위에 얼마나 가지런히 놓였는지를 −1에서 +1 사이의 한 숫자로 잰 것입니다. 직선이 오른쪽 위로 가면 +, 오른쪽 아래로 가면 −, 흩어져 있으면 0 가까이입니다.

V자에는 직선이 둘 있습니다. 왼쪽 팔은 내려가고(−) 오른쪽 팔은 올라갑니다(+). 한 직선만 재는 자로 둘을 함께 재면 두 몫이 서로 지웁니다. 실제로 18℃에서 갈라 r 을 만드는 몫을 따로 더해 보면 추운 쪽이 −0.315, 더운 쪽이 +0.156이고, 둘을 합한 것이 바로 −0.158입니다.

그러니 −0.158은 "관계가 약하다"는 뜻이 아닙니다. "이 자로는 안 잡힌다"는 뜻입니다. 관계는 오히려 아주 셉니다 — 다만 직선이 아닌 모양으로 셉니다.

규칙한 숫자 요약을 보고할 때는 그 숫자가 재지 못하는 모양을 함께 적는다.

2-2축을 접으면 펴진다 — 새 속성 짓기

자를 바꾸는 대신 축을 바꿉니다. 기온 축의 어느 자리에 접는 선을 하나 긋고, "그 선에서 얼마나 떨어졌는가"를 새 가로축으로 삼는 것입니다. 종이의 왼쪽 절반을 그 선에서 접어 오른쪽에 포개는 셈이지요.

이렇게 만든 열에 이름을 붙입니다 — 접은 기온. 식은 한 줄입니다.

새 속성접은 기온 = |기온 − c|  (c = 접는 선을 놓은 자리, ℃)

접는 자리 c 를 옮겨 가며 r 을 다시 재 보면, 자료를 한 줄도 고치지 않았는데 r 이 −0.158에서 +0.854까지 올라갑니다(c = 16℃). 0.5℃ 눈금으로 더 촘촘히 찾으면 15.5℃에서 0.858이 꼭대기입니다.

이것이 특성 공학, 곧 가진 열로 새 열을 지어 문제를 다시 쓰는 일입니다. 오늘 지은 '접은 기온'은 5차시에서 냉방도일·난방도일이라는 제 이름을 얻습니다.

r 의 속두 몫이 서로 지운다
−0.315+0.156추운 쪽더운 쪽합 −0.158
추운 쪽 −0.315더운 쪽 +0.156

자료: 원장 실측 — r 의 분자를 날마다의 몫으로 쪼개 18℃에서 가른 값

그림 2접는 자리를 옮기면 r 이 어떻게 달라지나가로 = 접는 선을 놓은 자리 c · 세로 = r(접은 기온, 하루 평균 수요)
−0.20.20.61.0접기 전 r = −0.1580.497100.689120.825140.854160.776180.641200.4952215.5℃ · 0.8580.5℃ 눈금으로 찾은 꼭대기접는 자리 c 를 옮기면 r 이 어떻게 달라지나접는 자리 c(℃) · 세로는 r(접은 기온, 하루 평균 수요) −0.20.20.61.0접기 전 r = −0.1580.497100.689120.825140.854160.776180.641200.4952215.5℃ · 0.858접는 자리 c 를 옮기면 r 이 어떻게 달라지나접는 자리 c(℃) · 세로는 r(접은 기온, 하루 평균 수요)

접는 자리를 잘못 잡으면(10℃·22℃) r 이 0.5 언저리로 내려앉습니다 — 새 속성은 식만이 아니라 상수까지가 속성입니다. 꼭대기가 15.5~16℃에 오는 것은 그림 1의 바닥(15~18℃)과 같은 자리를 가리킵니다. 자료: 원장 실측 — 코드 ②의 반복문이 찍는 일곱 줄과 같은 값(15.5℃는 0.5℃ 눈금으로 따로 잰 값)

같은 두 열 · 축만 바꿨다
−0.158기온 그대로
→
+0.85416℃에서 접은 뒤
한 번 접기0.858포개기0.881

더 손보면 0.881까지 간다 — 더운 팔을 1.8배로 늘였을 때(3정거장 실험실).

V 의 바닥과 왼쪽 끝
60,08815~18℃ 평균(MW)
vs
79,096−12~−9℃ 평균(MW)
15~18℃60,088−12~−9℃79,096

바닥과 왼쪽 끝의 차이가 19,008MW — 한 숫자로 줄이면 이 폭이 통째로 사라진다.

2-3쪼개 보기 — 무엇을 붙들고 무엇으로 가르나

수요를 움직일 만한 것은 기온만이 아닙니다. 요일 · 공휴일 · 명절 · 계절 · 시각이 함께 움직입니다. 그래서 두 번째 단서를 캘 때는 먼저 하나를 붙들어 고정하고 다른 하나로 가릅니다.

여기서는 기온을 18~24℃로 붙들어 계절을 고정한 뒤, 날 유형으로 갈랐습니다.

표 2기온을 18~24℃로 붙들고 날 유형으로 가르면여덟 해 632일 · 평일을 기준(0.0%)으로
날 유형하루 평균 수요날 수평일 대비
평일62,819 MW407일+0.0%
토요일56,218 MW94일−10.5%
일요일·공휴일52,388 MW131일−16.6%

기온을 붙들지 않고 모든 날을 그냥 견주면 계절이 섞입니다 — 명절은 초가을과 한겨울에 몰려 있고, 그 계절의 기온이 날 유형 차이인 척하게 됩니다. 자료: 원장 실측 — 3정거장 코드 ③이 찍는 세 줄과 같은 값(407 + 94 + 131 = 632일)

붙드는 방법은 하나가 아닙니다. 기온을 아예 쓰지 않고 같은 주 안에서만 평일과 견주는 길도 있습니다. 그렇게 재면 토요일 −10.3%, 일요일·공휴일 −15.7%(2018~2023)로 위 표와 거의 같은 값이 나옵니다.

서로 다른 두 길이 같은 답을 내놓는 것 — 이것이 단서를 믿을 만하게 만드는 가장 값싼 방법입니다.

Ⅱ-10 에서 가져옴두 표를 날짜라는 열쇠로 잇고, 이은 표를 구간으로 쪼개어 꺾이는 자리를 찾는 일 — 오늘은 그 위에 축을 접는 일을 얹습니다.

같은 기온(18~24℃)인데
62,819평일(MW)
vs
52,388일·공휴일(MW)
평일62,819일·공휴일52,388

기온이 같아도 10,431MW가 다르다 — 달력이 기온만큼 일한다.

2-4단서를 가설로, 가설을 방법으로

단서는 아직 방법이 아닙니다. 단서가 방법이 되려면 틀릴 수 있는 문장을 거쳐야 합니다.

나쁜 예 — "여름에는 더위 때문에 수요가 는다." 어떤 결과가 나와도 이 말을 틀렸다고 할 수가 없습니다. 늘면 맞았다 하고, 안 늘면 "그해는 특별했다"고 하면 그만입니다. 아무것도 금지하지 않는 문장은 아무것도 말하지 않습니다.

좋은 예 — "만약 기준 기온 위에서 1℃ 오를 때마다 수요가 일정하게 는다면, 기준 위 3℃ 구간의 막대가 같은 폭으로 올라야 한다." 이 문장은 무엇이 나오면 자기가 틀리는지를 미리 말합니다. 폭이 들쭉날쭉하거나 어느 기온부터 급해지면 틀린 것입니다.

규칙가설은 '만약 ~라면 ~가 보여야 한다' 꼴로 쓰고, 무엇이 나오면 틀리는지를 함께 적는다.

그리고 마지막 한 걸음 — 찾은 자료로 확인하지 않습니다. 무늬를 먼저 보고 나서 그 무늬를 과녁으로 그리면, 우연히 생긴 무늬도 "확인됐다"가 됩니다. 탐색에 쓰지 않은 기간(예: 마지막 두 해)이나 다른 자료를 미리 떼어 두었다가 거기서 다시 나오는지 봅니다.

단서를 방법으로 바꾸는 네 칸 — 차례대로

  1. 단서데이터에서 캔 무늬 하나 — 숫자와 함께 적는다(예: 15~18℃ 60,088MW)
  2. 가설'만약 ~라면 ~가 보여야 한다' — 무엇이 나오면 틀리는지 함께
  3. 확인 방법어느 표를 어떻게 볼 것인가 — 그리고 탐색에 쓰지 않은 자료를 떼어 둔다
  4. 새 속성가설을 잴 새 열 — 이름 = 만드는 식, 그리고 그 식에 쓰는 열이 실제로 표에 있는가

오늘 3정거장에서 단서 셋을 캐고, 그 가운데 하나를 실험실의 봉투에 걸어 탐색에 쓰지 않은 두 해로 시험합니다.

셋째 단서는 기온이 아니라 시각에 있습니다. 여덟 해를 달마다 접어 스물네 칸의 평균을 내면, 하루에서 가장 높은 칸이 계절을 따라 움직입니다.

표 3달마다 봉우리는 몇 시 칸에 오나2018~2025년 전체 · 한낮 = 12시 칸과 13시 칸의 순위 평균(24칸 중)
달봉우리 칸한낮 순위읽는 법
1월10시13.0위겨울 — 오전에 봉우리
2월9시13.0위겨울 — 오전에 봉우리
3월20시16.5위봄 — 저녁으로 옮겨 간다
4월20시17.0위봄 — 한낮이 가장 낮게 밀린다
5월20시15.5위봄 — 저녁
6월18시12.0위여름으로 넘어가며 앞당겨진다
7월17시10.0위여름 — 한낮 순위가 가장 높다
8월18시10.0위여름 — 한낮 순위가 가장 높다
9월19시11.5위늦여름
10월19시16.5위가을 — 다시 한낮이 밀린다
11월18시16.5위가을
12월18시12.5위겨울

봉우리가 겨울 오전(1월 10시 칸) → 여름 오후·저녁(7월 17시 · 8월 18시 칸) → 봄·가을 저녁(3~5월 20시 칸)으로 돌아다닙니다. 눈에 걸리는 것은 봄의 한낮입니다 — 3~5월의 한낮 순위 15.5~17위는 7·8월의 10위보다 한참 낮습니다. 왜 봄에만 한낮이 이렇게 비켜 있을까가 8차시의 수수께끼입니다. 자료: 원장 실측 — 3정거장 코드 ③의 pivot_table 이 찍는 열두 줄과 같은 값

체크포인트 2

한 숫자가 숨긴 것(V자) · 붙들고 가르기(날 유형) · 움직이는 봉우리(달×시각) — 단서 셋의 자리를 알았다. 이제 직접 캐서 가설로 옮긴다.

다음 정거장 · 손으로 30분 →
3
손으로 · 30분

기온을 접어 보고, 단서 셋을 계획서로 옮긴다

오늘의 장비

pivot_table — 긴 목록을 표로 세우고, plt.annotate — 그림에 찾은 것을 적는다

3차시에서는 groupby(["월", "시각"])으로 달과 시각을 묶어 288줄짜리 긴 목록을 얻었습니다. 오늘은 같은 묶음을 12행 × 24열 표로 세웁니다. 표로 서면 줄마다 "가장 높은 칸"과 "순위"를 바로 물을 수 있어요.

부르는 모양

판 = 긴.pivot_table(index="월",
                    columns="시각",
                    values="수요")
판.loc[8].idxmax()      # 8월의 봉우리 칸
판.loc[8].rank(ascending=False)

오늘 쓰는 함수 넷

pivot_table
행·열·값을 정해 표로 — index · columns · values
idxmax
가장 큰 값이 어느 칸인지(값이 아니라 이름)
rank
한 줄 안에서 몇 등인지 — ascending=False면 큰 것이 1위
plt.annotate
그림 위 한 자리에 화살표와 글자를 단다

groupby 와 다른 셋

  1. 모양이 표다긴 목록 288줄 → 12행 × 24열 — 한 달이 한 줄
  2. 줄마다 물을 수 있다idxmax·rank를 줄 단위로 바로
  3. 빈칸을 만든다없는 조합은 NaN으로 남아 눈에 보인다

대가 — pivot_table은 말없이 평균을 냅니다(aggfunc 기본값이 평균). 세려고 했는데 평균이 나오는 사고가 여기서 납니다.

1

전력 · 기상 · 공휴일 — 세 표를 날짜로 잇는다

3분

전력 표는 하루 한 줄이고, 기상 표는 하루 다섯 줄입니다(서울 108 · 대전 133 · 대구 143 · 광주 156 · 부산 159). 이 둘을 날짜로 그냥 이으면 행 수가 어떻게 될까요? 잇기 전과 같아야 할까요, 달라져야 할까요 — 까닭과 함께 짐작해 두세요.

기본 빈칸 ①에 두 표를 잇는 열쇠를 채우고 ▶ 실행합니다. 코드는 3차시에서 한 그대로 빈 줄을 지우고 겹친 날을 걸러 하루 평균을 만든 뒤, 기상 다섯 줄을 groupby로 먼저 평균 내고 잇습니다.

도전 기상 표를 평균 내는 두 줄 날씨 = 날씨.groupby("날짜", as_index=False) · 날씨 = 날씨[["평균기온", "일조"]].mean()을 날씨 = 날씨[["날짜", "평균기온", "일조"]] 한 줄로 바꿔 보세요. 행 수가 14,610이 됩니다 — 하루가 다섯 번 들어간 표입니다(2,922 × 5). 평일도 1,977이 아니라 9,885로 부풀어요.

탐구 다섯 지점을 그냥 평균 내는 것이 늘 옳을까요? 전국 수요를 설명하려는 것이라면 사람이 많은 곳의 기온에 더 큰 몫을 주어야 하지 않을까요(더 알아보기 ①).

이은 표의 행 수가 잇기 전과 는 것은, 기상 표의 한 날이 였다는 뜻이다. 만약 행 수가 배로 늘었다면 를 빠뜨린 것이다.

확인 문제 1에 적어 제출 →
2

V 접기 — 축을 접어 새 속성을 짓는다

11분

여는 장면에 적어 둔 내 예측입니다. 실험실에서 직접 접어 본 뒤 이 문장을 다시 읽어 보세요.

실험실에서 평일 1,977일을 점으로 펼치고, 기온 축을 한 자리에서 접습니다. 먼저 예측 넷을 고르고 잠가야 종이 귀가 잡힙니다 — 종이 귀란 판 왼쪽 아래의 손잡이로, 이것을 오른쪽으로 끌면 기온 축의 왼쪽 절반이 접는 선을 넘어 오른쪽으로 넘어옵니다. 도전 셋을 풀면 카드가 스스로 닫힙니다.

시뮬레이터

V 접기

한 숫자가 숨긴 V를 어떻게 새 속성으로 펴나 — 종이 귀를 끌면 가로축 자체가 바뀐다

  1. 1예측 넷을 고르고 잠근다
  2. 2종이 귀를 오른쪽으로 끌어 접고, 접는 자리를 옮겨 r 을 키운다
  3. 3더운 팔 ↔ 를 끌어 두 팔을 포갠다
㉠ r = −0.158 이 말하는 관계는
㉡ r 이 가장 커지는 접는 자리에 핀
㉢ 접으면 두 팔은
㉣ 더위 1℃ = 추위 몇 ℃ 몫
예측을 잠근다
접기
봉투 — 가설을 걸고 확인 해를 연다
다시
평일 1,977일 — 기온과 하루 평균 수요예측 넷을 고르고 잠그면 종이 귀가 잡힙니다

접은 기온 = 접는 선 왼쪽이면 (접는 자리 − 기온), 오른쪽이면 배율 × (기온 − 접는 자리) · r = 그 접은 기온과 하루 평균 수요의 상관계수(평일 1,977일) · 엇갈림 = 같은 거리 2℃ 칸에서 두 팔 평균이 벌어진 크기(칸마다의 차를 절댓값으로 평균)

r — 기온 그대로−0.158
접는 자리—℃
더운 팔 배율1.00배
엇갈림—MW
금지 칸0칸
점수0
도전 1

종이 귀를 끌어 접고, 접는 자리를 옮겨 r ≥ 0.850 을 넘겨라. 어느 자리에서 가장 커지는가?

도전 2

두 팔이 포개지지 않는다. 더운 팔 ↔ 를 늘여 r ≥ 0.880 을 넘겨라 — 그때의 배율이 더위 1℃가 추위 몇 ℃ 몫인지 말해 준다.

도전 3

여름 주 달력에 가설을 걸어라 — 금지 띠에 "이 값이 나오면 내 가설은 틀렸다" 칸을 칠하고 봉인한 뒤 확인 해 둘을 열어라.

자료: 쪽 안에 실은 하루 표 2,922줄 — 날짜 · 하루 평균 기온(다섯 지점 평균) · 하루 평균 수요(24칸 평균) · 날 유형. 코드 ①이 만드는 표와 같은 값이고, 실험실은 그 표에서 r · 구간 평균 · 주 평균을 그 자리에서 다시 셈한다(숫자를 박아 두지 않았다). 여름 주 달력은 같은 표의 평일만으로 ISO 주마다 평균을 내어 앞뒤 주와 견준 값이다. 자료: 한국전력거래소, 시간별 전국 전력수요량(2018~2025), 공공데이터포털(15065266), 이용허락범위 제한 없음 · 기상청, 종관기상관측(ASOS) 일자료(2018~2025), 기상자료개방포털 — 다섯 지점 일 단위로 가공 · 공휴일은 「관공서의 공휴일에 관한 규정」·임시공휴일 국무회의 의결·「공직선거법」 선거일로 원에듀가 정리

기본 실험실에서 손으로 한 일을 코드 한 줄로 적습니다. 빈칸 ②에 접은 기온을 만드는 식을 채우고 ▶ 실행하세요. 반복문이 접는 자리 c 를 10℃에서 22℃까지 옮기며 r 을 찍고, 이어서 3℃ 구간 그림을 그립니다.

도전 bins=range(-12, 37, 3)을 bins=range(-12, 37, 6)으로 바꿔 보세요. 구간을 6℃로 넓히면 바닥이 12~18℃ · 60,836MW(366일)가 됩니다 — V 는 그대로지만 바닥의 자리가 뭉개집니다. 보고서에 구간 폭을 함께 적어야 하는 까닭이 여기 있습니다(Ⅱ-6의 규칙).

탐구 접는 자리를 0.5℃ 눈금으로 훑으려면 range(10, 23, 2)를 어떻게 바꿔야 할까요? (range는 정수만 셉니다 — 0.5 눈금은 다른 방법이 필요합니다.)

기온을 ℃에서 접으면 r 이 −0.158에서 로 바뀐다. 자료는 고, 바뀐 것은 뿐이다. 그래서 상관계수가 0에 가깝다는 말은 를 뜻하지 않는다.

확인 문제 2에 적어 제출 →
3

붙들고 가르기 · 달 × 시각 — 그리고 계획서로

16분

기온을 18~24℃로 붙들어 두면 토요일은 평일보다 몇 % 낮을까요? 일요일·공휴일은요? 그리고 봄 석 달(3·4·5월)의 봉우리는 몇 시 칸에 올까요 — 여름처럼 오후일까요, 아니면 다른 자리일까요?

기본 빈칸 ③에 행과 열을 무엇으로 펼지 채우고 ▶ 실행합니다. 앞부분 [4]는 기온을 18~24℃로 붙들고 날 유형으로 가르고, 뒷부분 [5]는 달 × 시각 표를 세웁니다.

도전 values="수요" 뒤에 aggfunc="count"를 더해 다시 돌려 보세요. 같은 pivot_table이 평균 대신 날 수를 세어 줍니다 — 기본값이 평균이라는 것을 눈으로 확인하는 자리입니다.

탐구 [4]의 18과 24를 바꾸면 세 줄의 차이가 어떻게 달라질까요? 폭을 너무 좁히면 날 수가 줄어 흔들리고, 너무 넓히면 계절이 다시 섞입니다 — 붙드는 폭도 고르는 손입니다.

단서 셋이 모였습니다. 교과서가 왼쪽 절반을 채워 둔 계획서입니다 — 오른쪽 절반은 여러분이 채웁니다.

표 4본보기 분석 계획서 — 교과서가 채운 절반단서는 숫자와 함께 · 가설은 틀릴 수 있게 · 새 속성은 이름 = 식
단서(숫자와 함께)가설 — 만약 ~라면 ~가 보여야 한다확인 방법 · 떼어 둘 자료새 속성 — 이름 = 식
① V 의 바닥
15~18℃ 60,088MW(177일)
왼쪽 끝 79,096 · 오른쪽 끝 75,896
만약 기준 위에서 1℃마다 일정하게 는다면, 기준 위 3℃ 구간의 막대가 같은 폭으로 올라야 한다 구간별 평균 표를 기준 위만 잘라 이웃 칸 차이를 본다 · 2024~2025는 떼어 둔다 냉방도일 = max(0, 기온 − 기준)
난방도일 = max(0, 기준 − 기온)
② 쉬는 날 몫
18~24℃ 날 토요일 −10.5%
일·공휴일 −16.6%(632일)
여러분이 씁니다 여러분이 씁니다 여러분이 씁니다
③ 움직이는 봉우리
1월 10시 → 8월 18시 칸
봄 20시 칸 · 한낮 15.5~17위
여러분이 씁니다 여러분이 씁니다 여러분이 씁니다

①의 새 속성 두 줄이 5차시의 방법 ①이 되고, ③에서 나오는 '한낮 비율' 같은 속성이 8차시의 잣대가 됩니다. 구상한 것이 실제로 쓰이는 길입니다. 자료: 단서 셋의 숫자는 모두 위 코드 ②·③이 찍는 값이다

우리 팀이 고른 단서는 이고, 그 단서가 참이라면 가 보여야 한다. 그것을 재려고 라는 새 속성을 만들고, 확인용으로 를 떼어 둔다.

확인 문제 6에 우리 팀 계획서를 적어 제출 →
체크포인트 3

세 표를 날짜로 이었고, 축을 접어 새 속성을 지었고, 붙들고 갈라 단서 셋을 캤고, 그 가운데 하나를 봉투에 걸어 탐색에 쓰지 않은 두 해로 시험했다.

다음 정거장 · 정리·확인 10분 →
4
정리·확인 · 10분

오늘의 탐험 일지

  1. 찾은 것

    같은 두 열이 −0.158이 되기도 하고 +0.854가 되기도 했다 — 바뀐 것은 자료가 아니라 축이다.

  2. 도구의 한계

    상관계수는 직선 하나만 잰다. V처럼 두 팔이 반대로 기운 모양에서는 두 몫(−0.315 · +0.156)이 서로 지워 '관계 없음'처럼 보인다.

  3. 보고의 규칙

    단서는 숫자와 함께, 가설은 '만약 ~라면 ~가 보여야 한다'로, 확인은 탐색에 쓰지 않은 자료로.

✍️ 문제마다 답을 쓰고 제출하기를 누르세요. 제출하면 모범 답안이 열리고, 제출한 답은 선생님께 전달됩니다.

1. 코드 ①에서 세 표를 이은 뒤 행 수가 2,922행으로 잇기 전과 같았다. 이것이 확인해 준 것을 쓰시오. 그리고 기상 표를 평균 내지 않고 이으면 행 수가 몇이 되며 왜 그렇게 되는지 쓰시오.
📖 모범 답안

행 수가 그대로라는 것은 열쇠(날짜)가 두 표에서 모두 하루에 한 번씩만 나온다는 뜻이다. 기상 표는 원래 하루에 다섯 줄(서울 108 · 대전 133 · 대구 143 · 광주 156 · 부산 159)인데, groupby("날짜")로 먼저 평균을 내어 하루 한 줄로 만들었기 때문에 붙어도 늘어나지 않는다. 함께 찍힌 기온이 빈 행 0은 2,922일 가운데 기온을 못 받은 날이 하나도 없다는 뜻이다 (how="left"라 못 받았으면 빈칸으로 남는다).

평균을 내지 않고 이으면 14,610행(= 2,922 × 5)이 된다. 날짜 하나에 오른쪽 표의 다섯 줄이 모두 붙어 같은 날이 다섯 번 들어가기 때문이다. 날 유형도 평일 1,977 → 9,885로 다섯 배가 된다. 이 표로 평균을 내면 사람 수가 아니라 지점 수를 세게 되고, 수요는 다섯 번씩 중복 계산된다.

2. "기온이 오르면 전력 수요는 조금 줄어든다(r = −0.158)"는 보고서 한 줄을 숫자 둘 이상을 넣어 고쳐 쓰시오. 그리고 왜 상관계수가 그런 숫자를 내놓았는지 한 줄 덧붙이시오.
📖 모범 답안

(예) "평일 하루 평균 수요는 15~18℃인 날에 가장 낮고(60,088MW · 177일), 그보다 추워도 더워도 늘어난다 — −12~−9℃는 79,096MW, 30~33℃는 75,896MW다. 곧 기온과 수요는 V자로 이어져 있다."

상관계수가 −0.158이 된 까닭 — 상관계수는 직선 하나만 잰다. V에는 기울기가 반대인 팔이 둘이라, 18℃에서 갈라 몫을 더해 보면 추운 쪽 −0.315와 더운 쪽 +0.156이 서로 지워 −0.158이 남는다. 그래서 −0.158은 '관계가 약하다'가 아니라 '이 자로는 안 잡힌다'는 뜻이다. 실제로 기온을 16℃에서 접어 |기온 − 16|으로 바꾸면 같은 두 열의 r 이 +0.854가 된다.

3. 날 유형(평일 · 토요일 · 일요일·공휴일)을 견줄 때 18~24℃인 날끼리만 견준 까닭은 무엇인가? 모든 날을 그냥 견주면 무엇이 섞이는가?
📖 모범 답안

기온(계절)을 고정하려고다. 우리가 알고 싶은 것은 '같은 날씨일 때 달력이 얼마나 일하는가'인데, 기온을 놓아두면 날 유형과 계절이 함께 움직인다. 18~24℃로 붙들어 놓고 보면 632일 안에서 토요일 −10.5%(94일) · 일요일·공휴일 −16.6%(131일)로, 평일 62,819MW(407일)와 견줄 수 있다.

그냥 견주면 쉬는 날이 어느 계절에 몰려 있는지가 날 유형 차이인 척한다. 명절(설·추석)은 한겨울과 초가을에 몰려 있고 여름 휴가철은 8월에 몰려 있어서, '쉬는 날은 수요가 낮다'는 결론 안에 그 계절의 기온이 함께 들어온다.

기온을 아예 쓰지 않는 다른 길도 있다 — 같은 주 안의 평일과만 견주는 것이다. 그렇게 재면 토요일 −10.3% · 일요일·공휴일 −15.7%(2018~2023)로 위와 거의 같은 값이 나온다. 서로 다른 두 길이 같은 답을 내놓는 것이 단서를 믿을 만하게 만드는 값싼 방법이다.

4. 가설 'H1 기준 기온보다 더울수록 수요가 는다'를 틀릴 수 있게 다시 쓰시오. 그리고 어떤 결과가 나오면 그 가설이 틀린 것인지 쓰시오.
📖 모범 답안

(예) "평일에서, 기준 기온(18℃) 위로는 3℃ 구간이 하나 오를 때마다 평균 수요가 거의 같은 폭으로 올라야 한다."

틀리는 결과 — ① 구간이 올라가도 평균이 제자리이거나 오히려 내려간다, ② 오르기는 하는데 폭이 들쭉날쭉하다(어느 기온부터 갑자기 급해지거나 완만해진다).

실제로 우리 자료를 보면 기준 18℃ 위 다섯 칸의 평균은 60,782 → 64,424 → 69,198 → 74,591 → 75,896MW이고, 칸마다 오른 폭은 +3,642 · +4,774 · +5,393 · +1,305다. 앞 세 칸은 점점 가팔라지고 마지막 칸에서 폭이 확 줄어든다. 그러니 '일정하게'라는 말은 이미 흔들린다 — 다만 마지막 칸(30~33℃)은 25일뿐이라 '가설이 깨졌다'고 말하기 전에 날 수가 적어 흔들린 것은 아닌지를 먼저 봐야 한다.

5. V자를 찾아낸 바로 그 자료로 V자를 "확인했다"고 말하면 무엇이 문제인가? 어떻게 해야 확인이 되는지, 실험실의 봉투에서 본 것을 근거로 들어 쓰시오.
📖 모범 답안

무늬를 먼저 보고 그 자리에 과녁을 나중에 그리는 셈이라, 우연히 생긴 무늬까지 '확인됐다'가 된다. 같은 자료 안에서는 어떤 규칙을 세워도 그 규칙이 맞아떨어지는 자리를 고를 수 있다.

확인이 되려면 찾는 데 쓰지 않은 자료에서 같은 모양이 다시 나와야 한다. 봉투가 한 일이 그것이다 — 탐색 해(2018~2023)에서 '8월 1일이 든 주가 앞뒤 주보다 낮다'를 보고 가설을 세운 뒤, 봉인한 채 확인 해 2024(−7.0%) · 2025(−0.9%)를 열었다. '앞뒤 주보다 3% 넘게 낮다'고 건 가설은 2024에는 살아남지만 2025에서 금이 간다. 같은 자료로 확인했다면 이 금은 영영 보이지 않았을 것이다.

같은 일이 다른 단서에서도 일어난다 — 8월 봉우리 칸은 탐색 해에서 17시였는데 확인 해에서는 19시이고, 봄 평일의 한낮 ÷ 저녁 비도 탐색 0.933에서 확인 0.864로 내려갔다. 살아남은 가설도 이듬해에 다시 시험당한다.

6. 우리 팀의 분석 계획서를 아래 표에 채우시오. 단서는 숫자와 함께, 가설은 '만약 ~라면 ~가 보여야 한다' 꼴로, 새 속성은 '이름 = 만드는 식'으로 쓰고 그 식에 쓰는 열이 실제로 표에 있는지 확인하시오. 가설 하나는 실험실에서 봉투에 건 문장을 그대로 옮겨도 됩니다.
번호단서(숫자와 함께)가설 — 만약 ~라면 ~가 보여야 한다확인 방법 · 떼어 둘 자료새 속성 — 이름 = 식
①
②
③
📖 모범 답안

① 단서 V 의 바닥 — 평일 15~18℃ 60,088MW(177일), 왼쪽 끝 −12~−9℃ 79,096MW, 오른쪽 끝 30~33℃ 75,896MW.
가설 만약 기준 위에서 1℃마다 일정하게 는다면, 기준 위 3℃ 구간의 막대가 같은 폭으로 올라야 한다.
확인 방법 기준 위 구간만 잘라 이웃 칸 차이를 본다 · 2024~2025는 떼어 둔다.
새 속성 냉방도일 = max(0, 기온 − 18) · 난방도일 = max(0, 18 − 기온) — 쓰는 열은 평균기온 하나.

② 단서 18~24℃인 날에서 토요일 −10.5%(94일) · 일요일·공휴일 −16.6%(131일), 평일 62,819MW(407일).
가설 만약 쉬는 날이라서 낮은 것이라면, 기온을 어느 구간으로 붙들어도 토요일과 일요일·공휴일의 몫이 비슷하게 남아야 한다.
확인 방법 기온 구간을 12~18℃ · 24~30℃로 바꿔 같은 표를 다시 낸다 · 같은 주 평일과 견주는 길로도 재어 두 길을 맞댄다.
새 속성 쉬는날 = (일요일이거나 공휴일이면 1, 아니면 0) · 토요일 = (토요일이면 1, 아니면 0) — 쓰는 열은 날짜와 공휴일.

③ 단서 봉우리 칸이 1월 10시 → 8월 18시로 옮겨 가고, 봄 석 달은 20시 칸이며 한낮 순위가 15.5~17위로 밀린다.
가설 만약 봄 한낮이 무언가에 깎이는 것이라면, 3~5월의 한낮 ÷ 저녁 비가 해마다 더 낮아져야 한다.
확인 방법 해마다 그 비를 내어 줄 세운다 · 2024~2025는 떼어 둔다(탐색 0.933 → 확인 0.864).
새 속성 한낮비율 = 한낮(12·13시 칸) 평균 ÷ 저녁(20·21시 칸) 평균 — 쓰는 열은 시각 칸 넷.

채점의 눈 — ㉠ 단서에 숫자와 날 수가 붙어 있는가, ㉡ 가설이 무엇이 나오면 틀리는지를 말하는가, ㉢ 확인 방법에 떼어 둘 자료가 적혀 있는가, ㉣ 새 속성의 식에 쓰인 열이 실제로 표에 있는가. 넷 가운데 하나라도 비면 그 줄은 아직 계획서가 아니라 느낌이다.

+
더 알아보기

탐험 밖의 이야기 셋

한 날에 다섯 줄 → 한 줄서울 108대전 133대구 143광주 156부산 159다섯을 더해 5로 나눈다14,610줄 → 하루 한 줄 2,922줄다섯이 한 몫씩 — 같은 크기사람이 많은 곳에더 큰 몫을 준다면?여덟 해 동안 잰 기온의 폭다섯 지점 평균−11.432.0서울만(108)−14.933.7평균은 양 끝을 깎는다 — 같은 여덟 해인데 폭이 5.2℃ 좁다(43.4 대 48.6℃)
방법 더 깊이

다섯 지점의 평균은 누구의 기온인가

오늘 우리는 서울 · 대전 · 대구 · 광주 · 부산 다섯 지점의 기온을 그냥 더해 5로 나눴습니다. 계산은 간단하지만, 이 한 줄에는 조용한 가정이 하나 들어 있습니다 — 다섯 도시가 전국 전력 수요에 똑같은 몫으로 기여한다는 가정입니다.

실제로는 그렇지 않습니다. 에어컨과 난방기의 수는 사람 수와 공장 수를 따라가니, 전국 수요를 설명하려는 기온이라면 사람이 많고 전기를 많이 쓰는 곳의 기온에 더 큰 몫을 주는 편이 이치에 맞습니다. 이렇게 지점마다 다른 몫을 주어 내는 평균을 가중 평균이라 하고, 수요 예측에서는 인구나 전력 사용량을 그 몫으로 삼습니다.

평균은 또 하나를 조용히 합니다 — 양 끝을 깎습니다. 같은 여덟 해인데 다섯 지점 평균의 기온 폭은 −11.4 ~ 32.0℃인 반면, 서울 한 곳만 보면 −14.9 ~ 33.7℃로 5.2℃ 더 넓습니다. 다섯 도시가 동시에 가장 추운 날은 드물기 때문입니다. 그래서 가장 추운 날의 난방 수요를 설명하려는 모델은 평균 기온만으로는 잘 안 맞을 수 있습니다. 어떤 기온을 쓸지는 계산이 아니라 설계입니다.

도해: 다섯 지점의 자리는 모식도이고, 아래 두 띠의 값은 이 교과서가 쓰는 자료의 실측 폭이다 (다섯 지점 평균 −11.4~32.0℃ · 서울 108 −14.9~33.7℃, 2018~2025). · 출처: 기상청 종관기상관측(ASOS) 일자료(2018~2025), 기상자료개방포털

V 의 두 팔 — 왼팔이 더 높다79,096MW−12~−9℃ (6일)75,896MW30~33℃ (25일)3,200MW평일 3℃ 구간 평균여덟 해에서 가장 높았던 하루 여덟 개1234567891011128월 4날12월 3날1월 1날가로는 달 · 세로는 그날의 하루 평균 수요(80,800~83,400MW)
현장

겨울에도 봉우리가 높은 나라

V자를 보면 무심코 "여름이 제일 세겠지" 하기 쉽습니다. 그런데 우리 자료의 V는 왼팔이 더 높습니다. 가장 추운 칸(−12~−9℃)의 평일 평균이 79,096MW로, 가장 더운 칸(30~33℃)의 75,896MW보다 3,200MW 높습니다.

하루 값으로 봐도 마찬가지입니다. 여덟 해 2,922일 가운데 하루 평균 수요가 가장 높았던 여덟 날은 8월 네 날(2024-08-20의 83,203MW이 1위) · 12월 세 날(2022-12-23의 83,011MW이 2위) · 1월 한 날로 갈립니다. 여름과 겨울이 거의 반반인 셈이지요.

까닭으로 자주 꼽히는 것이 전기 난방입니다. 난방은 원래 도시가스나 등유가 많이 맡던 일인데, 전기 난방기가 늘면서 겨울에도 전기 수요가 크게 오릅니다. 반대로 냉방은 거의 전부 전기가 맡습니다 — 그래서 같은 1℃라도 더위 쪽이 전기에 더 직접 얹힙니다. 실험실에서 더운 팔을 1.8배로 늘여야 두 팔이 포개졌던 것이 이 이야기의 숫자판입니다.

이것은 나라마다 다릅니다. 난방을 가스나 지역난방이 대부분 맡는 나라에서는 V의 왼팔이 짧고, 냉방이 흔하지 않은 나라에서는 오른팔이 거의 없습니다. V의 모양 자체가 그 나라의 살림을 그린 그림입니다.

도해: 위 막대 둘은 평일 3℃ 구간 평균(−12~−9℃ 6일 · 30~33℃ 25일), 아래 점 여덟은 2,922일 가운데 하루 평균 수요 상위 여덟 날이다. 모두 원장 실측값. · 출처: 한국전력거래소, 시간별 전국 전력수요량(2018~2025), 공공데이터포털(15065266)

미리 내놓은 두 숫자, 그리고 한 번의 관측가린 해별의 참 자리지구에서 본 자리— 해 곁을 지나며 휘었다휘는 각 — 관측 전에 적어 둔 두 값빛을 알갱이로 본 셈0.87″일반 상대성 이론1.75″두 값이 갈라지는 자리 — 관측이 어느 쪽도 고르지 못하면 둘 다 살아남는다
역사

틀릴 수 있어야 과학이다 — 1919년의 일식

오늘 우리가 쓴 가설의 꼴 — '만약 ~라면 ~가 보여야 한다' — 은 과학사에서 가장 유명한 시험 하나와 같은 모양입니다.

아인슈타인의 일반 상대성 이론은 무거운 것이 시공간을 휘게 하므로 태양 곁을 스치는 별빛도 휜다고 했고, 얼마나 휘는지를 숫자로 미리 내놓았습니다 — 약 1.75초각(1초각은 1도의 3,600분의 1). 빛을 알갱이로 보고 뉴턴 역학으로 셈한 값은 그 절반인 약 0.87초각이었습니다. 두 숫자가 다르다는 것이 중요합니다. 무엇이 나오면 어느 쪽이 틀리는지가 관측 전에 정해져 있었으니까요.

1919년 5월 29일 개기일식 때 영국의 관측대가 아프리카 서해안 프린시페섬과 브라질 소브랄로 떠났습니다. 해가 가려진 몇 분 동안 해 곁의 별들을 찍어, 밤하늘에서 찍은 같은 별들의 자리와 맞대어 보는 것이었지요. 결과는 1.75초각 쪽의 손을 들어 주었고 아인슈타인은 하룻밤 사이에 유명해졌습니다. 다만 관측 오차가 커서 판정이 정말 충분했는지를 둘러싼 논쟁은 뒤에도 오래 이어졌습니다.

철학자 칼 포퍼는 이 일을 두고 과학과 과학이 아닌 것을 가르는 기준을 반증 가능성으로 삼았습니다 — "무엇이 나오면 내가 틀린다"를 말할 수 없는 이론은 아무리 그럴듯해도 시험당하지 않는다는 것입니다. 여러분이 계획서에 적은 가설도 같은 잣대를 받습니다. 금지하는 것이 없는 문장은 아무것도 말하지 않습니다.

도해: 별빛이 휘는 모습은 모식도이고, 아래 두 막대는 관측 전에 발표돼 있던 두 예측값(약 0.87초각 · 약 1.75초각)을 같은 눈금에 그린 것이다. · 1919년 5월 29일 개기일식 · 프린시페섬과 소브랄 관측 · 반증 가능성은 칼 포퍼 『과학적 발견의 논리』