
엔지니어링 메일백
에피소드 1: 제설 서비스의 경제학
때때로 우리 JMP 시스템 엔지니어들은 일반적인 범위를 벗어나는 흥미로운 질문에 직면합니다. JMP 용법. 이러한 애플리케이션은 일반적으로 영리하며 데이터 사용이 단지 비즈니스 또는 기술 문제에만 사용되는 것이 아니라는 점을 잘 보여줍니다.
다음은 뉴욕 주의 사용자(Mike라고도 함)로부터 받은 질문의 예입니다. 그와 나는 공유하면 재미있을 것이라고 생각했습니다.
질문
마이크 [JMP],
저는 작년에 총 적설량에 대해 찾은 데이터를 사용하여 JMP를 가지고 놀고 있습니다. 나는 이번 여름에 새 집으로 이사했고 이제 387피트 길이의 진입로를 갈아야 합니다. 나는 최근 제설기 계약자와 이야기를 나누고 있었는데, 그는 나와 시즌 계약을 맺으려고 했습니다. 일반적으로 그가 푸시당 비용을 청구할 때 푸시당 $75의 눈이 3인치 이상 쌓이면 언제든지 완료됩니다. 그는 눈이 올 때마다 쟁기질을 할 수 있는 가격을 2,000달러로 제안했습니다. 작년에 그는 3인치 이상의 눈이 약 20번이나 내렸기 때문에 올해에도 이런 일이 다시 발생하면 결국 $1,500($75 x 20)를 지불하게 될 것이라고 말했습니다. 그래서 눈이 올 때마다 그에게 쟁기질을 하게 하려면 500달러만 더 지불하면 됩니다.

내 데이터에서 볼 수 있듯이 작년에는 3인치 이상의 눈이 내린 경우가 5번밖에 없었습니다. 물론 나는 이 계약자에게 관심이 없다고 말했습니다. 나는 결국 한 번에 50달러에 그것을 할 다른 사람을 고용하게 되었습니다. 제 질문은 왜 JMP가 15인치의 적설량을 그래프에 2.5인치에서 3.0인치 사이로 표시하는 것입니까? 합계가 내림차순인데 왜 15인치가 맨 오른쪽에 있지 않습니까?
감사해요,
마이크 [사용자]
나의 응답
안녕, 마이크!
귀하의 질문에 대한 답변을 보면 "Greenfield Center 1.6 W" 열의 데이터 유형이 "문자"로 설정되어 있음을 알 수 있을 것 같습니다. 명백한 알파벳 순서를 넘어서는 순서는 문자 데이터로 인해 복잡해집니다. 그래프 빌더의 카운트 내림차순 옵션과 결합하면 예측하기가 더 어려워집니다.
제가 생각하는 상황은 다음과 같습니다. Graph Builder는 먼저 "내림차순"으로 정렬합니다. 따라서 가장 많은 행이 있는 카테고리가 왼쪽에 표시되고 오른쪽으로 이동함에 따라 감소합니다. 동일한 수의 데이터 포인트(예: 1과 2, 1.5와 2.5, 15 – 9.5)를 가진 여러 그룹이 있는 경우 그래프 빌더는 일반적인 순서 규칙을 사용합니다. 열은 문자이므로 의사 알파벳 순서를 따릅니다. 이는 마지막 그룹의 순서가 15, 3, 5.5, 6, 9.5라는 것을 의미합니다. 왜냐하면 알파벳 순서는 왼쪽에서 오른쪽으로 문자별로 이루어지기 때문입니다. 보다 통제된 예를 사용하면 JMP가 1에서 20 사이의 숫자를 정렬하는 방법은 데이터 유형이 문자인지 숫자인지에 따라 다릅니다. 수치적으로는 예상한 대로 1,2,3, …, 20이 됩니다.알파벳순으로는 1, 10, 11,12, 13, …, 19, 2, 20, 3, 4, 5, 6, 7, 8, 9가 됩니다.
이 문제를 무시하는 방법은 값 순서 열 속성을 사용하는 것입니다. JMP에서 사용하려는 순서를 정의할 수 있으며 이 순서는 기본값을 재정의합니다. 사용자 정의 값 순서를 사용하면 그래프 빌더에서 사용되는 계층 구조는 내림차순, 값 순서, 값 순서 열 속성에 정의되지 않은 항목에 대한 기본값이 됩니다.
최상의,
중
더 많은 생각
이에 대해 생각한 후에 저는 이에 접근하는 몇 가지 추가 방법과 요점을 증명하는 데 사용할 수 있는 시각화가 더 있다는 것을 깨달았습니다. 먼저, 일부 데이터 정리를 처리해 보겠습니다. Mike가 사용한 데이터는 NOAA의 웹사이트 .사이트는 한 달에 한 번씩 다운로드하도록 설정되어 있으므로 연결 작업이 필요합니다. 데이터를 살펴보면 각 관측소의 수치적 강수량 데이터에 사용되는 문자 코드가 있습니다. M과 T는 각각 "누락"과 "추적"에 사용됩니다. 이는 두 가지를 의미합니다. 첫째, 우리는 고스트 데이터 .
둘째, NOAA에서는 특정 값에 대한 보고가 필요하지 않다고 간주하는 몇 가지 임계값이 있습니다. 우리는 어떻게든 이것들을 처리해야 할 것입니다. 또한 데이터는 JMP가 문자를 고려하여 연도가 누락된 일-월 형식으로 제공됩니다. 이는 시계열 산점도를 생성하면 순서가 올바르지 않음을 의미합니다. 이 점 역시 수정되어야 할 것입니다.
먼저, 날짜 수정은 "찾기"로 "-"을 사용하고 "바꾸기"로 "/mm/yy"를 사용하는 일련의 찾기 및 바꾸기 작업입니다. 실제로는 다음과 같습니다.

