e-Statからの社会疫学的指標を加えて熱中症搬送人員数を分析する

 総務省の公開しているe-Statには社会疫学的指標が多く含まれる.今回熱中症搬送人員数に様々な指標を加えて解析してみた.

 説明変数として日最高気温,日平均水蒸気圧,都道府県人口に加えて過去30日間の平均気温,エアコン保有台数,年間収入のジニ係数,光熱・水道費,実収入,第1次産業就業者比率,第2次産業就業者比率,都市公園数,都市緑化割合,自然公園割合,自然公園数,生活保護被保護人員を加えた.

 すべての変数が有意であったが,VIFを見ると多重共線性を疑わせる変数もあり,良いモデルとは言えない結果となった.

データのダウンロード

 トップページの「地域」をクリックする.

「地域」を選択
「地域」を選択

 「都道府県データ」の「データ表示」をクリックする.

「データ表示」をクリック
「データ表示」をクリック

地域選択

 「地域選択」ではまず「全て選択」し「全国」を「地域を削除」する.

「地域選択」で「全て選択」して「全国」を「地域を削除」
「地域選択」で「全て選択」して「全国」を「地域を削除」

表示項目選択

エアコン保有台数

 「分野」は「L 家計」,「大分類」は「L5 所有量・消費量」,「小分類」は「L51 耐久消費財所有数量(二人以上の世帯)」を選択すると「L5104 耐久消費財所有数量(二人以上の世帯)(ルームエアコン【台】)」が表示されるのでこれをクリックして「項目を選択」する.

エアコン保有台数
エアコン保有台数

ジニ係数

 「分野」は「L 家計」,「大分類」は「L4 非農家世帯の家計(全国消費者実態調査)」,「小分類」は「L46 ジニ係数」を選択すると「L4601 年間収入のジニ係数(二人以上の世帯)」が表示されるのでこれをクリックして「項目を選択」する.

ジニ係数
ジニ係数

実収入

 「分野」は「L 家計」,「大分類」は「L4 非農家世帯の家計(全国消費実態調査)」,「小分類」は「L41 収入」を選択すると「L4110 実収入(二人以上の世帯のうち勤労者世帯)」が表示されるのでこれをクリックして「項目を選択」する.

 図には示していないが水道・光熱費もここに含まれている.

実収入
実収入

労働力人口,第1次産業就業者数,第2次産業就業者数,第3次産業就業者数

 「分野」は「F 労働」を選択すると「F1101 労働力人口(人)」「F2201 第1次産業就業者数(人)」「第2次産業就業者数(人)」「第3次産業就業者数(人)」が表示されるのでそれぞれクリックして「項目を選択」する.

労働力人口,第1次産業就業者数,第2次産業就業者数,第3次産業就業者数
労働力人口,第1次産業就業者数,第2次産業就業者数,第3次産業就業者数

都市公園数,都市緑地面積

 「分野」は「H 居住」,「大分類」は「H9 都市公園」を選択すると「H9101 都市公園数(箇所)」「H920502 都市緑地面積(ha)」が表示されるのでそれぞれクリックして「項目を選択」する.

都市公園数,都市緑地面積
都市公園数,都市緑地面積

生活保護被保護人員

 「分野」は「J 福祉・社会保障」,「大分類」は「J1 生活保護等」,「小分類」は「J11 生活保護」を選択すると「J1105 生活保護被保護人員(人)」が表示されるのでクリックして「項目を選択」する.

生活保護費保護人員
生活保護被保護人員

総面積

 「分野」は「B 自然環境」,「大分類」は「B1 土地面積」,「小分類」は「B11 総面積等」を選択すると「B1101 総面積(北方地域及び竹島を除く)(ha)」「B1102 総面積(北方地域及び竹島を除く)(ha)」が表示されるのでクリックして「項目を選択」する.

総面積
総面積

