次元の海で溺れる

Rとデータ解析と統計手法たちとわたし

{GGally}と{Nippon}パッケージで都道府県データを腰を据えて可視化(したい)

札幌が嘘みたいに暑くて溶けそうです。

クーラー。クーラーほしい。

てーま

・久々に前処理について考えたい
・そういえば日本のコロプレス図やったことない
・SappoRo.Rでも話題に出ていた{GGally}使ってみようかな

てことで
いつものことながらe-statです。

お題

こちらの記事を拝見していて
ほう・・・都道府県でそういう違いもあるのね・・・と。

データえっせい: 47都道府県の保育タイプ

子供の養育を、父母中心となってやるか、保育園に預けるのがメインか
という都道府県別データがあるとのことなので
自前でいろいろ組み合わせてみました

都道府県別進学率
都道府県別学力テスト結果
都道府県別主要な保育者の割合

をe-statからダウンロードしてきて、
どういうアプローチが出来そうか、分析の「手前」部分を考えるというのが本日のメインです

データ整形

このへんはざっくりとscriptのみ。

ID<-read.csv("ID.csv",header=F) #自前の都道府県マスタ
singaku<-read.csv("sinngaku.csv",header=F) #学校基本調査【22-18】
hoiku<-read.csv("hoiku.csv",header=T) #国民生活基礎調査19表
gakuryoku<-read.csv("gakuryoku_chu.csv",header=T) #全国学力・学習状況調査

head(ID)
head(singaku)
head(hoiku)
head(gakuryoku)

#今回は都道府県順が一定なのでrownameをIDとしてつけて、JOINします

#gakuryokuの前処理
library(dplyr)
gakuryoku_kako<-gakuryoku[,-1]
head(gakuryoku_kako)
gakuryoku_kako<-dplyr::mutate(gakuryoku_kako,ID=row.names(gakuryoku_kako)) %>%
  select(.,ID,kokugoA:zentai) 
str(gakuryoku_kako)#なんか一行多い
gakuryoku_kako<-gakuryoku_kako[-48,]#消した
head(gakuryoku_kako)

#singakuの前処理
singaku_kako<-singaku
head(singaku_kako)
str(singaku_kako)
singaku_kako<-singaku_kako[-1,1:2] %>%
  dplyr::mutate(.,ID=as.numeric(row.names(.))-1) %>%
  select(.,ID,V2)
colnames(singaku_kako)<-c("ID","singaku")
head(singaku_kako)

#hoikuの前処理
head(hoiku)
hoiku_kako<-hoiku[-(1:4),]
head(hoiku_kako)
colnames(hoiku_kako)<-c("name","sousu","hubo","souhubo","ninka","ninkagai","youchien","sonota","husyou")
hoiku_kako<-hoiku_kako[,2:5] %>%
  dplyr::mutate(.,ID=as.numeric(row.names(.))-4) %>%
  select(.,ID,sousu,hubo,souhubo,ninka)
head(hoiku_kako)

#保育者が父母の割合、認可保育園の割合に変換
str(hoiku_kako)
hoiku_kako$sousu<-as.numeric(as.character(hoiku_kako$sousu))
hoiku_kako$hubo<-as.numeric(as.character(hoiku_kako$hubo))
hoiku_kako$ninka<-as.numeric(as.character(hoiku_kako$ninka))
head(hoiku_kako)

hoiku_kako<-hoiku_kako[,-4] %>%
  dplyr::mutate(.,huboritu=hubo/sousu*100,hoikuen=ninka/sousu*100) %>%
  select(.,ID,huboritu,hoikuen)
head(hoiku_kako)

#型確認,統合
str(gakuryoku_kako)
str(singaku_kako)
str(hoiku_kako)
str(ID)
gakuryoku_kako$ID<-as.numeric(gakuryoku_kako$ID)
ID$ID<-as.numeric(ID$ID)
colnames(ID)<-c("ID","name","area")


library(dplyr)
tougou<-dplyr::inner_join(ID,singaku_kako,by="ID") %>%
  dplyr::inner_join(.,gakuryoku_kako,by="ID") %>%
  dplyr::inner_join(.,hoiku_kako,by="ID")


#整形後データ
tougou

> tougou
   ID     name     area singaku kokugoA kokugoB sugakuA sugakuB zentai huboritu  hoikuen
