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

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

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

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

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

地点を選ぶ

地点を選ぶ
地点を選ぶ

項目を選ぶ

項目を選ぶ
項目を選ぶ

期間を選ぶ

期間を選ぶ
期間を選ぶ

表示オプションを選ぶ

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

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 の散布図でプロットする

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

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

まとめ

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

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

CytoscapeでEXCELのオブジェクトモデルを表現する

Cytoscape起動画面

 オブジェクトブラウザーは VBA のオブジェクト構造を記述したものである.しかし,EXCEL 全体のオブジェクトモデルを一覧できるような機能はない.今回,全く別領域のソフトウェアを用いて EXCEL のオブジェクトモデルを表現してみたので備忘録として公開する.

“CytoscapeでEXCELのオブジェクトモデルを表現する” の続きを読む

今後25年間の日本の都市の将来推計人口を EXCEL VBA で描く

データ系列のマーカースタイルを消去

 これまでは日本の都市人口の過去の推移を見てきた.総務省には日本の都市人口の推移予測がある.今回はこのデータをグラフにする.

 データを可視化するにあたり,重要なのは引き算である.強調すべき系列のみを強調するために,VBA の知識が欠かせない.

 グラフの系列にデータラベルを表示する方法にはいくつかある.

“今後25年間の日本の都市の将来推計人口を EXCEL VBA で描く” の続きを読む