自然公園割合,都道府県率自然公園数

 「分野」は「B 自然環境」,「大分類」は「B2 自然公園」を選択すると「B2101 自然公園面積(ha)」「B2102 都道府県立自然公園数(箇所)」「B2103 都道府県立自然公園面積(ha)」「B2104 国立公園面積(ha)」「B2105 国定公園面積(ha)」が表示されるのでそれぞれクリックして「項目を選択」する.

自然公園面積,都道府県立自然公園数,都道府県立自然公園面積,国立公園面積,国定公園面積
自然公園面積,都道府県立自然公園数,都道府県立自然公園面積,国立公園面積,国定公園面積

Power Queryによるデータクレンジング

 Power Query によるデータクレンジングは省略する.労働力人口で第1次産業就業者数,第2次産業就業者数,第3次産業就業者数をそれぞれ割って第1次産業就業者数比率,第2次産業就業者比率,第3次産業就業者比率とする.

SQL Serverへのインポート

 SQL Serverへのウィザードを使用したインポートも省略する.

クエリ

 下記クエリ参照.

USE HeatStrokeDB
GO
WITH	CTE_MOVING_AVERAGE(date, pref, Avg10, Avg20, Avg30)
AS(
SELECT
    D.年月日
,	D.都道府県
,	AVG(D.日平均気温) 
		OVER (PARTITION BY D.都道府県
			  ORDER BY D.年月日 ASC
			  ROWS BETWEEN 9 PRECEDING AND CURRENT ROW) AS '移動平均10日間'
,	AVG(D.日平均気温) 
		OVER (PARTITION BY D.都道府県
			  ORDER BY D.年月日 ASC
			  ROWS BETWEEN 19 PRECEDING AND CURRENT ROW) AS '移動平均20日間'
,	AVG(D.日平均気温) 
		OVER (PARTITION BY D.都道府県
			  ORDER BY D.年月日 ASC
			  ROWS BETWEEN 29 PRECEDING AND CURRENT ROW) AS '移動平均30日間'
FROM	dbo.T_DailyAvgTemp	AS D
)
SELECT	M.都道府県コード	AS PrefCode
,	M.都道府県	AS Pref
,	M.年月日	AS Date
,	M.日最高気温	AS MaxTemp
,	CTE_MOVING_AVERAGE.Avg10
,	CTE_MOVING_AVERAGE.Avg20
,	CTE_MOVING_AVERAGE.Avg30
,	V.日平均蒸気圧	AS Vapor
,	P.総人口	AS Pop
,	A.[ルームエアコン【台】]	AS AirCon
,	G.年間収入のジニ係数	AS Gini
,	I.[光熱・水道費【円】]	AS EnergyCost
,	I.[実収入【円】]	AS Income
,	L.第1次産業就業者比率*100	AS PrimaryIndustry
,	L.第2次産業就業者比率*100	AS SecondaryIndustry
,	L.第3次産業就業者比率*100	AS TertiaryIndustry
,	PA.H9101_都市公園数	AS UrbanParkNum
,	(PA.[H920502_都市緑地面積【ha】]/dbo.T_AREA.[B1102_総面積【ha】])*100	AS UrbanGreenRatio
,	(CAST(NA.[B2101_自然公園面積【ha】] AS float)	
/	CAST(dbo.T_AREA.[B1102_総面積【ha】] AS float))*100	AS NatureParkRatio
,	NA.[B2102_都道府県立自然公園数【箇所】] AS NatureParkNum
,	W.[生活保護被保護実人員【人】]	AS Wellfare
,	H.[搬送人員(計)]	AS Num
FROM	dbo.T_MaxTemperature	AS M
INNER	JOIN	CTE_MOVING_AVERAGE
ON	CTE_MOVING_AVERAGE.date=M.年月日
AND	CTE_MOVING_AVERAGE.pref=M.都道府県
INNER	JOIN	dbo.T_HeatStroke	AS H
ON	M.都道府県コード = H.都道府県コード
AND	M.年月日 = H.日付
INNER	JOIN	dbo.T_VaporPressure	AS V
ON	M.都道府県コード=V.都道府県コード
AND	M.年月日=V.年月日
INNER	JOIN	dbo.T_Population	AS P
ON	M.都道府県コード = P.都道府県コード
AND	YEAR(M.年月日) = P.調査年
INNER	JOIN	dbo.T_AirCon	AS A
ON	M.都道府県コード = LEFT(A.都道府県コード, 2)
AND	CASE WHEN YEAR(M.年月日) >= 2014 THEN 2014 ELSE
	CASE WHEN YEAR(M.年月日) >= 2009 THEN 2009 ELSE	2004 END END = A.調査年