1   1   北海道 hokkaido    40.4    76.0    66.2    62.3    39.1   63.4 47.69874 30.54393
2   2   青森県   tohoku    41.9    78.8    67.7    65.0    42.4   66.1 32.05128 52.56410
3   3   岩手県   tohoku    41.2    78.2    68.1    59.9    37.4   63.1 35.08772 49.12281
4   4   宮城県   tohoku    45.5    77.6    68.6    62.2    39.7   64.3 44.82759 25.00000
5   5   秋田県   tohoku    44.5    81.9    74.6    68.9    47.5   70.2 38.00000 50.00000
6   6   山形県   tohoku    46.3    78.9    69.1    63.1    40.7   65.2 34.00000 42.00000
7   7   福島県   tohoku    42.3    77.3    66.4    61.0    38.1   63.1 43.67816 25.28736
8   8   茨城県   kantou    50.9    77.2    69.5    62.9    42.1   64.9 45.18519 35.55556
9   9   栃木県   kantou    54.3    77.2    68.0    63.8    41.1   64.9 41.58416 28.71287
10 10   群馬県   kantou    52.5    78.1    68.8    64.9    42.8   66.1 39.78495 45.16129
11 11   埼玉県   kantou    57.1    76.5    68.8    62.8    40.6   64.3 50.13699 25.20548
12 12   千葉県   kantou    54.8    76.2    68.1    63.2    41.5   64.3 46.76923 24.61538
13 13   東京都   kantou    65.5    77.3    69.3    65.2    43.2   65.9 48.83721 28.57143
14 14 神奈川県   kantou    60.8    76.3    68.9    63.8    41.9   64.8 48.89868 21.14537
15 15   新潟県    tyubu    47.3    76.5    66.6    62.7    39.2   63.9 35.71429 53.57143
16 16   富山県    tyubu    54.2    78.9    70.4    65.8    43.9   66.9 36.17021 53.19149
17 17   石川県    tyubu    54.8    78.3    70.7    66.6    45.0   67.4 36.66667 60.00000
18 18   福井県    tyubu    56.0    80.0    71.7    69.9    49.2   70.1 29.26829 60.97561
19 19   山梨県    tyubu    57.9    76.9    67.4    62.1    40.0   63.9 42.85714 42.85714
20 20   長野県    tyubu    49.6    76.8    65.9    61.9    40.2   63.7 44.44444 50.50505
21 21   岐阜県    tyubu    57.1    77.1    70.2    66.6    45.7   67.0 42.70833 32.29167
22 22   静岡県    tyubu    54.1    77.1    68.7    65.0    44.6   66.0 47.12042 26.17801
23 23   愛知県    tyubu    58.9    76.3    67.1    66.3    44.5   66.0 48.26790 32.79446
24 24   三重県   kansai    52.2    75.0    65.8    63.2    39.3   63.4 41.30435 41.30435
25 25   滋賀県   kansai    58.0    75.5    65.6    64.4    40.4   64.3 44.30380 32.91139
26 26   京都府   kansai    66.1    76.3    68.2    64.2    42.9   65.1 39.68254 40.47619
27 27   大阪府   kansai    58.7    73.3    63.0    61.7    38.8   61.9 48.90511 29.68370
28 28   兵庫県   kansai    59.9    76.8    67.0    65.9    43.8   65.9 53.39506 28.08642
29 29   奈良県   kansai    58.1    77.1    67.5    65.5    42.9   65.9 54.23729 30.50847
30 30 和歌山県   kansai    49.3    74.4    64.3    63.4    40.3   63.3 48.78049 36.58537
31 31   鳥取県  tyugoku    43.9    77.6    68.6    64.8    43.0   65.8 34.61538 53.84615
32 32   島根県  tyugoku    47.2    77.2    69.1    62.9    40.8   64.5 30.30303 63.63636
33 33   岡山県  tyugoku    52.9    76.4    66.4    62.8    40.3   63.9 47.27273 34.54545
34 34   広島県  tyugoku    61.1    76.7    69.2    64.8    43.5   65.6 40.66667 43.33333
35 35   山口県  tyugoku    43.2    77.3    68.3    65.5    44.2   66.1 49.29577 29.57746
36 36   徳島県  shikoku    53.0    76.5    64.9    65.4    42.6   65.3 39.39394 39.39394
37 37   香川県  shikoku    51.1    76.6    67.0    66.3    44.6   66.1 35.55556 40.00000
38 38   愛媛県  shikoku    52.7    76.5    67.2    64.5    44.0   65.3 44.77612 29.85075
39 39   高知県  shikoku    45.4    74.3    64.8    59.3    35.4   60.9 28.94737 55.26316
40 40   福岡県   kyusyu    53.3    75.4    66.5    62.0    39.8   63.2 43.70370 34.07407
41 41   佐賀県   kyusyu    42.3    75.3    65.8    61.7    39.5   62.9 37.77778 44.44444
42 42   長崎県   kyusyu    42.2    76.1    66.6    63.2    41.3   64.2 41.17647 41.17647
43 43   熊本県   kyusyu    43.1    76.6    67.1    63.4    43.0   64.7 42.04545 45.45455
44 44   大分県   kyusyu    47.4    76.0    66.7    62.0    39.2   63.3 50.68493 31.50685
45 45   宮崎県   kyusyu    43.0    76.1    66.4    64.0    41.4   64.4 36.66667 51.66667
46 46 鹿児島県   kyusyu    42.0    75.4    64.8    61.5    39.2   62.7 36.55914 41.93548
47 47   沖縄県  okinawa    36.7    69.2    62.4    53.2    29.8   55.5 35.95506 33.70787

