www.crosshyou.info

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

水害統計調査の分析3 - 各都道府県の水害の死者、行方不明者、負傷者、被害額

 

www.crosshyou.info

 の続きです。

今回は各都道府県だけのR言語データフレームを作成して基本統計量や最も被害があったのは何年のどこの県かなどを調べてみたいと思います。

subset関数で作成するのは同じです。

f:id:cross_hyou:20190112102558j:plain

まずは上のようにkakuという名前のデータフレームを用意して、「全国」を削除しました。削除のときは、都道府県 != "全国" のようにします。

続いて、〇〇地方を削除しましょう。

f:id:cross_hyou:20190112103550j:plain



前回の地方だけのデータフレーム作成に使用したコードを少し手直しして作成します。

kaku$都道府県には、全国や関東地方などいらないファクタのLevelsが残っていますから削除しましょう。

f:id:cross_hyou:20190112103639j:plain

str関数を実行すると、Factor w/47 levels と表示されています。Levelsが47都道府県だけになったことがわかります。

order関数を使って並び替え表示をしましょう。まずは一番被害者の合計人数が多かったのは何年のどこの県でしょうか?

f:id:cross_hyou:20190112104433j:plain

2006年の宮崎県は158名の被害者で一番多いです。

死者はどうでしょうか?

f:id:cross_hyou:20190112104627j:plain

2014年の広島県が77名で一番でした。

行方不明者はどうでしょうか?

f:id:cross_hyou:20190112104839j:plain

2011年の奈良県が10名で一番でした。

負傷者はどうでしょうか?

f:id:cross_hyou:20190112105130j:plain

2006年の宮崎県が155名で一番でした。

被害額はどうでしょうか?

f:id:cross_hyou:20190112105346j:plain

2011年の和歌山県が1556億8200万円で一番でした。

この水害統計調査のデータは2006年から2014年までの9年間です。この9年間合計の値を都道府県ごとにまとめてみましょう。tapply関数とsum関数でいけると思います。

まずは被害者の合計人数です。

f:id:cross_hyou:20190112110755j:plain

sort関数で大きい順に並べています。宮崎県が9年間合計で186人で一番です。

死者はどうでしょうか?

f:id:cross_hyou:20190112111112j:plain

広島県が86人で一番です。群馬、山梨、青森、大阪、長崎は9年間で死者が一人もいません。

行方不明者をみてみましょう。

f:id:cross_hyou:20190112111619j:plain

奈良県が10人で一番です。行方不明者は少ないですね。

負傷者はどうでしょうか?

f:id:cross_hyou:20190112112003j:plain

宮崎県が182人で一番です。

被害額をみます。

f:id:cross_hyou:20190112112410j:plain

兵庫県が2058億3100万円で一番です。

こうして作成した合計合計値、死者合計値、行方不明者合計値、負傷者合計値、被害額合計値をまとめたデータフレームを作成します。data.frame関数で作成できます。

f:id:cross_hyou:20190112114049j:plain

このように作成できました。

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。

水害統計調査の分析2 - 各地方の水害の死者、行方不明者、負傷者、被害額

 

www.crosshyou.info

 の続きです。

今回は各地方だけのデータフレームを作成して、基本統計量を作成したいと思います。

subset関数で作成します。

f:id:cross_hyou:20190111122446j:plain

summary関数で基本統計量を表示しました。最大で81名の死者が出た地方があります。合計の最小値が0ですから、水害で被害にあった人がいなかった地方があることがわかります。

時間軸でグルーピングしてsummary関数を適用しましょう。by関数を利用します。

f:id:cross_hyou:20190111123136j:plain

f:id:cross_hyou:20190111123239j:plain

f:id:cross_hyou:20190111123328j:plain

f:id:cross_hyou:20190111123405j:plain

とりあえずby関数とsummary関数を実行してみましたが、データが多すぎてよくわからないですね。。

こんどはby関数とsummary関数を地方でグルーピングしてみましょう。

f:id:cross_hyou:20190111123814j:plain

あら。。。愛知県や愛媛県などデータが無いけど残っていいるファクターもグルーピングされてしまうのですね。削除しましょう。

