이름 기본값은 here(1)입니다. //Juristiction 'United States' 또는 주 이름을 선택하고 csv 파일의 해당 열에 있는 값과 일치시킵니다. 관할 필터 = "미국"; // 관할 필터 = "일리노이"; //아래 사이트에서 csv 파일로 데이터 내보내기: //
https://data.cdc.gov/NCHS/Weekly-Counts-of-Deaths-by-State-and-Select-Causes/3yf8-kanr // https //data.cdc.gov/NCHS/Weekly-Provisional-Counts-of-Deaths-by-State-and-S/muzy-jte6 dtFinal = Open( 파일 선택("최종 파일 열기(주별 사망자 수) )", "$Downloads"), columns( New Column( "Jurisdiction of Occurrence", Character, "Nominal" ), New Column( "MMWR Year", Numeric, "Continuous", Format( "Best", 12 ) ) , 새 열( "MMWR 주", 숫자, "연속", 형식( "최고", 12 ) ), 새 열( "주 종료 날짜", 숫자, "연속", 형식( "m/d/y", 10 ), 입력 형식( "m/d/y" ) ), 새 열( "모든 원인", 숫자, "연속", 형식( "최상", 12 ) ), 새 열( "자연 원인", 숫자, "Continuous", Format( "Best", 12 ) ), New Column( "Septicemia (A40-A41)", Numeric, "Continuous", Format( "Best", 12 ) ), New Column( "Malignant neoplasms (C00) -C97)", 숫자, "연속", 형식( "최고", 12 ) ), 새 열( "Diabetes mellit us (E10-E14)", 숫자, "연속", 형식( "최상", 12 ) ), 새 열( "알츠하이머병(G30)", 숫자, "연속", 형식( "최상", 12 ) ) , 새 열( "인플루엔자 및 폐렴(J10-J18)", 숫자, "지속적", 형식( "최고", 12 ) ), 새 열( "만성 하기도 질환(J40-J47)", 숫자, "지속적" ", Format( "Best", 12 ) ), New Column( "기타 호흡기 질환(J00-J06,J30-J39,J67,J70-J98)", 숫자, "연속", 형식( "최상", 12 ) ), 새 열( "신염, 신증후군 및 신증(N00-N07,N17-N19,N25-N27)", 숫자, "연속", 형식( "최상", 12 ) ), 새 열( "증상 , 징후 및 비정상적인 임상 및 실험실 소견, 달리 분류되지 않음(R00-R99)", 숫자, "연속", 형식( "최고", 12 ) ), 새 열( "심장 질환(I00-I09,I11,I13)" ,I20-I51)", 숫자, "연속", 형식( "최상", 12 ) ), 새 열( "뇌혈관 질환(I60-I69)", 숫자, "연속", 형식( "최상", 12) ), 새 열( "flag_allcaus e", 문자, "공칭" ), 새 열( "flag_natcause", 문자, "공칭" ), 새 열( "flag_sept", 문자, "공칭" ), 새 열( "flag_neopl", 문자, "공칭" ), 새 열( "flag_diab", 문자, "공칭" ), 새 열( "flag_alz", 문자, "공칭" ), 새 열( "flag_inflpn", 문자, "공칭" ), 새 열( "flag_clrd" , 문자, "공칭" ), 새 열( "flag_otherresp", 문자, "공칭" ), 새 열( "flag_nephr", 문자, "공칭" ), 새 열( "flag_otherunk", 문자, "공칭" ), 새 열( "flag_hd", 문자, "공칭" ), 새 열( "flag_stroke", 문자, "공칭" ) ), 가져오기 설정( 줄 끝( CRLF, CR, LF ), 필드 끝(쉼표, CSV) ( 1 ) ), 따옴표 제거( 1 ), 아포스트로피를 따옴표로 사용( 0 ), 지역 설정 사용( 0 ), 전체 파일 스캔( 1 ), 빈 열을 숫자로 처리( 0 ), CompressNumericColumns( 0 ), CompressCharacterColumns( 0 ), CompressAllowListCheck( 0 ), 레이블( 1 ), 열 이름 시작( 1 ), 데이터 시작( 2 ), 읽을 줄( "All" ), 연도 규칙( "20xx" ) ) ); dtProv = Open( Pick File("잠정 파일 열기(주간 잠정 사망자 수)", "$Downloads"), columns( New Column( "Data As Of", Numeric, "Continuous", Format( "m/d/ y", 10 ), 입력 형식( "m/d/y" ) ), 새 열( "발생 관할 구역", 문자, "명목" ), 새 열( "MMWR 연도", 숫자, "연속", 형식 ( "최고", 12 ) ), 새 열( "MMWR 주", 숫자, "연속", 형식( "최고", 12 ) ), 새 열( "주 종료 날짜", 숫자, "연속", 형식( "yyyy-mm-dd", 10 ), 입력 형식( "yyyy-mm-dd" ) ), 새 열( "모든 원인", 숫자, "연속", 형식( "최상", 12 ) ), 새 열 ( "자연 원인", 숫자, "연속", 형식( "최상", 12 ) ), 새 열( "패혈증(A40-A41)", 숫자, "연속", 형식( "최상", 12 ) ), New Column( "Malignant neoplasms (C00-C97)", Numeric, "Continuous", Format( "Best", 12 ) ), New Column( "Diabetes mellitus (E10-E14)", Numeric, "Continuous", Format( "Best", 12 ) ), New Column( "Alzheimer disease(G30)", Numeric, "Co ntinuous", Format( "Best", 12 ) ), New Column( "Influenza and pneumonia (J09-J18)", Numeric, "Continuous", Format( "Best", 12 ) ), New Column( "만성 하기도 질병(J40-J47)", 숫자, "연속", 형식( "최고", 12 ) ), 새 열( "기타 호흡기 질환(J00-J06,J30-J39,J67,J70-J98)", 숫자, "연속", 형식( "최상", 12 ) ), 새 열( "신염, 신증후군 및 신증후군(N00-N07,N17-N19,N25-N27)", 숫자, "연속", 형식( " Best", 12 ) ), New Column( "Symptoms, 징후 및 비정상적인 임상 및 실험실 소견, 달리 분류되지 않음(R00-R99)", Numeric, "Continuous", Format( "Best", 12 ) ), New Column( "심장 질환(I00-I09,I11,I13,I20-I51)", 숫자, "연속", 형식( "최고", 12 ) ), 새 열( "뇌혈관 질환(I60-I69)", 숫자, "연속", 형식( "최상", 12 ) ), 새 열( "COVID-19(U071, 다중 사망 원인)", 숫자, "연속", 형식( "최고", 12 ) ), 새 열( "COVID-19(U071, Underl 사망 원인)", 숫자, "연속", 형식( "최상", 12 ) ), 새 열( "flag_allcause", 문자, "명목" ), 새 열( "flag_natcause", 문자, "공칭" ) , 새 열( "flag_sept", 문자, "공칭" ), 새 열( "flag_neopl", 문자, "공칭" ), 새 열( "flag_diab", 문자, "공칭" ), 새 열( "flag_alz", 문자, "공칭" ), 새 열( "flag_inflpn", 문자, "공칭" ), 새 열( "flag_clrd", 문자, "공칭" ), 새 열( "flag_otherresp", 문자, "공칭" ), 신규 열( "flag_nephr", 문자, "공칭" ), 새 열( "flag_otherunk", 문자, "공칭" ), 새 열( "flag_hd", 문자, "공칭" ), 새 열( "flag_stroke", 문자, "Nominal" ), 새 열( "flag_cov19mcod", Character, "Nominal" ), 새 열( "flag_cov19ucod", Character, "Nominal" ) ), 가져오기 설정( End Of Line( CRLF, CR, LF ), End Of 필드( 쉼표, CSV( 1 ) ), 따옴표 제거( 1 ), 아포스트로피를 따옴표로 사용( 0 ), 지역 설정 사용( 0 ) , 전체 파일 스캔( 1 ), 빈 열을 숫자로 처리( 0 ), CompressNumericColumns( 0 ), CompressCharacterColumns( 0 ), CompressAllowListCheck( 0 ), Labels( 1 ), 열 이름 Start( 1 ), Data Starts( 2 ), 읽을 줄( "All" ), Year Rule( "20xx" ) ) ); dtProv:" 모든 원인"n << Set Name("모든 원인"); dtFinal:"모든 원인"n << Set Name("모든 원인"); dtAll = dtFinal << Concatenate( dtProv, 소스 열 생성 ); dtAll << Select Where(:발생 관할권 == 관할권 필터 ); dtSub = dtAll << Subset( 선택된 행( 1 ), 선택된 열만( 0 ) ); dtSub << 선택 Where( :주 종료 날짜 > 날짜 dmy( 1,3,2020) ); //새 데이터 숨기기 dtSub << 숨기기 및 제외(1); ts = dtSub << 시계열( X( :주 종료 날짜 ), Y( :모든 원인 ), 자기 상관 시차( 52 ), 예측 기간( 52 ), 계절별 ARIMA( 0, 0, 0, 1, 1, 1, 52, 예측 간격( 0.99 ) ), SendToReport( Dispatch( {}, "시계열 기본 진단", OutlineBox, {Close( 1 )} ), Dispatch( {"모델 비교"}, "", ScrollBox, {배경색 ( 117 )} ) ) ) ); dtPred = (((ts << XPath("//OutlineBox[
@helpKey='ARIMA 모델']"))[1]) << 스크립팅 가능한 개체 가져오기) << 예측 수식 저장; dtJoined = dtSub << Join( With( dtPred ), 동일한 이름 열 병합, 행 번호 기준); dtJoined << New Column("Excess v Expected", Numeric, "Continuous", Format("Best", 12), Formula(:All Cause - :Predicted All Cause), Set Display Width(100)); dtJoined << New Column("Cumulative[Excess v Expected]", Numeric, "Continuous", Format("Best", 12), Formula(Col Cumulative Sum(:Excess v 예상)), Set Display Width(173)) ; 실제가 있는 마지막 행 = max(dtJoined << Get rows where( !Is Missing( :All Cause ) ))-1; 실제가 있는 마지막 날짜 = dtJoined:주 종료 날짜[실제가 있는 마지막 행]; dtJoined << Graph Builder( Size( 1174, 786 ), Show Control Panel( 0 ), Show Subtitle( 1 ), Variables( X( :Week Ending Date ), Y( :"누적[Excess v 예상]"n ), Y( :초과 v 예상 ), Y( :모든 원인 ), Y( :예상 모든 원인, 위치( 3 ) ), Y( :"상한 CL(0.99) 모든 원인"n, 위치( 3 ) ), Y( :"하위 CL(0.99) 모든 원인"n, 위치( 3 ) ) ), 상대적 크기( "Y", [229 204 387] ), 요소( 위치( 1, 1 ), 점( X, Y, 범례() 18 ) ) ), 요소( 위치( 1, 2 ), 점( X, Y, 범례( 20 ) ), 면적( X, Y, 범례( 22 ), 간격 스타일( "밴드" ) ) ), 요소( 위치 ( 1, 3 ), 점( X, Y( 1 ), 범례( 13 ) ), 선( X, Y( 2 ), Y( 3 ), Y( 4 ), 범례( 15 ) ) ), 로컬 데이터 필터 ( Add Filter( columns( :Week Ending Date ), Where( :Week Ending Date >= 3471638400 & :Week Ending Date <= 실제가 있는 마지막 날짜 ) ), SendToReport( Dispatch( {}, "Week Ending Date", ScaleBox , {Min( 3462203520 ), Max(실제 +가 있는 마지막 날짜(7)), Interval( "Year" ), Inc( 1 ), Minor Ticks( 0 ), 참조 라인 추가(실제 날짜가 있는 마지막 날짜, "단색", "검정색", 형식(실제 날짜가 있는 마지막 날짜, "ddMonyyyy"), 1 ), 레이블 행( 주요 그리드 표시( 1 ) )} ), Dispatch( { }, "누적[Excess v 예상]", ScaleBox, {Min( 0 ), //Max( 819328.125380856 ), Inc( 200000 ), Minor Ticks( 1 ), Ref Line 추가( 0, "Solid", "Black") , "", 1 ), Label Row( Show Major Grid( 1 ) )} ), Dispatch( {}, "Excess v Expected", ScaleBox, {Min( 0 ), //Max( 26451.6956907074 ), Inc( 10000 ) , 보조 눈금( 1 ), 참조선 추가( 0, "Solid", "Black", "", 1 ), 레이블 행( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )} ), Dispatch ( {}, "All Cause", ScaleBox, {Min( 0 ), //Max( 90470.7642581624 ), Inc( 10000 ), Minor Ticks( 4 ), Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )} ), Dispatch( {}, "400", ScaleBox, {범례 모델( 22, 속성( 0, {채우기 색상( 20 ), 투명도( 0.5 ))}), 항목 ID( "초과 대 예상"), 1 ) ) ), 범례 모델( 13, 속성( 0, {선 색상( 21 )}, 항목 ID( "All Cause", 1 ) ) ), 범례 모델( 15, Prope rties( 0, {Line Color( 32 )}, Item ID( "Predicted All Cause", 1 ) ), Properties( 1, {Line Color( 70 )}, Item ID( "Upper CL (0.99) All Cause", 1 ) ), Properties( 2, {Line Color( 70 )}, Item ID( "Lower CL (0.99) All Cause", 1 ) ) )} ), Dispatch( {}, "graph title", TextEditBox, {Set 텍스트( 관할 필터 || " 실제 사망 대 예상 사망 (초과 사망)" )} ), Dispatch( {}, "graph 1 title", TextEditBox, {Set Text( "출처:
https://data.cdc.gov/NCHS/Weekly-Counts) -of-Deaths-by-State-and-Select-Causes/3yf8-kanr 및
https://data.cdc.gov/NCHS/Weekly-Provisional-Counts-of-Deaths-by-State-and-S/muzy -jte6" )} ), Dispatch( {}, "X 제목", TextEditBox, {Set Text( "" )} ), Dispatch( {}, "Y 제목", TextEditBox, {Set Text( "누적 초과 사망") )} ), Dispatch( {}, "Y 1 제목", TextEditBox, {Set Text( "Excess v Expected\!NDeaths per Month" )} ), Dispatch( {}, "Y 2 제목", TextEditBox, {Set Text( "Dess per Month" )} ), Dispatch( {}, "400", LegendBox, {Legend Position( {18, [0], 20, [1], 22, [6, -3], 13, [2], 15, [3, 4, 5]} )} ), Dispatch( {}, "그래프 작성기", FrameBox(3), {그래픽 스크립트 추가( 3, 설명( "스크립트" )), dt = 현재 Data Table(), yMatrix = (dtJoined:All Cause << get values)[54::last row with actuals] |/ Matrix( Reverse( As List( (dtJoined:Predicted All Cause << get values)[54: :실제값이 있는 마지막 행] ) ) ); xMatrix = (dtJoined:주 종료 날짜 << 값 가져오기)[54::실제가 있는 마지막 행] |/ Matrix( Reverse( As List( (dtJoined:주 종료 날짜 << 값을 가져옴)[54::실제가 있는 마지막 행 ] ) ) ); 채우기 색상( "중간 진한 녹색" ); 투명도( 0.5 ); 다각형( xMatrix, yMatrix ); ), 그리드 라인 순서( 1 ), 참조 라인 순서( 3 )} ) ) ); dtFinal << 창 닫기; dtProv << 창 닫기; dtAll << 창 닫기; dtSub << 창 닫기; dtPred << 창 닫기;