{GGaly}を使ってみよう

データが整ったので変数同士の相関を見たい。
普通にpairs()とかしてもよいのですが、どうやら巷にはggpairs()なる
ggplot2っぽい散布行列があるらしい・・・

このままだと説明変数が多くて見にくくなりそうなので、
今回は

"singaku","zentai","huboritu","hoikuen"

に的を絞って試してみます

自称「都道府県マスタ」を使って
都道府県に対して地域情報(東北、関東、中部・・・etc)
を加えたので、地域別に色分けもしてみました

install.packages("GGally")
library(GGally)
tougou_zentai<-tougou
head(tougou_zentai)
tougou_zentai<-tougou_zentai[,-(5:8)]

GGally::ggpairs(data = tougou_zentai,columns =4:ncol(tougou_zentai),colour="area",pointsize=9)

f:id:WAFkw:20150712222744p:plain

おおお
きれいだ

上対角部分は、それぞれの変数同士の相関係数を表示してくれています。

地域別に表示して貰った結果
変数によっては地域ごとに差が出ていて、階層モデルを適用出来そうな気もしてきますね・・・
(特に進学まわり)

地図にも描いてみよう

あれこれ考えたんですが、
いったん地図上に落としてみようかなと。

{Nippon}パッケージなるものがあるそうなので
使ってみました

#Nippon--------------------------------------------------------------
install.packages("Nippon")

#地域別でこんな感じ
Nippon::JapanPrefecturesMap(col = tougou_zentai$area)

#主な保育方法が「父母」の率を色分け
Nippon::JapanPrefecturesMap(col = tougou_zentai$huboritu)

地域の可視化
f:id:WAFkw:20150712223714p:plain

父母率での可視化
f:id:WAFkw:20150712223724p:plain


あまりいじってないのでかんたんにできました。

しかしながらデフォルトのカラーパレットはRGB系かつ8色なので、
どーも見ずらい。

あと、父母による養育率が地域ごとにバラついてるの?どうなの?色かぶってるだけ?
という感じなので、ある程度数値をまとめてグループにしてみることに。

数値データの離散化

たとえばたとえば、

0~20%:1
21~40%:2

みたいな感じに、データの幅でグループに分けられたらいいなあと。

huboritu(父母養育率)と
singaku(進学率)

でそれぞれ試してみます。

#huborituのクラス分けを追加----------------------------------------

install.packages("infotheo")
head(tougou_zentai,10)

x=infotheo::discretize(subset(tougou_zentai,select=huboritu),disc="equalwidth")
colnames(x)<-c("huboritu_class")
tougou_zentai<-cbind(tougou_zentai,x)

#singakuのクラス分け---------------------------------------------
x_singaku=infotheo::discretize(subset(tougou_zentai,select=singaku),disc="equalwidth")
colnames(x_singaku)<-c("singaku_class")
tougou_zentai<-cbind(tougou_zentai,x_singaku)


#出来たデータ
> tougou_zentai
   ID     name     area singaku zentai huboritu  hoikuen huboritu_class singaku_class