f:id:cross_hyou:20190111125220j:plain



as.character関数でファクタ形式のデータを文字列形式のデータに変換し、factor関数で再度ファクタに変換しました。これでもう一回、by関数でやってみます。

f:id:cross_hyou:20190111125413j:plain

f:id:cross_hyou:20190111125425j:plain

f:id:cross_hyou:20190111125439j:plain

f:id:cross_hyou:20190111125450j:plain

うまくできましたね。

前回の全国だけのデータフレーム、allの都道府県 もいらないファクタレベルが残っていますから同じように削除しておきましょう。

f:id:cross_hyou:20190111125752j:plain

はい、Levels:のところが「全国」だけになりましたね。

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。

水害統計調査の分析1 - 全国の水害の死者、行方不明者、負傷者、被害額

昨年は水害が多かったですね。

そこで今回は、国土交通省の「水害統計調査」のデータを使って全国の水害の死者、行方不明者、負傷者、被害額を見てみようと思います。

f:id:cross_hyou:20190110141012j:plain

水害統計調査は、1年間に発生した洪水、内水、高潮、津波、土石流等の水害被害を対象に、個人・法人が所有する各種資産、河川・道路等の公共土木施設及び運輸・通信等の公益事業施設等について、規模の大小を問わず1件1件その実態を調査している我が国唯一の統計調査であり、昭和36年より毎年継続して実施されております。

とのことです。

https://www.e-stat.go.jp/stat-search/database?page=1&toukei=00600590&tstat=000001088135&result_page=1

ここからデータを取得して、R言語に読込ませる為に事前処理をして下図のようなCSVファイルを作成しました。

f:id:cross_hyou:20190110141501j:plain

このC列からF列は人数で、G列の被害額は百万円単位です。なので、2014年の被害額は、2938億0800万円という大きな金額です。

早速、read.csv関数でR言語に読込みます。

f:id:cross_hyou:20190110142054j:plain

このデータフレームは各都道府県、関東地方などの地方、全国と3つのレベルの地域区分が一つになってしまっているので、まずは、全国レベルだけで見てみましょう。全国だけのデータフレームをsubset関数で作成します。

f:id:cross_hyou:20190110142854j:plain

2006年から2014年までのデータですね。死者は2011年が109人で一番多いですね。被害額も2011年が一番多く7286億7200万円もありました。

summary関数で基本統計量を算出します。

f:id:cross_hyou:20190110143214j:plain

標準偏差をapply関数とsd関数で算出します。

f:id:cross_hyou:20190110143417j:plain

変動係数(標準偏差 / 平均値)も算出しておきましょう。

f:id:cross_hyou:20190110143809j:plain


負傷者の数が一番年ごとのバラツキがあることがわかります。

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。

 

厚生年金保険データの分析7 - R言語でクロス表分析をする

 

www.crosshyou.info

 の続きです。

今回は東日本と西日本、人口の多い県と少ない県などと、男性優位の県と女性優位の県という二分するファクターを作り、クロス表分析をしようと思います。

まずは、東日本と西日本のファクターを作成しましょう。

まず、都道府県がどういう順番で登録されているかを見てみましょう。

f:id:cross_hyou:20190109120829j:plain

このようになっていますから、23番目の愛知県までを東日本、それ以降を西日本としましょう。

こんな感じでrep関数、c関数、factor関数を使って作りました。

f:id:cross_hyou:20190109121247j:plain

人口の多い県、少ない県は、data$被保険者数 を使って、ifelse関数、median関数、factor関数で作成しました。

f:id:cross_hyou:20190109121802j:plain

男性優位、女性優位は前回作成したMF_Scoreを使って、ifelse関数、median関数、factor関数で作成します。

f:id:cross_hyou:20190109122309j:plain

MF_Scoreはそれぞれの要素に名前がついていたので、上のような結果になっています。愛知は男性優位、沖縄は女性優位になっていますね。

EWとPOPの各要素にも都道府県名を付与しておきましょう。names関数です。

f:id:cross_hyou:20190109122537j:plain

f:id:cross_hyou:20190109122658j:plain

こうしてファクタが作成できましたので、table関数でクロス表を作成し、chisq.test関数で2つのファクタが関連性があるかどうかを検定します。

