불확도와 단위 검증
pint와 uncertainties로 물리 단위를 추적하고 측정 불확도를 GUM 방식으로 전파·보고하게 해주는 과학 계산 스킬.
데이터·분석고급★ 33,030⑂ 3,248AI 점수 8/10마지막 업데이트: 2026. 8. 9.
무엇을 해주나
- 단위 추적: pint로 단위를 입력 시점에 붙이고 출력 시점에만 벗기는 규칙을 강제합니다. 섭씨/화씨 같은 오프셋 단위, dBm 같은 로그 단위의 잘못된 산술을 잡아냅니다.
- 불확도 전파: GUM(JCGM 100) 선형 전파와 Monte Carlo(JCGM 101)를 동시에 돌려 clause 8 검증 테스트로 선형화가 타당한지 판정합니다.
- 불확도 예산 작성: 교정성적서의 확장불확도, 사각(rectangular)·삼각 분포 한계값을 올바른 제수로 표준불확도로 변환하고, 감도계수·유효자유도·포함인자 k·확장불확도 U를 계산합니다.
- 결과 표기: 불확도를 먼저 반올림한 뒤 값을 맞추고,
12.346 ± 0.023 mm,12.346(23) mm, LaTeX 형식과 함께 ± 의 의미를 설명하는 문장까지 만들어 줍니다. - 코드 감사: 기존 분석 코드를 실행하지 않고 정적 분석해
.magnitude남용,curve_fit의absolute_sigma누락,ufloat재생성으로 인한 상관관계 파괴 등을 규칙(UNIT001~CONST001)으로 잡습니다. - 물리적 타당성 점검: Reynolds, Peclet, Damkohler, Knudsen, Biot, Womersley 등 14개 무차원수와 확산시간·디바이 길이 같은 특성 스케일, 관측 범위 밴드로 "이 숫자가 물리적으로 가능한가"를 판단합니다.
이런 분께 추천
- 논문·보고서에 ± 값을 실어야 하는 실험 연구자, 대학원생
- 교정·시험 성적서를 다루는 계측/품질 엔지니어
- 센서 데이터, 유체·열전달·반응공학 계산을 코드로 처리하는 개발자
- 남이 쓴 분석 스크립트의 단위·불확도 결함을 리뷰해야 하는 사람
활용 예시
- 밀도 측정 불확도 예산: 질량 250.0 g(u=0.05), 지름 20.0 mm, 높이 40.0 mm(사각분포)를 넣고
propagate_uncertainty.py를 실행하면 u_c, 감도계수, 각 성분의 기여도(%), 유효자유도, k, U와 함께 "선형 결과를 보고해도 되는가"에 대한 판정을 마크다운 표로 받습니다. - 코드 리뷰:
audit_units.py --input analysis.py --fail-on medium으로 기존 스크립트를 검사해curve_fit에absolute_sigma=True가 빠져 파라미터 불확도가 31% 어긋난 문제를 찾아냅니다. - 감각 점검: 혈액 밀도 1060 kg/m³, 속도 0.5 mm/s, 길이 8 µm, 점도 3.5 mPa·s로 Reynolds 수를 구해 층류 영역임을 확인하거나, "지름 2 m 진핵세포"가 관측 범위에서 4.3 자리수 벗어났다고 즉시 거부합니다.
· · · 설치 가이드 · · ·
Claude 앱에 설치 (터미널 필요 없음)
- 아래 버튼으로 ZIP 파일을 받으세요.
- Claude 설정 → Capabilities에서 '코드 실행 및 파일 생성'을 켭니다. (한 번만)
- Claude에서 Customize → Skills → + → '스킬 업로드'를 누르고 받은 ZIP을 올립니다.
Claude Code에 설치
Claude에게 맡기기 — 아래 문장을 Claude Code에 붙여넣으세요
클로드스킬마트에서 찾은 스킬을 설치해줘. GitHub 저장소 K-Dense-AI/scientific-agent-skills 의 skills/uncertainty-and-units 폴더를 내 ~/.claude/skills/uncertainty-and-units/ 에 그대로 복사해줘. 설치가 끝나면 이 스킬로 무엇을 할 수 있는지 한 줄로 알려줘.
직접 명령으로 설치하기
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git /tmp/sci-skills && mkdir -p ~/.claude/skills && cp -r /tmp/sci-skills/skills/uncertainty-and-units ~/.claude/skills/⚠ 제3자가 만든 스킬입니다. 설치 전 원본 저장소를 한 번 확인하세요.
- 터미널을 열고 Python 3.12 이상이 설치되어 있는지
python3 --version으로 확인합니다. - 저장소를 내려받습니다:
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git - 스킬 폴더를 Claude Code 스킬 디렉터리로 복사합니다:
mkdir -p ~/.claude/skills && cp -r scientific-agent-skills/skills/uncertainty-and-units ~/.claude/skills/ - 계산용 CLI를 쓰려면 가상환경을 만들고 의존성을 설치합니다:
uv venv --python 3.13 && source .venv/bin/activate && uv pip install "pint==0.25.3" "uncertainties==3.2.3" "numpy==2.5.1" "scipy==1.18.0"(uv가 없으면python3 -m venv .venv후pip install로 대체) - Claude Code를 재시작하고 "이 단위 계산 점검해줘", "이 값이 물리적으로 타당한지 봐줘" 같은 요청으로 스킬이 작동하는지 확인합니다.
- 설치 확인:
python skills/uncertainty-and-units/scripts/format_result.py --value 12.34567 --uncertainty 0.02345 --unit mm를 실행해 출력이 나오는지 봅니다.
GitHub에서 원본 보기 ↗라이선스: MIT