
코로나바이러스 COVID-19 글로벌 사례 시각화
시계열 애니메이션 버블 도표 사용
시각화에 도움이 되는 리소스를 여기에 모았습니다. 2020년 3월 26일 라이브 웨비나의 비디오를 보고, 이 분석을 선택한 이유를 읽고, 데이터 또는 JMP 라이브 보고서 , 내가 첨부한 스크립트를 시도하거나 데이터를 사용하여 자신의 분석을 시도하십시오.
코로나바이러스 COVID-19의 확산에 대한 데이터를 전달하기 위한 이 지속적인 노력에는 많은 업데이트가 있습니다. 최신 버전에는 전역 요약과 로컬 요약을 보는 일부 그래프 빌더 플롯이 포함되어 있습니다. 또한 버블 도표는 색상으로 보강되어 일일 카운트 변화를 나타냅니다. 그래프에서 로그 스케일과 선형 스케일 사이를 전환하는 탭 상자가 있으며, 로컬 카운트 그림에서 선형 스케일 플롯에는 하위 및 상위 카운트 영역을 함께 표시하는 분할 축 그래프가 있습니다.
여기에서 HTML 버전을 살펴보십시오. JMP 라이브 페이지.
머리말:
- 코로나 바이러스와 그 확산으로 인한 모든 문제는 심각하고 많은 사람들에게 영향을 미치고 있으며 일부는 끔찍한 방식으로 영향을 미치고 있습니다. 이 인물을 만들어서 이것의 심각성을 하찮게 여기려는 의도는 아닙니다. 히스테리나 외국인 혐오증을 조장하는 것도 제 목표가 아닙니다.
- 내 스크립트에서 원래 작성자가 사용하는 위치 이름을 다시 코딩합니다. 저는 정치적 의제가 없습니다. Google 지도 API를 사용하여 지오코딩할 때 국가 위치를 제공해야 합니다. 대만, 대만은 레스토랑 위치로, 대만, 중국은 대만 중심 근처에 위치 코드로 지정됩니다. 다시 말하지만 이것은 정치적인 것이 아니라 기능적인 것입니다.
- 코로나 바이러스의 보고 및 탐지를 둘러싼 모든 데이터는 논쟁의 여지가 많습니다. 나는 이 데이터의 정확성을 보증하지 않습니다. 그러나 내가 아는 한 공개적으로 사용 가능한 데이터(영어)의 최고의 집합체입니다. 더 좋은 것이 있으면 알려주세요.
- 내 데이터가 아닙니다. 시스템 과학 및 엔지니어링 센터의 Whiting School of Engineering, Johns Hopkins University의 사람들은 데이터와 함께 보기 좋은 대시보드를 게시했습니다. 데이터를 사용할 수 있게 해주신 이 팀에 큰 감사와 찬사를 보냅니다.블로그 읽기 그리고 확실히 그들의 심상.
그들은 또한 원시 데이터가 있는 GitHub 페이지 쉽게 접할 수 있는 형식으로. (찬성 x 10^6).
시계열 애니메이션과 함께 버블 도표를 사용하는 이유는 무엇입니까?
버블 도표는 많은 차원을 단일 도표로 나타낼 수 있다는 점에서 유용성이 높습니다. 시계열 애니메이션을 추가하면 뷰어가 복잡한 사전 처리 없이 이러한 차원 간의 관계 변화를 시각화하고 전달할 수 있습니다. (일명: 멋져 보이고 이해하기 쉽습니다)
버블 도표는 다음의 관계를 보는 데 유용하다고 말했습니다. 다수의 시간이 지남에 따라 애니메이션된 치수 하나 차원(변수)은 시간에 따라 애니메이션됩니다. 나는 사람들이 X축에 단일 차원을, Y축에 시간을 두고 런/컨트롤 차트와 같은 플롯을 만든 다음 시간별로 애니메이션을 적용하는 것을 보았습니다. 이것은 지루한 실행/제어 차트라고 합니다. 이렇게 하지 마십시오.
그림을 위해 여기서 구성할 것입니다. X축과 Y축은 측지 척도이므로 점이 지도와 정렬됩니다. 그래프에서 점의 공간적 관계를 볼 수 있으며 배경 지도 모양으로 컨텍스트가 제공됩니다. 다음으로 마커의 크기 차원을 추가합니다. 이는 각 위치에 대한 기간별 누적 케이스 수입니다. 마지막으로 기간 시퀀스를 사용하여 플롯에 애니메이션을 적용하여 시간이 지남에 따라 거품이 커지거나 나타납니다. 각 지점에는 국가 및 지역별로 레이블이 지정되어 있습니다. 이 그림에서 모든 개별 포인트를 국가 ID로 축소하거나 국가 ID 내의 지역 ID로 분할할 수 있습니다.
그래프를 생성하는 스크립트는 움직이는 대상을 쫓고 있습니다. 데이터 작성자는 계속 변경하므로 소스 데이터에 변경 사항이 있는 경우 며칠 동안만 작동할 수 있습니다. 2020년 2월 12일 아침 현재 작동합니다. 스크립트 끝에는 JMP Live에서 그림을 게시하거나 새로 고치는 옵션이 있습니다. JMP Live에서 패키지에 액세스하기 위한 내 일급 비밀 API 키가 없기 때문에 이것은 작동하지 않습니다. JMP Live가 있는 경우 게시 및 새로 고침이 작동하는 방법의 예로 유용할 수 있습니다.
스크립트 작동 방식.
- 나중에 스크립트에서 필요한 모든 변수를 설정합니다.
- 데이터를 다운로드하고 포맷합니다.
- 이 부분에서 이상한 점이 있습니다. 여러 지점에서 데이터를 로컬에 저장하고 테이블을 닫은 다음 다시 엽니다. 스크립트를 순차적으로 실행하는 데 문제가 있었는데 이것이 가능하게 하는 방법입니다. 때때로 다음 단계가 시작되기 전에 테이블 업데이트가 완료되지 않아 불안정한 테이블이 생겼습니다.이 무차별 대입 방법은 내 성격과 스타일과 일치합니다.
- 버블 플롯 생성
- 게시 또는 새로 고침이 필요한지 파악한 다음 그림을 게시하거나 새로 고칩니다.
스크립트를 보면 표현식으로 섹션을 래핑한 것을 알 수 있습니다. 이것은 코드 접기 옵션과 결합될 때 긴 스크립트를 정리하는 편리한 방법입니다(스크립트 편집기의 기본 설정 확인).
업데이트 2020년 3월 26일
이번 주 초에 제가 사용하던 데이터 세트는 더 이상 사용되지 않습니다. 그리고 오늘 아침 더 이상 사용되지 않는 데이터가 다른 위치로 이동되었습니다. 말할 필요도 없이 이 프로젝트는 진정 움직이는 표적입니다! Johns Hopkins CSSE에는 매일 데이터로 업데이트되는 또 다른 데이터 GitHub 리포지토리가 있습니다. 아래의 새 스크립트 "COVID-19 시계열 데이터 컴파일"은 리포지토리에 어떤 파일이 있는지 확인한 다음 다운로드하고 조립합니다. 이 데이터 세트에는 몇 가지 흥미로운 "기능"이 있습니다. 나는 recode를 사용하여 많은 문제를 해결했고 일부 창의적인 공식을 사용하여 나머지를 해결했습니다.
일부 문제 및 해결 방법
- 사이트마다 위치가 일정하지 않아 가장 최근 위치를 사용하고 다른 곳은 교체했습니다.
- 누적 카운트는 증가하거나 동일하게 유지되어야 합니다. 누적 횟수가 줄어들면 전날의 값이 사용됩니다. 이렇게 하면 누적 카운트에서 파생된 일별 카운트에 음수가 포함되지 않습니다.
- 테이블의 열 이름은 시간이 지나도 일관성이 없습니다. 레이블은 3/24/20 테이블 열 이름으로 통합됩니다.
-일부 위치 이름에 일부 오타 불일치 및 후행/선행 공백이 있습니다. Recode는 이러한 문제를 해결합니다.
- 위치는 각 위치에서 확인된 개수의 합계로 주문된 값 및 색상으로 정렬됩니다.
- 파이널 테이블에는 공식이 없습니다. 정렬 종속 계산에 영향을 주지 않고 테이블을 정렬할 수 있습니다.
업데이트 2020년 4월 3일
오늘 스크립트를 업데이트했습니다. 실행하는 데 약 1분 또는 조금 더 소요됩니다. 정리 스크립트에서 많은 일이 발생하고 일부 수식을 완료하는 데 약간의 시간이 걸립니다.
이 버전에는 끝에 몇 가지 다른 조정과 함께 중복 행을 제거하는 섹션이 포함되어 있습니다.
Cum Counts vs. Counts by day 버블 플롯을 만들기 위한 새로운 열 수식. 5일 또는 7일의 평균을 취하는 것이 아니라 위치 열별 이동 평균입니다. 이동 평균은 작업할 몇 가지 포인트를 더 제공합니다.
그래프에 관한 유용한 기사:
• 시계열, 특히 버블 도표에 무엇을 그릴지에 대한 참고 사항. 누적 카운트는 계속 증가하는 거품을 만들지 만 일별 카운트는 핫스팟을 나타냅니다.(조엘 셀라니키오)
• https://www.futurehealth.live/blog/2020/2/17/all-the-coronavirus-maps-are-wrong
• https://www.futurehealth.live/blog/2020/2/10/coronavirus-dataviz-sucks
•지도 및 지도 모양 사용에 대한 참고 사항. (케네스 필드)
• https://www.esri.com/arcgis-blog/products/product/mapping/mapping-coronavirus-responsibly/
• 다른 축 척도로 데이터를 해석하고 후행 지표에 대한 참고 사항. (카이저 펑)
• https://junkcharts.typepad.com/numbersruleyourworld/2020/03/how-to-act-like-a-data-scientist-8-dont-use-lagging-indicators-to-forecast.html
@KevinB 오래된 분할 축 트릭. 변수를 x축에 놓은 다음 다시 첫 번째 변수의 오른쪽이나 왼쪽에 놓습니다. 간단하죠? 그러나 올바른 생각을 가진 사람이 동일한 변수를 동일한 축에 두 번 배치하기 때문에 분류하기가 매우 어렵습니다. 한 축은 범위의 하한값을 가져오고 다른 축은 상한값을 가져옵니다.
예를 들어 왼쪽은 0~60분, 오른쪽은 1~24시간입니다. 그런 다음 미친 듯이 화려하게 꾸미고 싶다면 세 번째 x축에서 2일에서 10일까지입니다.
@bfoulkes 솔직히 말해서, 이것이 제가 생각해낼 수 있는 전부입니다. 그래서 여러분이 이것으로 무엇을 할 수 있는지 보고 싶습니다. 행사할 시간 같은 거요? 또는 영향을 받는 지역에 의한 높은 성장과 고원 사이의 시간...
이 스크립트는 진행 상황을 따르고 영향을 받는 영역을 따라가는 데 훌륭했습니다.방법을 알려주셔서 감사합니다.
이 프로젝트는 일종의 움직이는 목표물을 쫓는 것입니다. 데이터 작성자는 계속 이동합니다.
대본을 업데이트했습니다(예, 발렌타인 데이에 몬스터 라자냐가 구워지기를 기다리는 동안).
이제 데이터 가져오기가 좀 더 간단해졌으며 데이터 필터 상자 대신 각 범주가 자체 탭 상자에 있습니다.
또한 버블 플롯에 포인트가 표시되지 않는 문제가 있었고 그것도 수정되었습니다.
이 세계적인 공중 보건 비극을 따라잡기 위해 유용하고 멋진 대본을 제공하는 정말 흥미롭고 좋은 방법, Byron @Byron_JMP .JMP가 시계열 데이터를 처리하는 것은 매우 유용합니다.
코드를 .jsl 파일에 복사하려고 했지만 일부 사용자 지정이 포함되어 있음을 알았습니다.예를 들어 JMP Live 계정을 가리킵니다.좀 더 일반적이도록 스크립트를 업데이트할 수 있습니까?그리고 링크해주셔서 감사합니다 원시 데이터가 있는 GitHub 페이지 그래서 스스로 JMP에서 새로운 데이터를 보도록 노력할 수 있습니다.