같은 중앙값 뒤에 숨은 두 봉우리를 펼친다
두 모델의 응답 시간 중앙값과 IQR이 비슷하지만 모델 B에는 빠른 요청군과 느린 요청군이 따로 있을 수 있다. 상자그림만으로는 이 두 봉우리가 숨는다. 바이올린 그림은 값 축을 따라 커널 밀도 추정 곡선을 그리고 좌우로 대칭 복제한다. 폭이 넓은 위치는 그 근처에 상대적으로 값이 많이 모였다고 추정한 곳이다.
Hintze와 Nelson은 1998년 상자그림의 요약 통계와 밀도 추정의 정보를 결합한 형태로 바이올린 그림을 제안했다. 폭은 실제 막대 개수도 확률 그 자체도 아니며 선택한 커널·대역폭·평가 범위·정규화에 따라 달라진다. 중앙값과 IQR 또는 개별 점을 안쪽에 함께 보여 주면 요약과 모양을 대조할 수 있다.
대역폭은 곡선을 얼마나 매끈하게 할지 정한다
커널 밀도 추정은 각 관측 주변에 작은 봉우리를 놓고 합친다. 대역폭이 좁으면 개별 관측의 흔들림까지 봉우리로 보일 수 있고, 넓으면 실제 두 무리를 하나로 합칠 수 있다. seaborn 공식 문서의 bw_method와 bw_adjust처럼 소프트웨어는 기준 대역폭과 조정 배수를 제공한다. 기본값을 썼다면 그 사실도 설정이다.
“봉우리가 두 개이므로 두 사용자 집단이 있다”라고 바로 결론내리지 않는다. 여러 대역폭, 히스토그램, 원자료 점에서 구조가 유지되는지 확인하고, 캐시·입력 길이·지역 같은 메타데이터로 가설을 시험한다. 밀도 모양은 표본에 대한 추정이며 숨은 원인을 자동으로 찾아내지 않는다.
곡선이 관측 범위 밖으로 뻗을 수 있다
커널은 관측값 주변으로 퍼지므로 밀도 곡선이 실제 최소·최대보다 바깥까지 이어질 수 있다. 응답 시간이 0보다 작을 수 없는데 바이올린이 음수 영역으로 내려가면 독자가 불가능한 값을 관측한 것으로 오해한다. seaborn의 cut 같은 설정은 대역폭 몇 배까지 극단값 밖으로 곡선을 확장할지 정한다.
축의 자연 경계가 있으면 곡선을 관측 범위에서 자르거나 경계 보정 방법을 검토한다. 단순히 잘랐으면 캡션에 적고, 원자료 최소·최대와 점을 함께 보인다. 점수 0–100%, 확률 0–1처럼 경계가 있는 값에서는 특히 중요하다. 부드러운 꼬리는 관측 점이 아니라 추정 곡선이다.
| 범위 | 뜻 | 표시 |
|---|---|---|
| 원자료 범위 | 실제 최소–최대 | 점·가로선 |
| 밀도 평가 범위 | 곡선을 계산한 x 범위 | 설정 기록 |
| 자연 경계 | 물리·정의상 가능한 범위 | 축·절단 |
| 곡선 꼬리 | 커널 추정의 연장 | 관측으로 오해 금지 |
그룹별 폭 정규화가 표본 수 해석을 바꾼다
여러 바이올린의 최대 폭을 같게 맞추면 각 그룹의 모양 비교는 쉽지만 n=30과 n=300이 같은 크기로 보인다. 면적을 같게 하거나 최대 폭을 같게 하는 정규화, 표본 수에 비례해 폭을 바꾸는 설정은 서로 다른 질문에 답한다. seaborn 0.13의 density_norm과 common_norm 설정을 확인한다.
표본 수를 폭으로 표현하지 않는다면 각 그룹 위에 n을 직접 쓴다. 표본 수 비례 폭을 쓰더라도 범례와 최대 폭 기준을 적는다. 두 그룹의 세로축 단위와 대역폭 규칙을 공통으로 두지 않으면 한쪽이 매끈하고 다른 쪽이 울퉁불퉁해져 실제 분포 차이처럼 보일 수 있다.
작은 표본에서는 매끈함이 근거량을 과장한다
관측이 6개뿐이어도 커널을 합치면 부드러운 바이올린이 나온다. 곡선의 매끈함은 표본이 충분하다는 뜻이 아니다. 작은 n에서는 각 점을 모두 표시하고, 분위수와 밀도 추정이 한 관측 변화에 얼마나 민감한지 확인한다. 표본 수가 지나치게 작으면 점도표나 스트립 플롯만 쓰는 편이 정직하다.
반대로 수천 개 점을 모두 겹치면 읽기 어렵다. 바이올린과 얇은 상자, 무작위가 아닌 대표성 있는 표본 점 또는 2차원 빈도 요약을 조합한다. 점을 일부만 보이면 추출 규칙과 전체 n을 적는다. 장식적인 대칭 모양이 원자료 행 수와 품질을 대신하지 않는다.
| 표본 상황 | 권장 표시 | 피할 것 |
|---|---|---|
| n이 매우 작음 | 모든 점+중앙값 | 바이올린만 |
| 중간 n | 바이올린+상자+점 | n 숨김 |
| 매우 큰 n | 밀도+요약+추출 규칙 | 임의 점 일부 |
| 그룹 n 다름 | n 라벨+정규화 공개 | 폭을 수로 단정 |
서로 다른 세 사례는 값의 경계와 반복 구조가 다르다
응답 시간은 0 이상의 긴 오른쪽 꼬리를 가질 수 있다. 프롬프트별 평가 점수는 0–100 경계와 이산 단계가 있을 수 있다. 토큰별 내부 활성은 양·음 값을 모두 갖고 같은 문장 안에서 상관된 관측이 생긴다. 같은 바이올린이라도 커널 선택, 독립성 가정, 해석 범위가 달라진다.
평가 프롬프트마다 여러 시드를 실행했다면 모든 시드 값을 독립 프롬프트처럼 합치지 않는다. 프롬프트별 요약을 먼저 만들거나 계층 구조를 보존한 도표를 쓴다. 모델 내부 활성 분포와 사용자 그룹별 성능 분포를 한 축에 놓아 인과 관계를 추론하지 않는다.
| 자료 | 값 경계 | 반복 구조 |
|---|---|---|
| 응답 시간 | 0 이상 | 요청·서버 조건 |
| 평가 점수 | 0–100 또는 이산 | 프롬프트×시드 |
| 내부 활성 | 양·음 가능 | 토큰×층×특징 |
| 문서 길이 | 0 이상 정수 | 문서·중복 |
LLM에는 밀도 설정과 실제 점을 분리해 요구한다
LLM에게 원자료, 그룹, 관측ID, 단위, 자연 경계, 반복 구조를 준다. 대역폭 후보와 정규화 방법, 관측 범위 밖 확장 설정을 표로 먼저 제안하게 하고 같은 설정을 모든 비교 그룹에 적용한다. 각 그림 아래에 n, 중앙값, IQR, 최소·최대와 실제 점을 제공하게 한다.
모델이 매끈한 SVG 경로를 임의로 만들어 “실제 KDE”라고 부르지 않도록 계산 코드와 사용한 라이브러리 버전을 요구한다. 값이 없으면 도표 사양과 빈 코드만 쓰게 한다. 봉우리 수는 대역폭 민감도와 표본 수를 확인한 뒤 제한적으로 설명하고 사용자 유형 같은 원인은 별도 자료가 있을 때만 연결한다.
잘못된 그림은 넓이를 관측 수로 바꿔 읽는다
수정 전 그림은 그룹마다 최대 폭을 같게 정규화했지만 “모델 B가 넓으므로 요청이 더 많다”고 설명했다. n과 대역폭이 없고 곡선이 음의 응답 시간까지 뻗었다. 표본 7개인 그룹도 매끈한 두 봉우리로 표시해 확정된 사용자 집단처럼 이름을 붙였다.
수정 후에는 n을 직접 쓰고 폭 정규화를 캡션에 적었다. 공통 대역폭과 관측 범위 절단을 적용하고 실제 점·상자그림을 안쪽에 보였다. 표본이 작은 그룹은 바이올린을 제거해 점도표로 바꾸었다. 두 봉우리는 “설정에 따라 보이는 후보 구조”라고 표현하고 추가 수집 과제를 붙였다.
실습에서는 대역폭을 바꾸고 남는 특징을 찾는다
교육용 값 24개에 좁은 대역폭을 쓰면 작은 굴곡이 세 봉우리처럼 보이고, 기준 대역폭은 두 완만한 무리를, 넓은 대역폭은 하나의 봉우리를 만든다. 실습 결과는 실제 모델 측정이 아니다. “정답 봉우리 수”를 고르는 대신 여러 설정에서 유지되는 긴 꼬리와 중심 범위를 기록한다.
실제 업무에서는 대역폭을 결과를 본 뒤 임의로 고르면 선택 편향이 생긴다. 기본 규칙과 민감도 범위를 미리 정하고 모두 저장한다. 다른 그룹 비교에서는 같은 기준을 적용하고, 봉우리 해석을 발표해야 한다면 원자료 점·히스토그램·메타데이터 분석이 같은 이야기를 하는지 확인한다.
| 대역폭 배수 | 보이는 봉우리(교육용) | 읽기 |
|---|---|---|
| 0.5× | 3개 | 표본 잡음 가능 |
| 1.0× | 2개 | 후보 구조 |
| 1.8× | 1개 | 세부 구조가 합쳐짐 |
| 공통 결론 | 긴 오른쪽 꼬리 | 설정에 비교적 안정 |
공개 전에는 설정·점·화면을 각각 검사한다
같은 원자료와 코드로 밀도 경로를 다시 계산하고 대역폭, 커널, 정규화, 평가 범위, 절단 설정을 기록한다. 그룹별 n과 실제 점 수가 맞고 중앙값·IQR이 상자 요소와 일치하는지 본다. 자연 경계 밖 곡선과 작은 표본의 과한 매끈함을 검토한다.
모바일에서는 좁은 바이올린, 중앙값 표식, 축 값과 그룹 라벨이 겹치지 않는지 확인한다. 색 없이도 그룹을 구분하고 화면낭독기용 요약표에 n·중앙값·IQR·대역폭·정규화를 넣는다. 상세 SVG는 키보드로 가로 이동할 수 있게 하고 도표 설명이 곡선의 설정 한계를 포함하도록 한다.
| 검사 | 통과 기준 | 미통과 행동 |
|---|---|---|
| 밀도 설정 | 대역폭·정규화·절단 공개 | 사양 보완 |
| 실제 관측 | 점 수·n·요약 일치 | 재계산 |
| 경계 | 불가능 영역 없음 | 절단·보정 |
| 해석 | 봉우리 원인 단정 없음 | 문장 완화 |
| 접근성 | 축·표·키보드 읽힘 | 배치 보완 |
복사해서 쓸 수 있는 LLM 요청문
아래 요청문은 교육용 예시다. 원문을 함께 제공하고, 모델이 빈칸을 추측하지 않도록 금지 조건을 넣었다. 결과를 받으면 원문 문장과 노드·선의 대응을 사람이 다시 확인한다.
다음 그룹별 측정값으로 바이올린 그림을 설계해 줘. 1. 관측ID·그룹·값·단위·자연 경계·반복 구조와 그룹별 n을 확인한다. 2. 사용할 커널, 대역폭 규칙과 조정 배수, 평가 범위를 적는다. 3. 그룹 간 공통 대역폭 규칙과 density normalization 방식을 쓴다. 4. 관측 범위 밖 꼬리 확장과 자연 경계 처리 방법을 밝힌다. 5. 실제 점, 중앙값과 IQR을 함께 표시하고 작은 표본은 점도표를 우선한다. 6. 대역폭 0.5×·1×·1.8× 민감도 결과를 비교한다. 7. 봉우리 수를 숨은 집단의 증거로 단정하지 않는다. 8. 실제 값이 없으면 밀도 경로를 꾸며내지 말고 빈 사양과 코드만 준다. [그룹별 원자료] …
직접 실습하고 결과를 읽기
이 실습은 브라우저 안에 준비한 교육용 자료만 사용한다. 외부 LLM을 호출하거나 실제 기관 자료를 조회하지 않는다. 입력을 바꾸어 결과가 어떻게 달라지는지 보고, 설명과 맞지 않는 결과가 나오면 어떤 정보가 빠졌는지 적어 본다.
자료와 출처
아래 자료는 이번 글의 정의와 표기법을 확인하는 데 사용했다. 생각그림과 사례 문장은 원자료를 복제하지 않고 이 글의 교육 목적에 맞게 새로 구성했다.