Excel, 이제 하나의 셀에 여러 값 저장 지원
요약
본 글은 Excel이 단순한 스프레드시트를 넘어, 확률 분포와 불확실성을 다루는 강력한 분석 도구로 진화해야 한다고 주장합니다. 특히 셀에 확률분포를 직접 넣고 몬테카를로 시뮬레이션을 통해 결과까지 분포로 처리하는 것이 핵심 혁신입니다. 이는 비개발자도 복잡한 통계적 예측과 불확실성 관리를 할 수 있게 합니다.
핵심 포인트
- Excel의 진정한 혁신은 셀에 확률분포를 넣는 기능이다.
- 몬테카를로 시뮬레이션을 통해 결과까지 분포로 다루어 불확실성을 표현한다.
- 비개발자도 통계적 예측과 시나리오 분석을 쉽게 할 수 있게 된다.
- 다차원 데이터 처리를 위해 xarray와 같은 라이브러리가 언급된다.
수년간 Excel을 폄하하는 글을 많이 봤지만, 기업에서 일해 봤다면 분석적으로 사고하는 비개발자에게 Excel이 얼마나 유용한지 알 것임. 복잡한 수식과 방대한 VBA 함수는 시간이 지나면 기술 부채가 되지만, 제대로 구현하면 거창한 경영진 승인 없이도 생산성을 높일 수 있음.
새 기능도 많은 사람이 활용할 것 같고, Excel이 이렇게 발전하는 모습이 반가움.
또 다른 측면은 젊은 세대가 Excel을 잘 모른다는 것임. 마케팅 직군이나 의료 분야 전문가 면접에서 성과급 계산 방식을 알아볼 수 있도록 간단한 예산표를 만들어 보라고 자주 요청하는데, 박사 학위 소지자조차 기본 수식을 쓰지 못했음. 박사 과정에서 데이터는 어떻게 다뤘냐고 물으니 Prism을 썼다고 답함.
마케팅 전공 학생들도 마찬가지임. 학위 수준은 다르더라도 잠재 고객 목록을 관리하려면 Excel이 필요함.
Excel의 진정한 혁신은 셀에 확률분포를 넣는 기능일 것임. 지금의 스프레드시트는 대체로 결정론적인데, 우리는 그것으로 현실을 이해할 수 있다고 여김. 셀을 분포로 만들고 계산 결과도 모두 분포가 되게 하면 현실의 불확실성을 더 잘 표현하고, 분포의 꼬리 같은 흥미로운 특성도 드러낼 수 있음.
Guesstimate(https://getguesstimate.com)는 나온 지 몇 년이나 됨. Excel과 Google이 금방 기능을 도입할 줄 알았는데, 크게 확산되지는 않은 듯함.
모든 셀에 이름이 붙고, 직접 지정하지 않으면 자동으로 생성됨. 셀에는 단일 값, 여러 종류의 확률분포, 표본 데이터를 넣을 수 있음. 몬테카를로 시뮬레이션으로 계산하므로 수식 결과도 분포로 직접 다루며, 각 셀의 팝업에 판단 근거를 적을 수 있어 문서화도 내장돼 있음.
정말 많은 부분을 제대로 설계한 도구임. 특히 표본 데이터는 확률적 상향식 예측을 만든 뒤 실제 데이터로 갱신할 수 있어 유용함.
유료 추가 기능인 @Risk가 원하는 기능을 제공함.
구체적으로 어떤 모습일까? 비슷한 작업이 필요할 때는 각 매개변수를 별도 셀에 넣고 함수를 사용함.
기술이나 수학에 익숙하지 않은 CEO에게 최악·평균·최선의 시나리오가 서로 다르며 모두 대비해야 한다는 것을 더 쉽게 전달할 방법이 있으면 좋겠음.
공정 개선 업무를 할 때는 이런 용도로 MiniTab을 사용했음. 솔직히 좋아하는 프로그램은 아니어서 Excel로 처리하고 싶었지만, Excel에서는 할 수 없는 통계 작업이 너무 많음.
그러면 그 셀들은 텐서가 되는 걸까? 행렬은 텐서이되 텐서곱 대신 행렬곱 연산자를 사용하는 것임. Pandas는 MultiIndex DataFrame을 지원하지만, 문서에서는 3차원 및 다차원 데이터에 xarray를 권장함. xarray는 NetCDF 같은 다차원 데이터를 지원하지만 텐서 연산은 지원하지 않음. xarray_jax는 xarray 자료구조를 사용자 정의 JAX PyTree로 등록함. 이를 통해 원시 배열로 평탄화해 가속 연산을 수행한 뒤, 차원 이름과 좌표 같은 메타데이터를 보존한 xarray 객체로 복원할 수 있음. 성능을 위한 루프 펼치기에는 데이터 타입을 유지하는 평탄화와 복원이 필요함.
빈도주의적 분포나 기호로 표현한 분포를 값으로 갖는 식에는 어떤 확률 논리가 적합할까? 양자 논리와 양자 통계역학이 모든 확률 논리에 적절하거나 유용한 도구일까? Python의 uncertainties는 NumPy 타입으로 평균±편차를 다룸. 이 글에서도 다뤘듯, W3C CSVW는 데이터 타입 URI를 포함한 열별 스키마를 지원함. uncertainties나 Pint 또는 astropy.units를 쓰는 값과 복소수가 담긴 딕셔너리를 JSON으로 직렬화했다가 같은 타입으로 복원하려면 날짜·시간, 복소수, 범주형 값을 처리해야 함. IEEE-754는 NaN(null), ±0, 세 종류의 무한대인 양·음·부호 없는 무한대를 규정하지만 범주형 값, ISO8601 같은 날짜·시간, 복소수 표현은 규정하지 않음. RDFS의 rdfs:Property에 대한 rdfs:range를 지정할 때 자주 쓰이는 XSD도 추상적인 복소수 표현을 규정하지 않지만, OpenMath RDF, QUDT, OM Ontology에는 복소수를 디스크에 저장하는 방법이 있음.
큰 변화지만 타입을 빠뜨린 점은 아쉬움. Haskell 스타일의 리스트 패턴 매칭과 순수 함수 평가까지 지원한다면 어떨지 상상해 보게 됨.
처음에는 회의적이었지만 실제로 유용해 보임. 최근 작업한 스프레드시트에는 사용자 목록과 각 사용자가 쓰는 소프트웨어 앱을 쉼표로 구분한 목록이 있었는데, 이를 파싱하기가 꽤 까다로웠음. 기사의 예제라면 이런 목록 필터링에 확실히 도움이 될 것임.
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기