熱中症の重症度別搬送人員数を最高気温と平均湿度別にプロットする

気温・湿度別の重症度別搬送人員

 熱中症の搬送人員と最高気温との相関関係を可視化し閾値をχ二乗検定するでは最高気温と搬送数をプロットした.今回は気象庁から湿度のデータをダウンロードし,重症度別にプロットして可視化する.

平均湿度のデータをダウンロードする

 データは気象庁の過去の気象データ・ダウンロードにある.

地点を選ぶ

地点を選ぶ
地点を選ぶ

項目を選ぶ

項目を選ぶ
項目を選ぶ

期間を選ぶ

期間を選ぶ
期間を選ぶ

表示オプションを選ぶ

表示オプションを選ぶ
表示オプションを選ぶ

Power Query でデータクレンジングする

「データの取得」「ファイルから」「フォルダーから」
「データの取得」「ファイルから」「フォルダーから」
プレビュー
プレビュー
「テキストフィルター」「指定の値で始まる...」
「テキストフィルター」「指定の値で始まる…」
フィルター条件を記述
フィルター条件を記述
Csv.Document関数を記述
Csv.Document関数を記述
第1引数に[Content], 第2引数に[Encoding=932]を指定
第1引数に[Content], 第2引数に[Encoding=932]を指定
「他の列の削除」
「他の列の削除」
Tableを展開する
Tableを展開する
「1行目をヘッダーとして使用」
「1行目をヘッダーとして使用」
「その他の列のピボット解除」
「その他の列のピボット解除」
ヘッダーは「年月日」「属性」「値」となる
ヘッダーは「年月日」「属性」「値」となる
「年月日」列のデータ型を「日付」にする
「年月日」列のデータ型を「日付」にする
「平均湿度」列のデータ型を「整数」にする
「平均湿度」列のデータ型を「整数」にする
「石狩」を「北海道」に置換する
「石狩」を「北海道」に置換する
カスタム列を挿入し右端1文字を削除する
カスタム列を挿入し右端1文字を削除する
「北海」を「北海道」に置換する
「北海」を「北海道」に置換する

クエリのマージ

クエリのマージ
クエリのマージ
テーブルと照合列の列を指定する
テーブルと照合列の列を指定する
Tableを展開し,都道府県コードのみチェックする
Tableを展開し,都道府県コードのみチェックする

 

SQL Server でデータを結合する

 上記の作業で得られたテーブルをテキストファイルで保存し,SQL Server のウィザードを使用してアップロードする.作業そのものは前回の記事を同様であり,省略する.

クエリ

 下記のクエリを実行すると重症度別の搬送人員が得られる.結果をヘッダー付きでコピーし,EXCELに貼り付ける.

USE EMERGENCYDB;
GO
SELECT	'軽症'	AS '重症度'
	,	E.軽症	AS '搬送数'
	,	A.人口 
	,	T.日別最高気温
	,	M.湿度
	,	E.都道府県コード
	,	T.都道府県
	,	T.年月日
FROM	dbo.Emergency	AS E
INNER	JOIN dbo.Temperature	AS T
ON	E.日付 = T.年月日
AND	E.都道府県コード = T.都道府県コード
INNER	JOIN	dbo.T_Moisture	AS M
ON	E.日付 = M.年月日
AND	E.都道府県コード = M.都道府県コード
INNER	JOIN	dbo.T_Population	AS A
ON	E.都道府県コード = A.都道府県コード
AND	YEAR(E.日付) = A.調査年
WHERE	E.軽症 > 0

UNION

SELECT	'中等症'	AS '重症度'
	,	E.中等症	AS '搬送数'
	,	A.人口 
	,	T.日別最高気温
	,	M.湿度
	,	E.都道府県コード
	,	T.都道府県
	,	T.年月日
FROM	dbo.Emergency	AS E
INNER	JOIN dbo.Temperature	AS T
ON	E.日付 = T.年月日
AND	E.都道府県コード = T.都道府県コード
INNER	JOIN	dbo.T_Moisture	AS M
ON	E.日付 = M.年月日
AND	E.都道府県コード = M.都道府県コード
INNER	JOIN	dbo.T_Population	AS A
ON	E.都道府県コード = A.都道府県コード
AND	YEAR(E.日付) = A.調査年
WHERE	E.中等症 > 0

UNION

SELECT	'重症'	AS '重症度'
	,	E.重症	AS '搬送数'
	,	A.人口 
	,	T.日別最高気温
	,	M.湿度
	,	E.都道府県コード
	,	T.都道府県
	,	T.年月日
FROM	dbo.Emergency	AS E
INNER	JOIN dbo.Temperature	AS T
ON	E.日付 = T.年月日
AND	E.都道府県コード = T.都道府県コード
INNER	JOIN	dbo.T_Moisture	AS M
ON	E.日付 = M.年月日
AND	E.都道府県コード = M.都道府県コード
INNER	JOIN	dbo.T_Population	AS A
ON	E.都道府県コード = A.都道府県コード
AND	YEAR(E.日付) = A.調査年
WHERE	E.重症 > 0

UNION

SELECT	'死亡'	AS '重症度'
	,	E.死亡	AS '搬送数'
	,	A.人口 
	,	T.日別最高気温
	,	M.湿度
	,	E.都道府県コード
	,	T.都道府県
	,	T.年月日
FROM	dbo.Emergency	AS E
INNER	JOIN dbo.Temperature	AS T
ON	E.日付 = T.年月日
AND	E.都道府県コード = T.都道府県コード
INNER	JOIN	dbo.T_Moisture	AS M
ON	E.日付 = M.年月日
AND	E.都道府県コード = M.都道府県コード
INNER	JOIN	dbo.T_Population	AS A
ON	E.都道府県コード = A.都道府県コード
AND	YEAR(E.日付) = A.調査年
WHERE	E.死亡 > 0
(77678 行処理されました)

EXCEL の散布図でプロットする

 「重症度」でフィルターをかけると,「軽症」「中等症」「重症」「死亡」に分類される.それぞれの重症度でフィルターをかけた状態で散布図のデータ系列を作成する.結果は下図の状態である.

気温・湿度別の重症度別搬送人員
気温・湿度別の重症度別搬送人員

まとめ

 気象庁のサイトから最高気温と平均湿度をダウンロードし,総務省消防庁の熱中症救急搬送人員と結合して重症度別にプロットした.

 統計学的検定は行っていないが,やるとすればロジスティック回帰分析になるだろう.湿度を加えた場合に感度と特異度が向上するのか,逆に低下するのかは興味深い.重症度別に層別解析を行うことも考えられる.

熱中症の搬送人員と最高気温との相関関係を可視化し閾値をχ二乗検定する

日最高気温と搬送人員

 最高気温と熱中症の搬送人数との間に相関関係はあるだろうか.熱中症で救急搬送された人数は総務省の消防庁のサイトにある.これと気象庁のデータを結合してみた.

“熱中症の搬送人員と最高気温との相関関係を可視化し閾値をχ二乗検定する” の続きを読む

総務省の都道府県・市区町村別統計表をデータクレンジングする

都道府県・市区町村別統計表(国勢調査)

 日本の人口統計は総務省が 5 年おきに行う国勢調査が元になっている.日本の市の人口順位をEXCELにダウンロードして散布図に描くでは日本全国の都市の人口増減率と人口の関係を時系列で流すとどう推移するか予測した.今回はその予測が実態と合っているか乖離しているかの検証を行う.

“総務省の都道府県・市区町村別統計表をデータクレンジングする” の続きを読む