東日本・西日本と男性優位・女性優位のクロス表分析からしましょう。

f:id:cross_hyou:20190109123106j:plain

p-value = 0.005507と0.05よりも小さいp値なので東日本・西日本と男性優位・女性優位ファクターは関連性があります。西日本は女性優位が多く、東日本は男性優位が多いということですね。

人口多い県・人口少ない県と男性優位・女性優位のクロス表分析をします。

f:id:cross_hyou:20190109123435j:plain

p-value = 0.01322ですので有意です。人口が少ないと女性優位、人口が多いと男性優位という関係性です。

東日本・西日本と人口多い・人口少ないのクロス表分析はどうでしょうか?予想としては東日本が人口多い、西日本が人口少ないという関係ですがどうでしょう?

f:id:cross_hyou:20190109123823j:plain

p-value = 0.1078なので0.05よりも大きい値ですから有意ではないです。傾向としては確かに東日本が人口多く、西日本では人口少ないですが有意なほどではありません。

まとめると、
東日本のほうが男性優位・西日本のほうが女性優位
人口多い県のほうが男性優位・人口少ないほうが女性優位

とわかりました。

今回は以上です。

 

厚生年金保険データの分析6 - R言語で各変数を偏差値に換算してどの都道府県が男性優位か女性有意かを総合的に判断してみる。

 

www.crosshyou.info

 の続きです。今回はR言語で各変数を偏差値に変換して、どの都道府県が男性優位か女性有意かを総合的に判断したいと思います。

まず、偏差値の計算式ですが、(観測値 - 平均値) x 10 / 標準偏差 + 50 という式ですね。

早速計算してみましょう。

まずは、MFR(男性の人数と女性の人数の比率)です。

f:id:cross_hyou:20190108151456j:plain

平均値が50.00になっていますね。

