본문 바로가기

설문 무응답과 집계 실습

1. 빈 점수를 0점으로 바꾸지 않기

예상 시간은 30분입니다. training-report Skill을 설치하고 attendance.csv와 survey.csv를 준비합니다. 설문은 여덟 행이지만 P08은 의견만 남기고 점수를 쓰지 않았습니다. 이 행은 의견 분석에는 쓸 수 있어도 점수 평균에는 넣지 않습니다.

1.1 분자와 분모 계산

유효 점수는 5, 4, 5, 4, 3, 5, 4입니다. 합계 30을 응답 수 7로 나누면 약 4.2857이고 소수 둘째 자리에서 반올림하면 4.29입니다. 여덟 행으로 나누면 3.75가 나오는데, 이것은 빈 점수를 0점으로 다룬 잘못된 평균입니다.

만족도 응답률은 실제 참여자 열 명 가운데 유효 점수를 낸 일곱 명, 즉 70%입니다. 의견만 있는 행까지 포함한 설문 제출률은 따로 계산할 수 있지만 이 책의 응답률과 섞지 않습니다.

1.2 실행하기

training-report Skill의 집계 스크립트로 출석과 설문을 계산해줘.
먼저 metrics.json과 집계 report.md를 제공해줘.
빈 점수의 처리, 수료율 분모, 설문 응답률 분모를 설명해줘.

직접 실행한다면 samples 폴더에서 다음 명령을 씁니다.

python skills/training-report/scripts/summarize.py inputs/attendance.csv inputs/survey.csv output/report

파일명과 폴더 경로를 먼저 확인하세요. Python 파일을 두 번 클릭하면 실행 창이 바로 닫히므로 터미널에서 실행하는 편이 오류를 읽기 쉽습니다.

1.3 무엇을 검증하나요?

스크립트는 네 출석 열의 값이 0과 1뿐인지 확인합니다. 설문 점수는 1~5 정수이거나 빈 값이어야 합니다. 같은 ID가 반복되거나 실제 참여하지 않은 ID가 설문을 냈으면 알아서 골라 버리지 않고 오류를 냅니다.

이것은 모든 설문에 통하는 규칙이 아니라 이 책의 입력 약속입니다. 실제 설문이 완전 익명이라 출석 ID와 연결할 수 없다면 다른 집계 설계가 필요합니다. 존재하지 않는 연결을 만들어 붙이면 안 됩니다.

1.4 세 가지 변형

먼저 P08의 빈 점수를 4로 바꿉니다. 유효 응답 8, 점수 합 34, 평균 4.25, 응답률 80%가 되어야 합니다. 둘째로 P01 설문 행을 복사합니다. 중복 오류가 나야 하고, 두 점수 가운데 하나를 골라 계산해서는 안 됩니다. 셋째로 점수를 6으로 바꾸면 범위 오류가 나야 합니다.

아무도 참여하지 않고 설문도 없는 입력에서는 수료율과 만족도를 산출할 수 없습니다. 0%나 0점과는 다릅니다. 스크립트 JSON의 null이 이 상태를 나타냅니다.

완료 기준은 정상 합계뿐 아니라 잘못된 입력에서 계산을 멈추는지까지 확인하는 것입니다. 집계 기준 예시와 비교해보세요.

설문 무응답과 집계 실습 - Claude Skill 에센셜 | 위니버시티