날짜가 수정된 후에는 데이터를 쌓아두는 것이 좋습니다. 이는 분석을 위한 더 많은 옵션을 제공합니다. 데이터가 쌓이면 이제 누락된 값 열 속성을 할당하여 JMP가 "M"을 누락된 것으로 간주하도록 할 수 있습니다. 또한 recode를 사용하여 "T"를 숫자 값으로 변경할 수도 있습니다. 그만큼 NOAA의 FAQ 추적은 "우량계를 적시지만 측정 한계 0.01인치 미만인 소량의 강수량"으로 간주됩니다. 이 경우에는 그냥 0.01로 다시 코딩하겠습니다.
마지막으로 할 일은 "강우 그룹"이라는 새 열을 만드는 것입니다. 나는 실제로 사용했다 Brady Brady의 Interactive Binning(V2) 추가 기능 , 그러나 수식 편집기에서 수행하는 논리는 매우 간단합니다. "강수량"이 3인치보다 크면 "쟁기"를 반환합니다. 3인치 미만은 "쟁기 없음"입니다. 데이터가 누락된 경우 "Missing"을 반환합니다.

이 열을 설정한 후 누락된 값을 모두 숨기고 제외했습니다.
이 경우 떠오르는 시각화 유형은 세 가지입니다. 분포, 막대 차트, 버블 도표. 데이터가 누적되어 있으므로 이들 각각은 관심 관측소를 선택하기 위해 로컬 데이터 필터를 사용하게 됩니다. 앞서 생성한 지표 열을 기반으로 구축된 분포는 2016-17 시즌에 쟁기질이 5번 필요했음을 매우 명확하게 보여줍니다.

참조선과 쟁기질이 필요한지 여부에 따른 색상을 사용하여 그래프 빌더에서 생성된 막대 차트도 비슷한 내용을 보여줍니다.
버블 플롯은 재미있습니다. 스토리에 애니메이션을 적용하는 것은 메시지의 영향력을 향상시키는 좋은 방법입니다. 취향과 메시지에 따라 시각화에 접근하는 방법에는 여러 가지가 있습니다. 버블 도표는 대화형 HTML5로 내보낼 수도 있습니다(첨부된 데이터 테이블의 스크립트를 실행한 다음 OS에 맞는 내보내기 옵션을 사용하여 내보내기).
첫 번째 버블 플롯은 애니메이션 시간 플롯입니다. 애니메이션을 적용하면 일일 강수량을 추적하고 강수량 수준이 쟁기질에 필요한 3인치 수준에 얼마나 가까운지를 기준으로 선에 색상이 지정됩니다.

두 번째 예는 데이터 세트의 모든 관측소를 표시하며, 다시 y축에 일일 기록 강수량을 표시합니다.이 예에서는 강수량 값을 크기 조정 변수로 포함하여 y축이 올라갈수록 마커가 더 커지도록 했습니다.

지도 예제는 데이터를 가져온 동일한 사이트에서 NOAA 관측소 좌표 목록을 찾아서 생성되었습니다. 조회 테이블을 만들고 가상 조인을 사용하여 관측소 이름을 기준으로 각 관측소의 위도와 경도를 가져왔습니다. 두 번째 버블 플롯과 마찬가지로 마커의 크기는 해당 관측소에서 매일 기록된 강수량에 따라 결정됩니다. 원래 질문에서는 지도가 특별히 중요하지 않지만 애니메이션을 적용하면 2016-17년 겨울 시즌 동안 뉴욕의 눈보라가 언제, 어디서, 얼마나 심했는지에 대한 흥미로운 시각적 정보를 제공합니다. 약간의 재미를 위해 뉴욕 타임스퀘어에서 사람들이 스노보드를 탈 수 있게 만든 폭풍의 위치를 찾아보세요(힌트: 2017년이었습니다).

시스템 엔지니어에게 보여주고 싶은 재미있는 질문이나 데이터 세트가 있습니까?댓글이나 메시지를 남겨주세요. 아마도 우리는 이것을 실행하는 것으로 바꿀 것입니다.
저자의 메모
이 글을 다시 읽는 분들을 위해 말씀드리자면, 제정신이 아니군요. 제목이 조금 바뀌었습니다.검색 엔진에서 더 쉽게 찾을 수 있도록 제목을 업데이트해 달라는 요청을 받았습니다.나는 이것이 일부 검색 엔진이 유머 감각이 없는 19세기 참고 사서의 현대적 화신이기 때문이라고 추측할 수 있습니다.불편을 끼쳐드려 죄송합니다.-중
편집자 주: '라는 시리즈의 첫 번째 작품입니다.
엔지니어링 메일백 JMP에 관한 모든 종류의 기술적 질문을 다루는 JMP 시스템 엔지니어가 작성했습니다.