{GGally}と{Nippon}パッケージで都道府県データを腰を据えて可視化(したい)
札幌が嘘みたいに暑くて溶けそうです。
クーラー。クーラーほしい。
てーま
・久々に前処理について考えたい
・そういえば日本のコロプレス図やったことない
・SappoRo.Rでも話題に出ていた{GGally}使ってみようかな
てことで
いつものことながらe-statです。
お題
こちらの記事を拝見していて
ほう・・・都道府県でそういう違いもあるのね・・・と。
子供の養育を、父母中心となってやるか、保育園に預けるのがメインか
という都道府県別データがあるとのことなので
自前でいろいろ組み合わせてみました
・都道府県別進学率
・都道府県別学力テスト結果
・都道府県別主要な保育者の割合
を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)
おおお
きれいだ
上対角部分は、それぞれの変数同士の相関係数を表示してくれています。
地域別に表示して貰った結果
変数によっては地域ごとに差が出ていて、階層モデルを適用出来そうな気もしてきますね・・・
(特に進学まわり)
地図にも描いてみよう
あれこれ考えたんですが、
いったん地図上に落としてみようかなと。
{Nippon}パッケージなるものがあるそうなので
使ってみました
#Nippon-------------------------------------------------------------- install.packages("Nippon") #地域別でこんな感じ Nippon::JapanPrefecturesMap(col = tougou_zentai$area) #主な保育方法が「父母」の率を色分け Nippon::JapanPrefecturesMap(col = tougou_zentai$huboritu)
地域の可視化
父母率での可視化
あまりいじってないのでかんたんにできました。
しかしながらデフォルトのカラーパレットは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)
左が父母養育率、右が進学率です。
ぱっと見ただけじゃなんともいえないですが、
関東から西のエリアでは父母養育率と大学進学率のグループ一致が見られるような。
特に父母養育率地域性濃そうだなあ~
階層的な分布でもあるし
もう少し調べてみられるかも。。
ちなみに
私自身両親フル共働きの「保育園型」で育った身なので、
「父母養育型」子育てだと進学率に影響あるよ!みたいな短絡的かつ思想的な話をするつもりは1ミリも無く。
なんとなく出来心のエントリでした。
ああ、休日がもう終わってしまう