결론과 한계를 함께 전달
90분 안팎
학습 목표
m05 지표 정의와 원본 대조 표를 연결해 질문·근거·한계·다음 확인을 담은 보고서를 작성합니다.
개념
질문에 답하면서 근거의 범위를 제한합니다
분석 보고서는 계산한 모든 수치를 나열하는 문서가 아니라 질문에 대한 판단 근거를 전달하는 문서입니다. 팀장이 비가 오면 통행량이 늘어나는지 물어도 현재 표본이 인과를 입증하지 못하면 관찰한 차이까지 답합니다. 이번 목표는 질문·근거·한계·다음 확인을 짧은 보고서로 묶고 수치가 어떤 파일의 어떤 키에서 나왔는지 추적 가능하게 만드는 것입니다.
우리 입력은 사흘의 두 지역을 만든 합성 표본입니다. 강수와 교통이 모두 있는 네 지역·날짜로 비교합니다. 강수 전체 평균110대와 비강수 전체 평균40대는 이 포함 집합의 관찰 요약입니다. 두 평균의 차이70대를 “강수의 효과”라고 쓰면 자료가 답하지 않은 질문을 대신 결론내리는 것입니다. 지역·요일·계절·도로 구성은 여전히 확인해야 할 조건입니다.
첫 문단에 질문과 범위를 씁니다
질문을 “2026-09-01부터 2026-09-03까지 이 합성 표본의 강수 그룹과 비강수 그룹에서 지역·날짜 통행량은 어떻게 관찰되는가?”로 좁힙니다. 기간과 관측 단위가 질문에 들어가면 전체 도시의 모든 교통 흐름을 설명한다고 오인하기 어렵습니다. 독자의 관심 질문이 더 넓다면 답할 수 없는 범위를 먼저 합의하고 추가 자료 수집을 제안합니다.
다음으로 metrics.json의 분자·분모·시간대·강수 기준을 한 문장으로 요약합니다. 교통과 강수 결측은 제외하고 강수1mm 이상을 rain으로 묶으며 분모는 유효 지역·날짜 수입니다. 지표 정의 전문을 본문에 반복하는 대신 파일 링크를 연결하고 핵심 포함 조건만 적습니다. 기준을 바꿨다면 어떤 결과가 어느 정의를 따르는지 표시합니다.
근거 표와 그림의 역할을 나눕니다
표는 정확한 수치와 키를 전달하고 그림은 비교 패턴을 빠르게 보게 합니다. 근거 표에는 지역·강수 그룹·n·합계·평균·중앙값을 둡니다. A dry 평균80.0, A rain100.0, B dry0.0, B rain120.0을 키와 함께 읽습니다. 이 숫자는 metrics-out/metrics.csv에서 재계산한 chart-data.csv로 이어지고 figures/means.svg에 같은 순서로 표시됩니다.
지역별 평균들의 단순 평균을 전체 평균으로 사용하지 않습니다. 표본 수가 다르면 그룹 합계의 합을 그룹 n의 합으로 나누어야 합니다. 기본 표본은 각 지역·그룹 n이1이라 우연히 결과가 같지만 재사용 코드는 그 우연에 의존하면 안 됩니다. 보고서에 전체 평균을 추가한다면 합계와 분모 계산 근거도 남겨 다른 사람이 확인하게 합니다.
그림은 report.md에서 상대 경로로 연결합니다. ZIP을 푼 다른 컴퓨터에서도 figures/means.svg 링크가 열려야 합니다. 작성자 컴퓨터의 절대 경로는 제출물의 재현성을 낮춥니다. 지표 정의와 원본 대조의 경로는 프로젝트 루트를 기준으로 설명하고 생성 파일의 상대 경로와 구분합니다. 링크가 존재하는지와 링크된 파일이 현재 실행 결과인지 함께 점검합니다.
한계는 수치와 함께 씁니다
“표본이 적습니다”로 끝내지 않고 각 지역의 강수·비강수 그룹이 한 행씩이라는 사실을 적습니다. 결측 제외2행 때문에 입력6행 전부를 대표하는 평균은 아닙니다. 합성 자료이므로 실제 도시의 정책 판단에 사용할 수 없고, 기간이 사흘이라 계절 변화나 요일별 반복 패턴도 확인하지 못합니다. 한계 문장은 결론이 어디까지 유효한지 독자가 판단하게 합니다.
관찰과 원인을 구분해 “이 표본에서 rain 평균이 dry 평균보다 높았습니다”라고 씁니다. rain의 구성에 통행량이 많은 지역이 더 들어가면 그룹 차이의 일부가 지역 구성에서 생길 수 있습니다. 같은 지역·요일·계절을 비교하는 설계와 충분한 표본을 추가 수집하는 계획을 제시합니다. 현재 그래프의 차이가 미래 날짜에 그대로 나타난다고 예측하지 않습니다.
다음 확인은 실행할 수 있는 제안으로 적습니다. 예를 들어 “각 지역의 여러 주 평일·주말을 확보하고 동일 요일 안에서 강수별 n과 분포를 비교한다”는 계획은 추가로 필요한 열과 기간을 제시합니다. “더 분석한다”는 문장은 우선순위를 정하기 어렵습니다. 데이터 소유자에게 결측 발생 이유를 확인하는 질문도 수집 계획에 포함합니다.
재현 방법을 검토자가 실행할 수 있게 씁니다
보고서의 마지막 부분에는 입력 파일 목록, 지표 정의, 실행 순서, 검사 명령, 생성 경로를 적습니다. 미션 ZIP은 m05 solution 전체를 보존하고 새 visual.py와 테스트를 추가했습니다. python3 visual.py로 visual-out을 만든 뒤 python3 -m unittest discover -s tests -v로 회귀와 그림 대조를 검사합니다. 원본은 수정하지 않고 같은 명령을 다시 실행해도 같은 표와 보고서가 나오게 합니다.
자동 생성 문장과 사람이 보완할 문장을 구분합니다. 표의 수치와 유효·제외 행 수는 코드가 입력에서 계산합니다. 한계와 다음 수집 계획은 사람이 질문에 맞게 검토합니다. 미션의 기본 보고서는 안전한 관찰 범위를 안내하지만 실제 분석 업무의 결론을 자동으로 승인하지 않습니다. 자신의 메모를 별도 파일로 보존하면 재생성이 손으로 쓴 판단을 덮어쓰는 일을 피할 수 있습니다.
FileNotFoundError가 발생하면 현재 폴더와 입력 경로를 확인합니다. m05 지표 파일을 새 코드의 출력 위치에 복사해 오류를 숨기면 대조의 입력과 출력이 섞일 수 있습니다. RECONCILE 오류는 보고서 작성 전에 멈춰야 할 수치 불일치입니다. 그림을 먼저 제출하고 표를 나중에 맞추는 대신 같은 입력으로 지표를 재생성하고 대조한 뒤 보고서를 전달합니다.
검토 요청을 구체적으로 합니다
동료에게는 질문의 범위, 분모와 제외 조건, 표의 키별 수치, 그림의 축과 표본 수, 한계와 후속 계획을 확인해 달라고 요청합니다. 문서가 읽기 쉽다는 평가와 숫자가 재현된다는 평가는 별개입니다. 검사 로그는 재현의 근거이고 검토 메모는 해석의 근거입니다. 둘을 함께 제출하면 다음 담당자가 오류와 판단 차이를 구분하기 쉽습니다.
이 레슨의 제출물은 한 페이지 분량의 보고서와 수치 추적 표입니다. 질문 한 문장, 근거 표, 그림 링크, 관찰 두 문장, 한계 두 항목, 다음 확인 두 항목을 작성합니다. 각 수치에는 파일 경로와 지역·강수 키를 연결합니다. 더 읽기의 R 프로젝트는 재현 가능한 산출물을 묶는 흐름을 확장해 보여 주며 여기서는 우리 지표의 근거와 전달 범위를 완성합니다.
따라하기
전체 평균의 분자와 분모
코드를 독립적으로 실행하고 결과를 확인합니다.
groups={'rain':(220,2),'dry':(80,2)}
for name,(total,n) in groups.items(): print(name, 'total',total,'n',n,'mean',f'{total/n:.1f}')실행 결과
rain total 220 n 2 mean 110.0 dry total 80 n 2 mean 40.0
표본 수가 다른 지역 합치기
코드를 독립적으로 실행하고 결과를 확인합니다.
groups=[(100,1),(600,3)]
print('weighted',sum(t for t,n in groups)/sum(n for t,n in groups))
print('unweighted',sum(t/n for t,n in groups)/len(groups))실행 결과
weighted 175.0 unweighted 150.0
보고서 검토 목록 생성
코드를 독립적으로 실행하고 결과를 확인합니다.
items=['question and period','metric definition','table keys and n','figure path and axes','limits and next collection','reproduce command']
for i,item in enumerate(items,1): print(i,item)실행 결과
1 question and period 2 metric definition 3 table keys and n 4 figure path and axes 5 limits and next collection 6 reproduce command
확인 문제
실습
질문·기간·지표 정의 링크·키별 근거 표·그림 링크·관찰 두 문장·한계 두 항목·다음 확인 두 항목을 담은 한 페이지 보고서를 제출합니다. 수치마다 파일과 키를 연결하고 재현 명령을 적습니다.
더 읽기
면접 질문
- 공개 데이터로 만든 그래프의 신뢰성을 확인하는 방법을 설명해 주시면 됩니다.