INNER	JOIN	dbo.T_Gini	AS G
ON	M.都道府県コード = LEFT(G.都道府県コード, 2)
AND	CASE WHEN	YEAR(M.年月日) >= 2014 THEN 2014 ELSE 2009 END = G.調査年
INNER	JOIN	dbo.T_Income	AS I
ON	M.都道府県コード = LEFT(I.都道府県コード, 2)
AND	CASE WHEN YEAR(M.年月日) >= 2014 THEN 2014 ELSE
	CASE WHEN YEAR(M.年月日) >= 2009 THEN 2009 ELSE 2004 END END = I.調査年
INNER	JOIN	dbo.T_LaborForce	AS L
ON	CASE WHEN YEAR(M.年月日) >= 2020 THEN 2020 ELSE
	CASE WHEN YEAR(M.年月日) >= 2015 THEN 2015 ELSE
	CASE WHEN YEAR(M.年月日) >= 2010 THEN 2010 ELSE 2005 END END END = L.調査年
AND	M.都道府県コード = LEFT(L.都道府県コード, 2)
INNER	JOIN	dbo.T_PARKS	AS PA
ON	M.都道府県コード = LEFT(PA.都道府県コード, 2)
AND	CASE WHEN	YEAR(M.年月日) >= 2021 THEN 2021 ELSE YEAR(M.年月日) END = PA.調査年
INNER	JOIN	dbo.T_NaturePark	AS NA
ON	CASE WHEN YEAR(M.年月日) >= 2021 THEN 2021 ELSE YEAR(M.年月日) END = NA.調査年
AND	M.都道府県コード = LEFT(NA.都道府県コード, 2)
INNER	JOIN	dbo.T_AREA
ON	M.都道府県コード = LEFT(dbo.T_AREA.都道府県コード, 2)
AND	CASE WHEN	YEAR(M.年月日) >= 2021 THEN 2021 ELSE YEAR(M.年月日) END = dbo.T_AREA.調査年
INNER	JOIN	dbo.T_Wellfare	AS W
ON	M.都道府県コード = LEFT(W.都道府県コード,2)
AND	YEAR(M.年月日) = W.調査年
ORDER	BY	M.都道府県コード, M.年月日
(71656 行処理されました)

Rでの解析

> Num = HEATSTROKE24$Num
> MaxTemp = HEATSTROKE24$MaxTemp
> Avg30 = HEATSTROKE24$Avg30
> Vapor = HEATSTROKE24$Vapor
> Pop = HEATSTROKE24$Pop
> AirCon = HEATSTROKE24$AirCon
> Gini = HEATSTROKE24$Gini
> Income = HEATSTROKE24$Income
> EnergyCost = HEATSTROKE24$EnergyCost
> Primary = HEATSTROKE24$PrimaryIndustry
> Secondary = HEATSTROKE24$SecondaryIndustry
> UrbanParkNum = HEATSTROKE24$UrbanParkNum
> UrbanGreenRatio = HEATSTROKE24$UrbanGreenRatio
> NatureParkRatio = HEATSTROKE24$NatureParkRatio
> NatureParkNum = HEATSTROKE24$NatureParkNum
> Wellfare = HEATSTROKE24$Wellfare
> z = glm(Num ~ MaxTemp + Avg30 + Vapor + AirCon + Gini + Income + EnergyCost + Primary + Secondary + UrbanParkNum + UrbanGreenRatio + NatureParkRatio + NatureParkNum + Wellfare, offset = log(Pop), family = poisson(link = "log"))