1   1   北海道 hokkaido    40.4   63.4 47.69874 30.54393              3             1
2   2   青森県   tohoku    41.9   66.1 32.05128 52.56410              1             1
3   3   岩手県   tohoku    41.2   63.1 35.08772 49.12281              1             1
4   4   宮城県   tohoku    45.5   64.3 44.82759 25.00000              2             1
5   5   秋田県   tohoku    44.5   70.2 38.00000 50.00000              2             1
6   6   山形県   tohoku    46.3   65.2 34.00000 42.00000              1             1
7   7   福島県   tohoku    42.3   63.1 43.67816 25.28736              2             1
8   8   茨城県   kantou    50.9   64.9 45.18519 35.55556              2             2
9   9   栃木県   kantou    54.3   64.9 41.58416 28.71287              2             2
10 10   群馬県   kantou    52.5   66.1 39.78495 45.16129              2             2
11 11   埼玉県   kantou    57.1   64.3 50.13699 25.20548              3             3
12 12   千葉県   kantou    54.8   64.3 46.76923 24.61538              3             2
13 13   東京都   kantou    65.5   65.9 48.83721 28.57143              3             3
14 14 神奈川県   kantou    60.8   64.8 48.89868 21.14537              3             3
15 15   新潟県    tyubu    47.3   63.9 35.71429 53.57143              1             2
16 16   富山県    tyubu    54.2   66.9 36.17021 53.19149              1             2
17 17   石川県    tyubu    54.8   67.4 36.66667 60.00000              1             2
18 18   福井県    tyubu    56.0   70.1 29.26829 60.97561              1             2
19 19   山梨県    tyubu    57.9   63.9 42.85714 42.85714              2             3
20 20   長野県    tyubu    49.6   63.7 44.44444 50.50505              2             2
21 21   岐阜県    tyubu    57.1   67.0 42.70833 32.29167              2             3
22 22   静岡県    tyubu    54.1   66.0 47.12042 26.17801              3             2
23 23   愛知県    tyubu    58.9   66.0 48.26790 32.79446              3             3
24 24   三重県   kansai    52.2   63.4 41.30435 41.30435              2             2
25 25   滋賀県   kansai    58.0   64.3 44.30380 32.91139              2             3
26 26   京都府   kansai    66.1   65.1 39.68254 40.47619              2             3
27 27   大阪府   kansai    58.7   61.9 48.90511 29.68370              3             3
28 28   兵庫県   kansai    59.9   65.9 53.39506 28.08642              3             3
29 29   奈良県   kansai    58.1   65.9 54.23729 30.50847              3             3
30 30 和歌山県   kansai    49.3   63.3 48.78049 36.58537              3             2
31 31   鳥取県  tyugoku    43.9   65.8 34.61538 53.84615              1             1
32 32   島根県  tyugoku    47.2   64.5 30.30303 63.63636              1             2
33 33   岡山県  tyugoku    52.9   63.9 47.27273 34.54545              3             2
34 34   広島県  tyugoku    61.1   65.6 40.66667 43.33333              2             3
35 35   山口県  tyugoku    43.2   66.1 49.29577 29.57746              3             1
36 36   徳島県  shikoku    53.0   65.3 39.39394 39.39394              2             2
37 37   香川県  shikoku    51.1   66.1 35.55556 40.00000              1             2
38 38   愛媛県  shikoku    52.7   65.3 44.77612 29.85075              2             2
39 39   高知県  shikoku    45.4   60.9 28.94737 55.26316              1             1
40 40   福岡県   kyusyu    53.3   63.2 43.70370 34.07407              2             2
41 41   佐賀県   kyusyu    42.3   62.9 37.77778 44.44444              2             1
42 42   長崎県   kyusyu    42.2   64.2 41.17647 41.17647              2             1
43 43   熊本県   kyusyu    43.1   64.7 42.04545 45.45455              2             1
44 44   大分県   kyusyu    47.4   63.3 50.68493 31.50685              3             2
45 45   宮崎県   kyusyu    43.0   64.4 36.66667 51.66667              1             1
46 46 鹿児島県   kyusyu    42.0   62.7 36.55914 41.93548              1             1
47 47   沖縄県  okinawa    36.7   55.5 35.95506 33.70787              1             1

右側2列に、進学率と父母養育率のデータを等間隔に3分割したグループが追加されました。

これを基に改めて日本を描いてみます

#父母養育率(グループ色分け)
Nippon::JapanPrefecturesMap(col = tougou_zentai$huboritu_class)
#進学率(グループ色分け)
Nippon::JapanPrefecturesMap(col = tougou_zentai$singaku_class)

f:id:WAFkw:20150712224955p:plainf:id:WAFkw:20150712225018p:plain

左が父母養育率、右が進学率です。

ぱっと見ただけじゃなんともいえないですが、
関東から西のエリアでは父母養育率と大学進学率のグループ一致が見られるような。

特に父母養育率地域性濃そうだなあ~

階層的な分布でもあるし
もう少し調べてみられるかも。。

ちなみに

私自身両親フル共働きの「保育園型」で育った身なので、
「父母養育型」子育てだと進学率に影響あるよ!みたいな短絡的かつ思想的な話をするつもりは1ミリも無く。

なんとなく出来心のエントリでした。


ああ、休日がもう終わってしまう