分析用データを集めることから考えて「R言語」で相関可視化・・・集めたデータは転出者数、待機児童率、新型コロナ感染者数など

##データを探す

相関分析を**R言語**で試してみました。
ただ、目的は**R**を使うことでなく、どういうデータが揃えられるかを調べることでした。
集めたデータの使い道の1例として、**R言語**で相関係数を求めたり、散布図を描いたりしました。
**R**については分析するというより、データ収集の傍ら、基本操作の使い方を覚えるために使用したという感じです。

集めたデータは以下の通りです。
取得したデータを手元で集計したものもあります。

>●都道府県別転人者数前年同月比（YoY%）
>　[総務省統計局・住民基本台帳人口移動報告 月報](https://www.stat.go.jp/data/idou/sokuhou/tsuki/index.html)
>●都道府県別転出者数前年同月比（YoY%）
>　[総務省統計局・住民基本台帳人口移動報告 月報](https://www.stat.go.jp/data/idou/sokuhou/tsuki/index.html)
>●人口密度km2（2020年推計）
>　[総務省統計局・平成27年国勢調査](https://www.stat.go.jp/data/kokusei/2015/kekka.html)
>●年平均気温【ﾟC】
>　[総務省統計局・社会・人口統計体系 都道府県データ 社会生活統計指標](https://www.stat.go.jp/data/shihyou/naiyou.html)
>●降水日数（年間）【日】
>　[総務省統計局・社会・人口統計体系 都道府県データ 社会生活統計指標](https://www.stat.go.jp/data/shihyou/naiyou.html)
>●日照時間（年間）【時間】
>　[総務省統計局・社会・人口統計体系 都道府県データ 社会生活統計指標](https://www.stat.go.jp/data/shihyou/naiyou.html)
>●待機児童率（%）
>　[厚生労働省・保育所等関連状況取りまとめ及び「子育て安心プラン」集計結果](https://www.mhlw.go.jp/stf/newpage_13237.html)
>●一人当たり公園面積（㎡/人）
>　[国土交通省・都市公園データベース](https://www.mlit.go.jp/crd/park/joho/database/t_kouen/index.html)
>●10万人当たりの新型コロナウイルス感染者数
>　[NHK・新型コロナウイルス特設サイト](https://www3.nhk.or.jp/news/special/coronavirus/data/)
>●消費支出（円）
>　[総務省統計局・家計調査](https://www.stat.go.jp/data/kakei/sokuhou/tsuki/index.html#nen)

>※消費支出については[以前少し触れています](https://qiita.com/text_owleyes_0214/items/9e1acaf18e989b5c0332)

##Rで取り込み

用意したデータをcsv形式にし、Rで取り込みます。

```R
pref_st01 <- read.csv("（転出者数）_etc.csv", header=T)
head(pref_st01)
  No X2020年エリア 転出者数.YoY. 人口密度km2 年平均気温.ﾟC. 降水日数.年間..日.
1  1        北海道         -8.56        67.4            9.8                131
2  2        青森県         -7.97       130.9           11.4                140
3  3        岩手県         -8.75        81.2           11.3                107
4  4        宮城県         -8.76       318.0           13.6                 97
5  5        秋田県         -6.24        84.3           12.9                151
6  6        山形県         -9.76       116.9           12.8                131
  日照時間.年間..時間. 待機児童率 X1人当たり公園面積...人.
1               1987.7       0.15                     39.9
2               1877.4       0.00                     18.3
3               1882.9       0.19                     15.9
4               2056.0       0.76                     24.3
5               1833.7       0.10                     23.6
6               1789.8       0.00                     20.6
  X10万人当たり感染者数 消費支出前年比.都市の値.
1             254.21869                 2.375781
2              38.16310                 3.395605
3              31.02337                -8.291920
4              94.60276                -4.122677
5              14.27115                 1.278008
6              35.50459                -4.157456

str(pref_st01)
'data.frame':	47 obs. of  11 variables:
 $ No                      : int  1 2 3 4 5 6 7 8 9 10 ...
 $ X2020年エリア           : Factor w/ 47 levels "愛知県","愛媛県",..: 46 27 6 9 24 19 44 3 39 12 ...
 $ 転出者数.YoY.           : num  -8.56 -7.97 -8.75 -8.76 -6.24 -9.76 -3.64 -7.44 -11.2 -6.76 ...
 $ 人口密度km2             : num  67.4 130.9 81.2 318 84.3 ...
 $ 年平均気温.ﾟC.          : num  9.8 11.4 11.3 13.6 12.9 12.8 14 14.9 14.9 15.7 ...
 $ 降水日数.年間..日.      : int  131 140 107 97 151 131 109 102 120 103 ...
 $ 日照時間.年間..時間.    : num  1988 1877 1883 2056 1834 ...
 $ 待機児童率              : num  0.15 0 0.19 0.76 0.1 0 0.4 0.32 0.08 0.03 ...
 $ X1人当たり公園面積...人.: num  39.9 18.3 15.9 24.3 23.6 20.6 14.3 9.9 14.7 14.3 ...
 $ X10万人当たり感染者数   : num  254.2 38.2 31 94.6 14.3 ...
 $ 消費支出前年比.都市の値.: num  2.38 3.4 -8.29 -4.12 1.28 ...
```
実際にはデータが整数型でなく文字列型になっていたりするなどし、Excelで型の変更などをしました。

##相関係数を計算します

**cor関数**を使用します。

```R
pref_cor01 <- cor(pref_st01[,3:11])
pref_cor01
                         転出者数.YoY. 人口密度km2 年平均気温.ﾟC.
転出者数.YoY.               1.00000000  0.61918151     0.26968872
人口密度km2                 0.61918151  1.00000000     0.16452684
年平均気温.ﾟC.              0.26968872  0.16452684     1.00000000
降水日数.年間..日.         -0.15401750 -0.18981636    -0.20864833
日照時間.年間..時間.       -0.06283078  0.07844484     0.15528810
待機児童率                  0.30884078  0.18387185     0.43478527
X1人当たり公園面積...人.   -0.34148917 -0.43357004    -0.57541637
X10万人当たり感染者数       0.53370269  0.76651911     0.30472336
消費支出前年比.都市の値.    0.04168920 -0.06103022     0.08978755
                         降水日数.年間..日. 日照時間.年間..時間.  待機児童率
転出者数.YoY.                   -0.15401750          -0.06283078  0.30884078
人口密度km2                     -0.18981636           0.07844484  0.18387185
年平均気温.ﾟC.                  -0.20864833           0.15528810  0.43478527
降水日数.年間..日.               1.00000000          -0.74465307 -0.17978692
日照時間.年間..時間.            -0.74465307           1.00000000 -0.10032263
待機児童率                      -0.17978692          -0.10032263  1.00000000
X1人当たり公園面積...人.         0.33401642          -0.27951232 -0.24579499
X10万人当たり感染者数           -0.17634134           0.03497603  0.49144967
消費支出前年比.都市の値.         0.07348163          -0.02008604  0.08178602
                         X1人当たり公園面積...人. X10万人当たり感染者数
転出者数.YoY.                          -0.3414892            0.53370269
人口密度km2                            -0.4335700            0.76651911
年平均気温.ﾟC.                         -0.5754164            0.30472336
降水日数.年間..日.                      0.3340164           -0.17634134
日照時間.年間..時間.                   -0.2795123            0.03497603
待機児童率                             -0.2457950            0.49144967
X1人当たり公園面積...人.                1.0000000           -0.27580833
X10万人当たり感染者数                  -0.2758083            1.00000000
消費支出前年比.都市の値.               -0.0171072            0.08766618
                         消費支出前年比.都市の値.
転出者数.YoY.                          0.04168920
人口密度km2                           -0.06103022
年平均気温.ﾟC.                         0.08978755
降水日数.年間..日.                     0.07348163
日照時間.年間..時間.                  -0.02008604
待機児童率                             0.08178602
X1人当たり公園面積...人.              -0.01710720
X10万人当たり感染者数                  0.08766618
消費支出前年比.都市の値.               1.00000000
```

上記の結果は行列（matrix）型です。
また、表示を小数点第３位までにし、見やすくしました。

```R
class(pref_cor01)
[1] "matrix"

pref_cor02 <- round(cor(pref_st01[,3:11]), 3)
pref_cor02
                         転出者数.YoY. 人口密度km2 年平均気温.ﾟC.
転出者数.YoY.                    1.000       0.619          0.270
人口密度km2                      0.619       1.000          0.165
年平均気温.ﾟC.                   0.270       0.165          1.000
降水日数.年間..日.              -0.154      -0.190         -0.209
日照時間.年間..時間.            -0.063       0.078          0.155
待機児童率                       0.309       0.184          0.435
X1人当たり公園面積...人.        -0.341      -0.434         -0.575
X10万人当たり感染者数            0.534       0.767          0.305
消費支出前年比.都市の値.         0.042      -0.061          0.090
                         降水日数.年間..日. 日照時間.年間..時間. 待機児童率
転出者数.YoY.                        -0.154               -0.063      0.309
人口密度km2                          -0.190                0.078      0.184
年平均気温.ﾟC.                       -0.209                0.155      0.435
降水日数.年間..日.                    1.000               -0.745     -0.180
日照時間.年間..時間.                 -0.745                1.000     -0.100
待機児童率                           -0.180               -0.100      1.000
X1人当たり公園面積...人.              0.334               -0.280     -0.246
X10万人当たり感染者数                -0.176                0.035      0.491
消費支出前年比.都市の値.              0.073               -0.020      0.082
                         X1人当たり公園面積...人. X10万人当たり感染者数
転出者数.YoY.                              -0.341                 0.534
人口密度km2                                -0.434                 0.767
年平均気温.ﾟC.                             -0.575                 0.305
降水日数.年間..日.                          0.334                -0.176
日照時間.年間..時間.                       -0.280                 0.035
待機児童率                                 -0.246                 0.491
X1人当たり公園面積...人.                    1.000                -0.276
X10万人当たり感染者数                      -0.276                 1.000
消費支出前年比.都市の値.                   -0.017                 0.088
                         消費支出前年比.都市の値.
転出者数.YoY.                               0.042
人口密度km2                                -0.061
年平均気温.ﾟC.                              0.090
降水日数.年間..日.                          0.073
日照時間.年間..時間.                       -0.020
待機児童率                                  0.082
X1人当たり公園面積...人.                   -0.017
X10万人当たり感染者数                       0.088
消費支出前年比.都市の値.                    1.000
```
##散布図行列を描きます

このままではわかりにくいので、一旦散布図行列を描くことにしました。

```R
par(family = "HiraKakuProN-W3") #Macでの日本語の文字化けを防ぎます
plot(pref_st01[,3:11]
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/051684b2-dfa4-5896-c824-2583d37f1dcf.png)

**「psych」ライブラリ**を使い「相関係数」，「ヒストグラム」，「回帰直線」も描きます。

```R
library(psych)
dev.new()
par(family = "HiraKakuProN-W3")
pairs.panels(pref_st01[,3:11])
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/56af0274-25d7-0c8a-43a4-41ce6d54512e.png)

##相関状態を見るために散布図を使います

「転出者数前年比」に対する相関を可視化してみます。
まず、相関係数が大きい「転出者数前年比」と「人口密度」の散布図を描いてみます。

```R
dev.new()
par(family = "HiraKakuProN-W3")
plot(pref_st01[,4], pref_st01[,3], xlab="人口密度", ylab="転出者数前年比")
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/02a1f6db-876b-f8b4-beb6-8f62d7028023.png)

プロットした箇所に、県名のラベルを付与します。

```R
text(pref_st01[,4], pref_st01[,3], labels=pref_st01[,2])
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/d0f53244-247e-8b33-3582-2749f2cb885d.png)

次に、「転出者数前年比」と「待機児童率」の散布図を描いてみます。

```R
dev.new()
par(family = "HiraKakuProN-W3")
plot(pref_st01[,8], pref_st01[,3], xlab="待機児童率", ylab="転出者数前年比")
text(pref_st01[,8], pref_st01[,3], labels=pref_st01[,2])
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/d46f58ba-68ee-8e73-5b4d-34e347912d19.png)

負の相関のケースも試してみます。

```R
dev.new()
par(family = "HiraKakuProN-W3")
plot(pref_st01[,9], pref_st01[,3], xlab="1人当たりの公園面積", ylab="転出者数前年比")
text(pref_st01[,9], pref_st01[,3], labels=pref_st01[,2])
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/1acb4f5e-d85e-fb17-0fb0-53e06e943082.png)

新型コロナの感染者数（10万人当たり）に対する相関もです。

```R
dev.new()
par(family = "HiraKakuProN-W3")
plot(pref_st01[,10], pref_st01[,3], xlab="10万人当たりの感染者数", ylab="転出者数前年比")
text(pref_st01[,10], pref_st01[,3], labels=pref_st01[,2])
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/8ea3a20e-26a8-6077-d463-06affa8b8916.png)

次に、転入者数に対する相関を調べてみます。

```R
pref_st02 <- read.csv("（転入者数）covid_popu_etc_20210417.csv", header=T)
head(pref_st02)
str(pref_st02)
'data.frame':	47 obs. of  11 variables:
 $ No                      : int  1 2 3 4 5 6 7 8 9 10 ...
 $ X2020年エリア           : Factor w/ 47 levels "愛知県","愛媛県",..: 46 27 6 9 24 19 44 3 39 12 ...
 $ 転入者数.YoY.           : num  -1.38 -2.47 -7.74 -2.08 -2.82 -4.77 -4.19 0.5 -2.21 -1.64 ...
 $ 人口密度km2             : num  67.4 130.9 81.2 318 84.3 ...
 $ 年平均気温.ﾟC.          : num  9.8 11.4 11.3 13.6 12.9 12.8 14 14.9 14.9 15.7 ...
 $ 降水日数.年間..日.      : int  131 140 107 97 151 131 109 102 120 103 ...
 $ 日照時間.年間..時間.    : num  1988 1877 1883 2056 1834 ...
 $ 待機児童率              : num  0.15 0 0.19 0.76 0.1 0 0.4 0.32 0.08 0.03 ...
 $ X1人当たり公園面積...人.: num  39.9 18.3 15.9 24.3 23.6 20.6 14.3 9.9 14.7 14.3 ...
 $ X10万人当たり感染者数   : num  254.2 38.2 31 94.6 14.3 ...
 $ 消費支出前年比.都市の値.: num  2.38 3.4 -8.29 -4.12 1.28 ...
```
同様に3〜11列目の相関係数を計算します。
**pairs.panels**を使った可視化も行います。

```R
pref_cor02 <- cor(pref_st02[,3:11])
pref_cor02
dev.new()
par(family = "HiraKakuProN-W3")
pairs.panels(pref_st02[,3:11])
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/583cdc9c-cfed-c42e-1a30-1ad28534dd2e.png)

「転出者数」との比較のために、「人口密度」「待機児童率」「1人当たりの公園面積」「新型コロナの感染者数（10万人当たり）」、それぞれ散布図を描きました。

```R
#対「人口密度」
dev.new()
par(family = "HiraKakuProN-W3")
plot(pref_st02[,4], pref_st02[,3], xlab="人口密度", ylab="転入者数前年比")
text(pref_st02[,4], pref_st02[,3], labels=pref_st01[,2])

#対「待機児童率」
dev.new()
par(family = "HiraKakuProN-W3")
plot(pref_st02[,8], pref_st02[,3], xlab="待機児童率", ylab="転入者数前年比")
text(pref_st02[,8], pref_st02[,3], labels=pref_st01[,2])

#対「1人当たりの公園面積」
dev.new()
par(family = "HiraKakuProN-W3")
plot(pref_st02[,9], pref_st02[,3], xlab="1人当たりの公園面積", ylab="転入者数前年比")
text(pref_st02[,9], pref_st02[,3], labels=pref_st01[,2])

#対「新型コロナの感染者数」
dev.new()
par(family = "HiraKakuProN-W3")
plot(pref_st02[,10], pref_st02[,3], xlab="10万人当たりの感染者数", ylab="転入者数前年比")
text(pref_st02[,10], pref_st02[,3], labels=pref_st01[,2])
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/c062d644-d34c-79b8-25c6-1247962ed00c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/53082052-1f0e-6d49-c29b-a5964c1e9b3a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/e649255b-fd70-e25c-6400-4bea785a9efd.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1143963/1ee2a8a8-2b2d-96a2-4c4d-05480d77dbb4.png)

**了**