結果

> summary(z)

Call:
glm(formula = Num ~ MaxTemp + Avg30 + Vapor + AirCon + Gini + 
    Income + EnergyCost + Primary + Secondary + UrbanParkNum + 
    UrbanGreenRatio + NatureParkRatio + NatureParkNum + Wellfare, 
    family = poisson(link = "log"), offset = log(Pop))

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-12.4897   -1.3044   -0.4867    0.7585   16.5535  

Coefficients:
                  Estimate Std. Error  z value Pr(>|z|)    
(Intercept)     -2.220e+01  4.828e-02 -459.911  < 2e-16 ***
MaxTemp          3.141e-01  5.416e-04  579.992  < 2e-16 ***
Avg30           -1.068e-01  6.350e-04 -168.164  < 2e-16 ***
Vapor            9.617e-02  4.383e-04  219.387  < 2e-16 ***
AirCon           1.203e-04  2.999e-06   40.120  < 2e-16 ***
Gini            -3.301e+00  1.185e-01  -27.851  < 2e-16 ***
Income          -2.910e-06  6.053e-08  -48.077  < 2e-16 ***
EnergyCost       9.799e-05  8.588e-07  114.099  < 2e-16 ***
Primary          1.777e-02  9.481e-04   18.749  < 2e-16 ***
Secondary       -5.739e-03  4.339e-04  -13.225  < 2e-16 ***
UrbanParkNum     2.997e-05  1.483e-06   20.212  < 2e-16 ***
UrbanGreenRatio -1.554e-01  2.710e-02   -5.734 9.81e-09 ***
NatureParkRatio -4.013e-03  1.933e-04  -20.766  < 2e-16 ***
NatureParkNum    2.068e-02  4.489e-04   46.062  < 2e-16 ***
Wellfare        -5.096e-07  4.719e-08  -10.799  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

    Null deviance: 1051129  on 71655  degrees of freedom
Residual deviance:  237779  on 71641  degrees of freedom
AIC: 426578

Number of Fisher Scoring iterations: 5

 多重共線性を確認するためにVIFを確認する.

> library(car)
> vif(z)
        MaxTemp           Avg30           Vapor          AirCon 
       1.534149        1.895470        1.674347        1.730607 
           Gini          Income      EnergyCost         Primary 
       1.686180        3.238139        1.551542        4.882376 
      Secondary    UrbanParkNum UrbanGreenRatio NatureParkRatio 
       2.901447        8.837021        9.658774        1.995241 
  NatureParkNum        Wellfare 
       1.409218       11.322891 

考察

Variable Effect size Pro VIF
(Intercept) -22.20 ***  
MaxTemp 0.3141 *** 1.53
Avg30 -0.1068 *** 1.89
Vapor 0.09617 *** 1.67
AirCon 0.0001203 *** 1.73
Gini -3.301 *** 1.68
EnergyCost 0.00009799 *** 1.55
Income -0.000002910 *** 3.23
Primary 0.01777 *** 4.88
Secondary -0.005739 *** 2.90
UrbanParkNum 0.00002997 *** 8.84
UrbanGreenRatio -0.1554 *** 9.66
NatureParkRatio -0.004013 *** 2.00
NatureParkNum 0.02068 *** 1.41
Wellfare -0.0000005096 *** 11.32

過去30日間の平均気温

 「涼しい地域ほど搬送数が増えやすい」との指摘がなされている.言われてみればもっともな話である.本稿ではその涼しさを過去30日間の日平均気温の平均として扱った.過去10日間,過去20日間とも比較したが,過去30日間の平均が最もAICが小さくなったため過去30日間を採用した.逆にそれ以上の日数の平均気温とは比較していない.