次は、MFWR(男性の月額報酬と女性の月額報酬の比率を偏差値にします。

f:id:cross_hyou:20190108151952j:plain

続いて、MFBR(賞与を受け取った男性の人数と賞与を受け取った女性の人数の比率)です。

f:id:cross_hyou:20190108152324j:plain

最小値の16.17ってかなり低い偏差値ですよね。

最後にMFBVR(男性の賞与額と女性の賞与額の比率)です。

f:id:cross_hyou:20190108152649j:plain

最大値の91.85って凄い高い偏差値ですね。こんな高い偏差値見たことないです。

こうして計算した4つの偏差値を合計した総合得点を算出して、都道府県の名前を付与してやりましょう。

f:id:cross_hyou:20190108153040j:plain

さあ、いよいよ緊張の一瞬です。sort関数で小さい順に並び替えて表示します。値が小さいほど女性優位、値が大きいほど男性優位ということです。

f:id:cross_hyou:20190108153305j:plain

でました!沖縄が一番女性優位です。愛知が一番男性優位です。

barplot関数で棒グラフにしてみます。

f:id:cross_hyou:20190108153619j:plain

f:id:cross_hyou:20190108153659j:plain

こうしてグラフにすると、一番右の愛知が突出して高いのがわかります。

このMF_ScoreとBOR(賞与支払い事業所率)の相関関係をcor.test関数でみてみましょう。

f:id:cross_hyou:20190108153956j:plain

p-value = 0.02925で0.05よりも小さいp値なので、有意な相関関係です。相関係数は一番下の行の-0.3182441ですから逆相関です。男性優位度の高い&ボーナスを支払う事業所少ない、男性優位度低い&ボーナスを支払う事業所多いという相関関係ですね。

lm関数で回帰分析をしてみましょう。BOR = a + b x MF_Score という回帰式でやってみます。

f:id:cross_hyou:20190108154615j:plain

一番下の行にこの回帰式が有意かどうかを判断するp値があります。p-value = 0.02925なので0.05よりも小さいので、この回帰式は有意です。CoefficientsのEstimateのところが回帰式の係数になります。

BOR = 25.22344 - 0.05027 x MF_Score

という回帰式ですね。

最後にplot関数で回帰式をグラフで表現します。

f:id:cross_hyou:20190108155158j:plain

f:id:cross_hyou:20190108155209j:plain

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。

 

厚生年金保険データの分析5 - R言語で各変数間の相関をみる。相関関係の有意性も検定してみる。

 

www.crosshyou.info

 の続きです。今回はR言語で各変数間の相関をみてみようと思います。

まず、cor関数で相関マトリックスを表示してみましょう。

f:id:cross_hyou:20190107121523j:plain



MFRは男性の人数と女性の人数の比率

MFWRは男性の月額報酬と女性の月額報酬の比率

BORは賞与を支給した事業所の割合

MFBRは男性で賞与をもらった人数と女性で賞与をもらった人数の比率

MFBVRは男性の賞与額と女性の賞与額の比率です。

MFRとMFWRの相関が0.7069427で一番高く、MFRとBORの相関が-0.4908024で一番の逆相関です。

それぞれの変数の組み合わせの散布図をplot関数で作成しましょう。

まずは、MFR(男性の人数と女性の人数の比率)とMFWR(男性の月額報酬と女性の月額報酬の比率)です。

f:id:cross_hyou:20190107120202j:plain

f:id:cross_hyou:20190107120218j:plain

正の相関がありそうですね。cor.test関数で検定してみます。

f:id:cross_hyou:20190107120419j:plain

p-value = 2.793e-08ですから0.05よりもp値は小さく、二つの変数の相関は有意だとわかります。男性比率高い&男性月額報酬高い、男性比率低い&男性月額報酬低いという相関関係です。

次は、MFR(男性の人数と女性の人数の比率)とBOR(賞与を支給した事業所の割合)です。

f:id:cross_hyou:20190107120744j:plain

f:id:cross_hyou:20190107120755j:plain

これもcor.test関数で相関の有意性を検定します。

f:id:cross_hyou:20190107120938j:plain

p-value = 0.0004607と0.05よりも小さいので有意です。相関係数はマイナスですから、逆相関ですね。男性の比率が高い&賞与支給比率低い、男性比率低い&賞与支給率高いという相関関係ですね。

次は、MFR(男性の人数と女性の人数の比率)とMFBR(男性で賞与をもらった人数と女性で賞与をもらった人数の比率)です。

f:id:cross_hyou:20190107121841j:plain

f:id:cross_hyou:20190107121855j:plain

cor.test関数で有意性を検定します。

f:id:cross_hyou:20190107122040j:plain

p-value = 0.05749となり、0.05よりも大きいですから相関は有意ではないということです。95 percent confidence intervalも-0.008811312から0.524218968と0をまたいでいますのでやっぱり相関関係は無いです。

MFR(男性の人数と女性の人数の比率)とMFBVR(男性の賞与額と女性の賞与額の比率)はどうでしょうか?

f:id:cross_hyou:20190107122451j:plain

f:id:cross_hyou:20190107122503j:plain

cor.test関数で有意性を検定します。

f:id:cross_hyou:20190107122658j:plain

p-value = 0.0007273と0.05よりも小さい値ですから有意です。男性比率が高い&男性賞与が高い、男性比率が低い&男性賞与が低いという相関関係です。

MFWR(男性の月額報酬と女性の月額報酬の比率)とBOR(賞与を支給した事業所の割合)はどうでしょうか?

f:id:cross_hyou:20190107123049j:plain

f:id:cross_hyou:20190107123104j:plain

相関関係は無い感じですね。cor.test関数で有意性を検定します。

f:id:cross_hyou:20190107123258j:plain

p-value = 0.1541です。相関性は無いですね。

MFWR(男性の月額報酬と女性の月額報酬の比率)とMFBR(男性の賞与支給人数と女性の賞与支給人数の比率)はどうなるでしょうか?

f:id:cross_hyou:20190107123605j:plain

f:id:cross_hyou:20190107123821j:plain

相関はなさそうですね。cor.test関数で検定します。

f:id:cross_hyou:20190107124008j:plain

p-value = 0.3014ですので0.05よりも大きい値ですから相関は無いですね。

MFWR(男性の月額報酬と女性の月額報酬の比率)とMFBVR(男性の賞与額と女性の賞与額の比率)はどうでしょうか?

f:id:cross_hyou:20190107124351j:plain

f:id:cross_hyou:20190107124404j:plain

cor.test関数で有意性を検定します。

f:id:cross_hyou:20190107124545j:plain

p-value = 0.002764と0.05よりも小さいので有意な相関関係です。男性の月額報酬高い&男性の賞与額高い、男性の月額報酬低い&男性の賞与額低いという相関関係です。

BOR(賞与を支給した事業所の割合)とMFBR(男性の賞与受取人数と女性の賞与受取人数の比率)の散布図を見てみます。

f:id:cross_hyou:20190107124900j:plain

f:id:cross_hyou:20190107124930j:plain

相関関係はなさそうですね。。cor.test関数で検定します。

f:id:cross_hyou:20190107125111j:plain

p-value = 0.5255 です。0.05よりも大きな値です。相関関係は無いです。

続いてBOR(賞与を支給した事業所の割合)とMFBVR(男性の賞与額と女性の賞与額の比率)の散布図を見ます。

f:id:cross_hyou:20190107125551j:plain

f:id:cross_hyou:20190107125602j:plain

これも相関はなさそうです。cor.test関数で検定します。

f:id:cross_hyou:20190107125819j:plain

p-value = 0.05459と0.05よりも大きな値ですので、相関に有意性は見られません。

最後の組み合わせ、MFBR(男性の賞与支給人数と女性の賞与支給人数の比率)とMFBVR(男性の賞与額と女性の賞与額の比率)を見ましょう。

f:id:cross_hyou:20190107130138j:plain

f:id:cross_hyou:20190107130149j:plain

散布図の左上にプロットがあります。これを除くと相関は無い感じですね。cor.test関数で検定しましょう。

f:id:cross_hyou:20190107130452j:plain

p-value = 0.3544ですので0.05より大きいです。相関関係は有意でないです。

以上整理すると、有意な相関関係があると認められたのは、

MFR(男性の人数と女性の人数の比率)とMFWR(男性の月額報酬と女性の月額報酬の比率)(プラス相関)

MFRとBOR(賞与を支給した事業所の割合)(マイナス相関)

MFRとMFBVR(男性の賞与額と女性の賞与額の比率)(プラス相関)

MFWR(男性の賞与支給人数と女性の賞与支給人数の比率)とMFBVR(プラス相関)の4組でした。

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。

厚生年金保険データの分析4 - R言語で各種変数をグラフにして視覚化する。自作関数で簡単に。

 

www.crosshyou.info

 の続きです。

前回は各種変数の大きい都道府県、小さい都道府県を調べました。

今回は各種変数をヒストグラムカーネル密度グラフ、小さい順グラフ、箱ひげ図にて視覚化しましょう。その際に毎回hist関数、plot関数、boxplot関数を呼び出すのは面倒なので4つのグラフを作成する関数を作成して簡単に作成しようと思います。

f:id:cross_hyou:20190105163032j:plain

こんなふうにして、4つのグラフを描く関数を作ります。関数名はgraph_4と名付けました。あとは、graph_4(MF_Ratio)などとすればいいだけです。

f:id:cross_hyou:20190105163317j:plain

f:id:cross_hyou:20190105163331j:plain

被保険者の男女の比率は2つの山がある分布ですね。

報酬の男女比率はどうでしょうか?MF_Wage_Ratioです。

f:id:cross_hyou:20190105163620j:plain

f:id:cross_hyou:20190105163633j:plain

これは山の峰は一つですね。

賞与支払事業所比率、Bonus_Office_Ratioはどうでしょうか?

f:id:cross_hyou:20190105163842j:plain

f:id:cross_hyou:20190105163855j:plain

これも山の峰は一つですね。

 

お次は賞与受取の男女比率です。

f:id:cross_hyou:20190105164131j:plain

f:id:cross_hyou:20190105164143j:plain

値が小さいところに外れ値があるのがわかります。

最後は、男女の賞与金額の格差です。

f:id:cross_hyou:20190105164539j:plain

f:id:cross_hyou:20190105164553j:plain

値の大きいほうに外れ値がいくつかあるのが確認できます。

関数を作ると簡単に4つのグラフが作成できました。

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。