エアコン保有台数

 日本の住宅は断熱性・気密性で世界基準よりも性能が劣っている.その低性能な住宅環境を空調で補っている可能性がある.エアコン保有台数はその代替変数である可能性がある.住宅の断熱性能が低いということは外界の温度変化の影響が屋内環境に及びやすいという意味であり,エアコン保有台数と熱中症搬送人員数が正相関を示すことは理にかなっている.

年間収入のジニ係数

 ジニ係数とは格差の変数であり,その値が高いほど格差が大きいという意味である.一般には格差が大きいと貧困層において熱中症搬送人員数が増えるため,ジニ係数と搬送人員数は正相関しそうな気がする.しかし実際にはジニ係数は熱中症搬送人員数と負の相関を示している.日本においては逆に富裕層でも高性能の住宅が普及しておらず,一部の富裕層が高性能の住宅に居住することで搬送人員数が減り,負の相関を示すのかもしれない.またジニ係数は富裕層と貧困層の就労環境の違いにも関連する可能性があり,それは熱中症のリスクに直結している可能性がある.

光熱・水道費

 光熱・水道費は内部に電気料金を含む.搬送人員数と正相関を示している.エアコン保有台数の項でも述べたが,光熱・水道費は低性能な住宅の居住環境を補正するために上昇する可能性がある.つまり,光熱・水道費もまた住宅の性能の代替変数である可能性がある.燃料貧困という言葉がある.収入の1割以上を燃料費に費やしている家庭は燃料貧困の可能性がある.

実収入

 収入と搬送人員数は負の相関を示す.収入は居住している住宅性能の違い,就労現場の温度環境の違いにも影響しており,それは熱中症のリスクに直結するだろう.

第1次産業就業者比率,第2次産業就業者比率

 第1次産業就業者比率は正の相関,第2次産業就業者比率は負の相関を示した.前者は農林水産業,後者は製造業に従事していることを示す.第1次産業就業者が自然環境に直接曝されていることと搬送人員数の正相関を示すことは無関係ではあるまい.第2次産業就業者の就労環境は屋内が多いと考えられ,したがって空調が整備されている可能性がある.第3次産業就業者比率は第1次産業就業者比率と第2次産業就業者比率との和が1となるため解析から除外した.

都市公園数,都市緑化割合

 都市公園数とは正相関,都市緑化割合とは負の相関を示した.前者の理由はよくわからない.公園一つ一つの面積が小さい可能性はある.後者は納得できる.緑地面積が大きければ日陰が増え,気温は下がり,日光に直接曝されるリスクは減る.いわゆるヒートアイランド現象を軽減させる効果があるのだろう.都市緑化割合の効果量が非常に大きいが,都市緑地面積の分布に留意すべきとは思う.

自然公園割合,自然公園数

 自然公園割合とは負の相関,自然公園数とは正相関を示した.自然公園には人の住む住宅は存在せず,自然公園で就労している人も多くはない.しかし自然公園の占める割合が大きいほど搬送人員数が少なくなるというのは納得できる話ではある.

生活保護被保護人員

 生活保護被保護人員とは一見,正相関を示しそうな気がするが,実際には負の相関を示した.この理由も不明である.VIFからは多重共線性の可能性がある.

まとめ

 説明変数として日最高気温,日平均水蒸気圧,都道府県人口に加えて過去30日間の平均気温,エアコン保有台数,年間収入のジニ係数,光熱・水道費,実収入,第1次産業就業者比率,第2次産業就業者比率,都市公園数,都市緑化割合,自然公園割合,自然公園数,生活保護被保護人員を加えたが,すべての変数が有意となった.

 しかしVIFからは生活保護被保護人員や都市公園数,都市緑化割合などが多重共線性の疑いがあり,良いモデルとは言えない.

“e-Statからの社会疫学的指標を加えて熱中症搬送人員数を分析する” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください