www.crosshyou.info

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

都道府県別の公民館数データの分析 - 長野県は公民館が多い。

今日は、都道府県別の公民館数データを分析しようと思います。

e-Stat, 政府統計の総合窓口からデータを取得しました。

f:id:cross_hyou:20190711193624j:plain

 

こういうExcelファイルをread.csv関数でR言語に読込ませて分析します。

f:id:cross_hyou:20190711193713j:plain

今回は、read.csvファイルで読み込むときに、stringsAsFactors = FALSEとして、文字列は文字列のままで読み込むようにしました。

そして、na.omit関数でNAの行を削除し、str関数でデータ構造を確認しました。1196の観測があります。

head関数ではじめの6行を表示しています。どうやら、2015年が最新年のようですね。

f:id:cross_hyou:20190711194222j:plain

substr関数でdf$Yearのはじめの4文字(つまり、2105など)を取得し、それをas.numeric関数で数値型にしました。

f:id:cross_hyou:20190711194532j:plain

as.factor関数でファクタにして、summary関数で各変数の統計値や度数を表示しています。愛媛県など各都道府県が27個ありますから、27年分のデータがあります。

f:id:cross_hyou:20190711194958j:plain

f:id:cross_hyou:20190711195014j:plain

plot関数で、横軸を人口、縦軸を公民館数の散布図を描きました。pch = 16でプロットする形を黒丸にしています。よくわからない散布図ですね。

f:id:cross_hyou:20190711195409j:plain

f:id:cross_hyou:20190711195420j:plain

plot関数で横軸を年度、縦軸を公民館数の箱ひげ図を描きました。1976年や1977年のデータがおかしいですね。

f:id:cross_hyou:20190711200031j:plain

あらら、1976年と1977年は北海道だけですね。1976年は[df$Year == "1976年度", ]を使う方法、1977年度はsubset関数を使う方法で、特定の行だけ表示しています。

f:id:cross_hyou:20190711200626j:plain

[df$Year != "1976年度", ]を使う方法で1976年度と1977年度のデータを削除しました。そして、table関数で各年度のデータの個数を表示しています。1989年度や1994年度など多くの年で47都道府県がそろっていないですね。。

f:id:cross_hyou:20190711201722j:plain

1975年度と2015年度だけにしてしまいました。

f:id:cross_hyou:20190711201901j:plain

tapply関数で1975年度の公民館数合計と2015年度の公民館数合計をだしました。

1975年度は1万5752だったのが、2015年度は1万4171と40年間で1581の公民館がなくなりました。

f:id:cross_hyou:20190711202307j:plain

f:id:cross_hyou:20190711202322j:plain

plot関数で箱ひげ図を並べてみました。ひとつ外れ値があってその影響が大きい気がします。

f:id:cross_hyou:20190711203328j:plain

人口1万人あたりの公民館数を算出してみました。平均は2ですが、多い都道府県では9もありますし、少ない都道府県では0.039しかないです。

f:id:cross_hyou:20190711203705j:plain

東京、沖縄、神奈川、大阪が少ないですね。order関数で少ない順に並び替え、head関数で6行だけ表示しています。

f:id:cross_hyou:20190711204012j:plain

rev関数も追加すると多い順になります。長野、山梨、山形、秋田が多いです。

f:id:cross_hyou:20190711204459j:plain

f:id:cross_hyou:20190711204518j:plain

plot関数で横軸が人口、縦軸が1万人あたりの公民館数の散布図です。pch = 21, bg = 1 + as.numeric(df$Year)で1975年が赤、2015年が緑にしています。

f:id:cross_hyou:20190711204913j:plain

f:id:cross_hyou:20190711204929j:plain

log関数で人口を対数にして散布図を描いてみました。ちょっとわかりやすくなりました。

長野県のプロットが他とは大きくはなれていますね。

全般に人口が多い地域のほうが1万人あたりの公民館の数は少ないですね。

2015年度で長野県を削除したデータで回帰分析してみます。

f:id:cross_hyou:20190711205903j:plain

f:id:cross_hyou:20190711205921j:plain

回帰分析をしましょう。lm関数でモデルを作成し、summary関数でモデルを確認します。

f:id:cross_hyou:20190711210407j:plain

p-valueが1.156e-08なので0.05よりも低く有意です。

I(log(population))の係数は-1.1434でp-valueは1.16e-08なので有意です。人口が多いほど1万人あたりの公民館数は少ないです。

最後に散布図を回帰直線を重ねて描きましょう。

f:id:cross_hyou:20190711210911j:plain

f:id:cross_hyou:20190711210923j:plain

 

都道府県別・東日本・西日本別の交通・通信費データの分析 - 東日本の世帯のほうが西日本より交通・通信費が高い

今日は、都道府県別の交通・通信費データの分析をします。

いつものように、政府統計の総合窓口、e-Statのサイトからデータをダウンロードします。

f:id:cross_hyou:20190706153304j:plain

地域は47都道府県を選択します。

f:id:cross_hyou:20190706153327j:plain

データは総人口と交通・通信費です。

f:id:cross_hyou:20190706153355j:plain

Excelにはこのような感じでデータがダウンロードされます。

f:id:cross_hyou:20190706153614j:plain

先日作成しておいた、このような東日本と西日本を分類するファイルも読込みます。

R言語のread.csvファイルで読込み、merge関数でファイルを統合し、na.omit関数でNAの行を削除して、str関数とsummary関数でデータフレームがどんなだか見てみましょう。

f:id:cross_hyou:20190706154624j:plain

Prefの数を見ると、33なので、33年間のデータがあります。

まず、tablel関数でYearが何年から何年なのかみてみます。

f:id:cross_hyou:20190706160035j:plain

1975年から2007年までですね。度数が0のファクター水準がありますので、as.character関数とas.factor関数で度数が0の水準を削除します。

f:id:cross_hyou:20190706160323j:plain

まずは、東日本と西日本で交通・通信費に差があるかみてみます。plot関数で箱ひげ図を描いてみます。

f:id:cross_hyou:20190706160523j:plain

f:id:cross_hyou:20190706160533j:plain

東日本のほうが少し平均値が高いです。数字で確認します。tapply関数です。

f:id:cross_hyou:20190706160707j:plain

西日本の1世帯あたり1か月の交通・通信費の平均は、1975年から2007年までの平均で、2万6418円です。東日本は2万8552円です。t.test関数でこの2つに有意な違いがあるのか調べてみます。

f:id:cross_hyou:20190706161009j:plain

p-value = 6.603e-06と0.05より小さいので、西日本と東日本で交通・通信費は違いがあると言えます。東日本のほうが交通・通信費を多く使っています。

人口との散布図を描いでみます。plot関数です。

f:id:cross_hyou:20190706161343j:plain

f:id:cross_hyou:20190706161356j:plain

あんまり関係はなさそうです。

年度と交通・通信費の関係をみましょう。

f:id:cross_hyou:20190706161546j:plain

f:id:cross_hyou:20190706161558j:plain

これはもう、一目で関係あるとわかりますね。年々、交通・通信費は増加しています。

年度を数値データに変換して通信費を年度と東西日本で回帰分析してみます。

まずは、年度がいまはファクターなので、数値型に変えます。

f:id:cross_hyou:20190706162027j:plain

as.character関数でファクターを文字列に変換

substr関数で文字列のはじめの4文字(1975など)だけを取得

as.numeric関数で1975などが文字列になっているのを数値型に変換しました。

lm関数で回帰分析をしましょう。

f:id:cross_hyou:20190706162418j:plain

p-value < 2.2e-16なのでモデルは有意です。Adjusted R-squaredは0.7191です。

モデル式は

西日本のときは、

Com = -1538000 + 785.8 * Y

東日本のときは、

Com = -1538000 + 785.8 * Y - 154300 + 78.58 *Y

         = -1692300 + 864.38 * Y

です。西日本は1年で786円上昇、東日本は1年で864円上昇しています。

散布図と回帰直線を重ねましょう。plot関数とabline関数です。

f:id:cross_hyou:20190706165119j:plain

f:id:cross_hyou:20190706165129j:plain

今回は以上です。

 

都道府県別の消防本部・署数のデータの分析 - 1万人当りでは秋田、島根、北海道が消防本部・署数が多く、東京、埼玉、大阪は少ない。

今日は都道府県別の消防本部・署数のデータを分析してみます。

まず、e-Stat, 政府統計の総合窓口からデータを取得します。

今日は、このe-Statの「地方」の分類で、北海道から東海までを東日本、近畿から沖縄までを西日本として、東日本・西日本という観点からも分類したいと思います。

f:id:cross_hyou:20190704194640j:plain

まずは、e-Statで地域を選択します。

f:id:cross_hyou:20190704194907j:plain

データ項目は人口と消防本部・署数を選択しました。

f:id:cross_hyou:20190704195000j:plain

このデータをダウンロードすると、こうなります。

f:id:cross_hyou:20190704195037j:plain

このファイルをR言語のread.csv関数で読み込んで分析します。

f:id:cross_hyou:20190704195526j:plain

read.csv関数でデータを読込み、na.omit関数でNAの行を削除し、str関数でデータフレームの構造を表示しています。観測は2021で変数は4ですね。

今回は、東日本、西日本というファイルも用意しました。

f:id:cross_hyou:20190704195921j:plain

こういうファイルです。

これもread.csv関数で読込みます。

f:id:cross_hyou:20190704200127j:plain

このewというデータフレームをdfというはじめのデータフレームと統合します。

merge関数を使います。

f:id:cross_hyou:20190704200338j:plain

うまくいきました。

東日本、西日本でわけましたから、東日本・西日本別の平均の消防署数を算出してみます。tapply関数です。

f:id:cross_hyou:20190704200645j:plain

東日本のほうが多いですね。

plot関数で東日本・西日本ごとの消防本部・署数の箱ひげ図を描いてみます。

f:id:cross_hyou:20190704200901j:plain

f:id:cross_hyou:20190704200912j:plain

東日本のほうが、都道府県での数の散らばりが大きいですね。

年度別の箱ひげ図を描いてみます。

f:id:cross_hyou:20190704201127j:plain

f:id:cross_hyou:20190704201139j:plain

平均値は上昇していますが、一番上の外れ値は年々低下しています。

一番数が多いところを見てみましょう。order関数とrev関数、head関数を組み合わせます。

f:id:cross_hyou:20190704201631j:plain

多いのは北海道、少ないのは鳥取県ですね。

10000 * Shoubou / Pop を計算して1万人あたりの消防本部・署数の数を計算しましょう。

f:id:cross_hyou:20190704202013j:plain

summary関数で平均値などを計算しました。

平均すると、1万人あたり0.5くらいの数の消防本部・署があるのですね。

tapply関数で東日本・西日本別の平均値を出しましょう。

f:id:cross_hyou:20190704202312j:plain

西日本が0.495、東日本は0.548です。同じくらいになりました。

箱ひげ図を描いてみましょう。

f:id:cross_hyou:20190704202548j:plain

f:id:cross_hyou:20190704202601j:plain

こんな感じです。

head関数、rev関数、order関数を組み合わせて、1万人たりの消防本部・署の数の多い順、少ない順をみてみましょう。

f:id:cross_hyou:20190704203146j:plain

北海道が多い、鳥取が少ないというのは同じですが、東京島が少ないほうに顔を出しています。

2017年度だけにしぼってやってみましょう。

f:id:cross_hyou:20190704203943j:plain

2017年度だけに絞ると、秋田県が一番数が多く、島根、北海道と続きます。少ないほうでは、東京都が一番少なく、埼玉、大阪と続きます。人口が少ない県のほうが1万人当りの数は多いような気がします。

2017年度だけのデータで人口と1万人当りの数の散布図を描いてみましょう。

f:id:cross_hyou:20190704204736j:plain

f:id:cross_hyou:20190704204752j:plain

赤い丸が西日本で、緑の丸が東日本です。人口が多いほど、1万人当りの数は減りますね。

最後に、東日本と西日本で1万人当りの消防本部・署数に差があるのか検定してみます。

東日本が24、西日本が23と30よりも数が少ないので、wilcox.test関数を使いました。

f:id:cross_hyou:20190704205456j:plain

p-value = 0.5906となりましたので、東日本と西日本で有意な差は無いとわかります。

 

都道府県別のサービス産業売上高のデータの分析 - R言語のlm関数で回帰分析

今回は、都道府県別のサービス産業の売上高のデータを分析したいと思います。

政府統計の総合窓口、e-Statからデータを取得しました。

f:id:cross_hyou:20190629124134j:plain

47地域を選択して、

f:id:cross_hyou:20190629124154j:plain

総人口と県内総生産額と売上高(サービス産業)を選択し、

f:id:cross_hyou:20190629124237j:plain

Excelファイルのデータをダウンロードしました。

このデータをR言語で分析します。

まずは、read.csv関数でデータを読込み、na.omit関数でNA行を削除し、summary関数でデータの統計サマリーを見てみましょう。

f:id:cross_hyou:20190629125006j:plain

Prefの数を見ると、4ですから、4年のデータですね。Yearを見ると、2012年度から2015年度の4年間であることがわかります。

Pop, Prod, Salesの散布図マトリックスを描きましょう。pairs関数を使います。

f:id:cross_hyou:20190629125453j:plain

f:id:cross_hyou:20190629125503j:plain

Prod(県内総生産額)とSales(サービス産業売上高)は相関係数が高そうですね。

cor関数で相関マトリックスをみてみます。

f:id:cross_hyou:20190629125802j:plain

ProdとSalesの相関係数は、0.99です。一番低い相関係数でもPopとSalesで0.88です。

この3つはかなり相関関係が強いということですね。

それででは、サービス産業の売上高 / 県内総生産額 という比率を計算して、どの都道府県が一番サービス産業化しているか見てみましょう。

f:id:cross_hyou:20190629130243j:plain

比率の最小値は、1.207で最大値は5.600です。

都道府県別に最大値を表示してみます。tapply関数です。

f:id:cross_hyou:20190629130645j:plain

なんかよくわからない出力結果になってしまいました。

round関数で小数点以下2桁表示にします。

f:id:cross_hyou:20190629130945j:plain

う~ん、これでもだめですね。。

このtapplyの出力結果を変数にして、データ構造をいろいろ調べてみます。

f:id:cross_hyou:20190629131647j:plain

こうして、tapという変数をつくりました。これを、class関数、mode関数、str関数でデータ構造を調べます。

f:id:cross_hyou:20190629132341j:plain

tapplyで生成されたtapはarrayですね。modeはnumericなので、数値データです。str関数の結果を見ると、dimnamesとして都道府県名が付与されていることがわかりました。tapは配列ですから、次元があるはずです。dim関数で調べましょう。

 

f:id:cross_hyou:20190629132846j:plain

47ですね。どうしましょうか。。?とりあえず、as.data.frame関数でデータフレームにしてみます。

f:id:cross_hyou:20190629134057j:plain

あ、これで見やすくなりますね。列名がtapになっているので、colnames関数でRatioに変換して、大きい順、小さい順に並び替えましょう。

f:id:cross_hyou:20190629134712j:plain

あ~。そっか、tapはデータフレームでも1列しかないからこうなっちゃうですね。rownames(tap)に都道府県名がはいっているはずですから、都道府県名の列を追加してから並び替えましょう。

f:id:cross_hyou:20190629135131j:plain

できました! 東京都が一番、サービス産業の売上高の比率が大きいですね。

一番低いところはどこでしょうか?

f:id:cross_hyou:20190629135451j:plain

奈良県が一番比率が小さいです。

hist関数で分布をみてみます。

f:id:cross_hyou:20190629135656j:plain

f:id:cross_hyou:20190629135709j:plain

一番右にあるのは東京都ですね。東京都を除いてヒストグラムを描いてみます。

f:id:cross_hyou:20190629135931j:plain

f:id:cross_hyou:20190629135943j:plain

この比率と人口の関係を調べてみましょう。

まず、人口の都道府県別の最大値をtapply関数で作ります。

f:id:cross_hyou:20190629140507j:plain

このtpopというデータフレームと、tapというデータフレームをmerge関数で統合します。Prefという列が同じデータですから、これをキーにして統合します。

f:id:cross_hyou:20190629140813j:plain

いいですね。RatioとPopの散布図を描いてみます。

f:id:cross_hyou:20190629141046j:plain

f:id:cross_hyou:20190629141056j:plain

人口が多いほどサービス産業の比率は高まりますね。lm関数で回帰分析をしてみます。

f:id:cross_hyou:20190629141344j:plain

p-valueは2.146e-10ですから統計的に有意なモデルです。R-sauaredは0.5956です。

散布図に回帰直線を重ねてみます。

f:id:cross_hyou:20190629141641j:plain

f:id:cross_hyou:20190629141653j:plain

Popの2乗項を加えて回帰分析してみます。

f:id:cross_hyou:20190629143031j:plain

p-valueは8.693e-16で有意です。調製済みR2は0.7839と上昇しました。anova関数でmodelとmodel2で有意な違いがあるか見てみましょう。

f:id:cross_hyou:20190629143239j:plain

p値は6.518e-08ですからmodelとmodel2は有意な違いがあります。model2のほうがあてはまりがいい、ということですね。

model2で予測した値も散布図に重ねましょう。

f:id:cross_hyou:20190629143923j:plain

f:id:cross_hyou:20190629143933j:plain

今回は以上です。

都道府県別の総人口・可住地面積・総生産額のデータの分析 - 人口密度が高いほど一人当り生産額は高い傾向がある。

今回は、都道府県別の総人口・可住地面積・総生産額のデータを分析したいと思います。これらのデータで、都道府県別の人口密度・一人当りの生産額・面積当りの生産額を算出しようと思います。

データは政府統計の総合窓口、e-Statから取得しました。

f:id:cross_hyou:20190622132233j:plain

47都道府県を選択し、

f:id:cross_hyou:20190622132257j:plain

データ項目を選択し、

f:id:cross_hyou:20190622132320j:plain

エクセルファイルにデータをダウンロードしました。

このCSVファイルをR言語のread.csv関数で読み込んで分析をしたいと思います。

f:id:cross_hyou:20190622133044j:plain

read.csv関数でデータを読込み、na.omit関数でNA行を削除して、summary関数で各変数の統計値を表示しました。10年間のデータがあるようですね。何年度からあるでしょうか?table関数でみてみます。

f:id:cross_hyou:20190622133405j:plain

2006年度から2015年度までの10年間ですね。

まず、人口密度を計算してみます。Pop / Ha で計算できます。

f:id:cross_hyou:20190622135135j:plain

df$Pop / df$Ha で人口密度を計算して、名前属性を都道府県にしています。

2015年度の人口密度を小さい順に表示してみましょう。sort関数を使います。

f:id:cross_hyou:20190622135515j:plain

北海道が一番人口密度が低く、東京が高いです。barplot関数で棒グラフを描いてみます。

f:id:cross_hyou:20190622135902j:plain

f:id:cross_hyou:20190622135912j:plain

棒グラフの右の三つ、神奈川県、大阪府、東京都は他と比べると段違いという感じですね。

一人当り生産額を計算しましょう。

f:id:cross_hyou:20190622140147j:plain

一人当りの生産額も2015年度の値を小さい順に表示してみます。

f:id:cross_hyou:20190622140437j:plain

奈良県が一番低く、東京都が高いです。boxplot関数で箱ひげ図を描いてみます。

f:id:cross_hyou:20190622140801j:plain

f:id:cross_hyou:20190622140816j:plain

上方の外れ値が2つあります。東京都と愛知県ですね。

面積当りの生産額を計算してみましょう。

f:id:cross_hyou:20190622141128j:plain

2015年度の面積当りの生産額を小さい順に表示してみます。

f:id:cross_hyou:20190622141354j:plain

北海道が一番低く、東京都が一番高いです。

10年間のデータを使って、hist関数でヒストグラムを描いてみます。

f:id:cross_hyou:20190622142006j:plain

f:id:cross_hyou:20190622142020j:plain

hist関数で、prob = TRUEにして相対度数のヒストグラムを描いて、lines(density(ProdHa), col = "red")で密度関数を付け足しています。750ぐらいのところ、300ぐらいのところ、220ぐらいのところ、130ぐらいのところに山があります。東京都、大阪府、神奈川県、愛知県でしょうね。

まとめると人口密度は

下位3地域は、北海道、秋田県、岩手県

上位3地域は、東京都、大阪府、神奈川県

 

一人当り生産額は

下位3地域は、奈良県、沖縄県、鳥取県

上位3地域は、東京都、愛知県、静岡県

 

面積当り生産額は

下位3地域は、北海道、秋田県、岩手県

上位3地域は、東京都、大阪府、神奈川県

でした。

一人当りの生産額を人口密度と年度で回帰してみましょう。

まず、年度をファクタでなく、数値型の変数にしましょう。

f:id:cross_hyou:20190622143747j:plain

Yearのファクタ水準を1975から2017にして、ファクタ型を文字列にしてから数値型にしています。ファクタ型から直接as.numeric関数で数値型にすると、うまく年を変換できないので。

これで準備が整いましたので、lm関数で回帰モデルを作成してみましょう。

f:id:cross_hyou:20190622144217j:plain

モデル全体のp-valueは2.2e-16より小さいですので有意ですが、各係数のp値は有意ではないですね。Year:Mitsudoは削除したモデルを考えます。

f:id:cross_hyou:20190622144447j:plain

モデル全体のp値は、2.2e-16より小さいので有意です。modelとmodel2で有意な違いがあるかどうかanova関数で確認します。

f:id:cross_hyou:20190622144647j:plain

p値が0.1669と0.05よりも大きいので、modelとmodel2には有意な違いはありません。よって、より単純なほうのmodel2を採用します。

model2を見ると、Yearの係数のp値は0.839とかなり大きいです。Yearを削除したモデルを考えます。

f:id:cross_hyou:20190622144959j:plain

モデル全体のp値は2.2e-16なので有意です。model2とmodel3をanova関数で比較します。

f:id:cross_hyou:20190622145145j:plain

p値は0.8387なのでmodel2とmodel3に有意な違いは無いです。

よって単純なmodel3を採用します。

model3のMitsudoの係数の符号は正の符号ですので、人口密度が上がるほど、一人当りの生産額は増える、ということですね。

plot関数で人口密度と一人当り生産額の散布図を描いて、abline関数でモデルの回帰式を追加しましょう。

f:id:cross_hyou:20190622145703j:plain

f:id:cross_hyou:20190622145721j:plain

このグラフを見ると、Mitsudoの2乗項を加えたほうがよさそうな気がします。

2乗項を加えたモデルを考えましょう。

f:id:cross_hyou:20190622150007j:plain

モデル全体のp値は2.2e-16なので有意ですね。Mitsudoの2乗項の係数も、Mitsudoの係数も有意ですね。anova関数で、model3とmodel4を比較します。

f:id:cross_hyou:20190622150241j:plain

p値が2.2e-16よりも小さいので、model3とmodel4では有意な違いがあります。model3の調製済みR2は、0.3818です。model4の調整済みR2は0.5131です。model4のほうが良いモデルですね。

それでは、MitsudoとperProの散布図にmodel4で推定された値を加えましょう。

f:id:cross_hyou:20190622151421j:plain

predict関数で各xvの値に対してのyvを計算します。xvがMitsudo, yvがperProに相当します。

f:id:cross_hyou:20190622151723j:plain

f:id:cross_hyou:20190622151740j:plain

赤い直線がmodel3の回帰線で、青い曲線がmodel4の回帰線です。青い曲線のほうがフィットしていることがわかります。

今回は以上です。

 

初婚年齢と住宅の広さのデータの分析 - 福島県が初婚年齢が一番低く、東京が高い。富山県が一番住宅が広く、東京が狭い。

今回は、初婚年齢と住宅の広さのデータを分析してみようと思います。

いつものように、政府統計の総合窓口、e-Statからデータを取得しました。

f:id:cross_hyou:20190619192404j:plain

地域は47都道府県を選択しました。

f:id:cross_hyou:20190619192427j:plain

夫の初婚年齢、妻の初婚年齢、住宅の広さの3つのデータを選択しました。

f:id:cross_hyou:20190619192514j:plain

こんな感じでデータをCVSファイルにダウンロードしました。これを、R言語のread.csv関数で読み込んで分析しようと思います。

f:id:cross_hyou:20190619192619j:plain

str関数でデータ構造を見ると、2021行ありますが、NAの行がたくさんあることがわかりますので、na.omit関数で削除します。

f:id:cross_hyou:20190619192846j:plain

summary関数で各変数のサマリーを表示しています。Prefのところの度数を見ると、各県とも8回登場していますので、8年間のデータだとわかります。Yearは1978年度から1983年度、1988年度と5年ごとにデータがあるようです。

それではまず、年度ごとの平均を見てみましょう。初婚年齢は年の経過とともに高くなっているのか、低くなっているのか、変わらないのか?tapply関数で年度ごとの平均値を求めます。平均値はmean関数ですね。

f:id:cross_hyou:20190619200614j:plain

はじめに、各変数から、それぞれ独立したベクトルを作成しました。こうしておけば、df1$Maleとしないで、Maleだけで分析できます。Yearに関しては、1979年度などデータの無い年度もファクタの水準として残っていますので、いったんas.character関数で文字列にして、それからさらにas.factor関数でファクタに戻しています。

夫の平均初婚年齢は、1978年度は27.4歳、2013年度は30.6歳と3歳ぐらい高年齢化しています。

妻はどうでしょうか?

f:id:cross_hyou:20190619194011j:plain

妻は、1978年度は24.9歳でしたが、2013年度は29.0歳に5歳ほど高年齢化しています。夫よりも高年齢化の幅は大きいですね。

住宅の広さはどうでしょうか?

f:id:cross_hyou:20190619194256j:plain

1978年度は91平方メートルでしたが、2013年度は108平方メートルと広くなっています。2割ぐらい増えていますね。

都道府県ごとのデータを見たいと思います。一番新しい、2013年度のデータでみてみましょう。

f:id:cross_hyou:20190619194847j:plain

まず、names関数でMale、Female、Hirosaに都道府県の名前属性をつけて、sort関数で小さい順に表示しました。福島県が29.8歳で一番若く、東京都が32.2歳で一番高いです。

妻はどうでしょうか?

f:id:cross_hyou:20190619195209j:plain

妻も福島県が一番若く、28.2歳で、東京都が一番高く30.4歳です。

住宅の広さはどうでしょうか?

f:id:cross_hyou:20190619195532j:plain

一番狭いのは東京都で64.5平方メートルです。一番広いのは富山県で152.2平方メートルです。

夫の初婚年齢と妻の初婚年齢の散布図をplot関数で表示します。

f:id:cross_hyou:20190619200113j:plain

f:id:cross_hyou:20190619195822j:plain

正の相関が見て取れる散布図ですね。

夫の年齢と住宅の広さはどうでしょうか?

f:id:cross_hyou:20190619200128j:plain

f:id:cross_hyou:20190619200139j:plain

全然関係なさそうですね。

年度別に色分けしてみましょう。

f:id:cross_hyou:20190619200804j:plain

年度で色分けしてもやっぱり関連性はなさそうですね。

夫と妻の年齢差を考えてみましょう。

f:id:cross_hyou:20190619201142j:plain

長崎県、沖縄県が一番年齢差が小さく、1.2歳です。千葉健、埼玉県、愛知県、岐阜県、長野県、秋田県が1.9歳で一番大きいです。

この年齢差と住宅の広さの散布図を見てみます。

f:id:cross_hyou:20190619201524j:plain

f:id:cross_hyou:20190619201534j:plain

これも関係性はよくわからないですね。

年齢差と年度のグラフを描いてみましょう。

f:id:cross_hyou:20190619202557j:plain

f:id:cross_hyou:20190619202533j:plain

年度はファクタなので、plot関数ではこのように年度ごとの箱ひげ図になります。1978、1983、1988と年齢差が拡大してから、それ以降は年齢差が縮小しています。

今回は以上です。

 

図書館数と図書館登録人数のデータの分析 - 神奈川は図書館少ない、山梨は多い。青森県は登録人数比率が低く、富山県は多い。

今回は、各都道府県の図書館の数と図書館登録人数を調べようと思います。

政府統計の総合窓口、e-Statからデータを取得します。

f:id:cross_hyou:20190615103848j:plain

総人口と図書館数と図書館登録者数です。

f:id:cross_hyou:20190615103922j:plain

エクセルにこのようにデータを取得しました。

read.csv関数でR言語にデータを読込み、分析します。

f:id:cross_hyou:20190615104833j:plain

事前のCSVファイルを眺めたのですが、図書館数と図書館登録人数は同じ年には調査されていないようで、年度データでは、どちらか一方しかありませんでした。

そこで、今回は、図書館数と図書館登録人数を別々に分析しようと思います。

まず、Year(年度), Pref(都道府県), Pop(人口), Kan(図書館数)のデータフレームを作って、na.omit関数でNAのデータを削除します。

f:id:cross_hyou:20190615105441j:plain

Yearを見ると、1975年度、1978年度、1981年度と3年ごとのデータのようです。

図書館登録人数のデータフレームを作ります。

f:id:cross_hyou:20190615105740j:plain

図書館登録人数は、2007年度、2010年度、2014年度の3回しかデータが無いですね。

一番新しい、204年度のデータだけにしてしまいます。

f:id:cross_hyou:20190615110203j:plain

図書館数は一番新しい年度は何年でしょうか?summary関数でみてみます。

f:id:cross_hyou:20190615110428j:plain

2015年度が一番新しいです。2015年だけのデータフレームを作ります。

f:id:cross_hyou:20190615110720j:plain

こうして作成した、df2015とdf2014をmerge関数で結合します。

f:id:cross_hyou:20190615111207j:plain

Pop.xが2015年の人口、Pop.yが2014年の人口です。colnames関数で名前を変更します。

f:id:cross_hyou:20190615111549j:plain

人口と図書館数の散布図を描いてみます。plot関数です。

f:id:cross_hyou:20190615111832j:plain

f:id:cross_hyou:20190615111844j:plain

人口が多いほど、図書館の数も多いです。

人口と図書館登録人数の散布図も描いてみます。

f:id:cross_hyou:20190615112431j:plain

f:id:cross_hyou:20190615112441j:plain

こちらも、人口が多いと図書館登録人数が多いですね。

まずは、人口当りの図書館数を計算して、どこの都道府県が図書館が多いか少ないかを調べましょう。

f:id:cross_hyou:20190615113202j:plain

KanPopという10万人当りの図書館数のベクトルを作成し、names関数でそのベクトルに都道府県の名前を付けて、sort関数で小さい順に表示しています。神奈川県は10万人当り0.9しか図書館ないですが、山梨県は6.6もあります。

 

次は、図書館登録人数 / 人口をやってみます。

f:id:cross_hyou:20190615113706j:plain

パーセンテージ表示です。青森県は人口の10%しか図書館登録がなく、富山県は人口の56%が図書館登録あります。都道府県によってこんなに違うのですね。

hist関数で人口10万人当りの図書館数、図書館登録人数比率のヒストグラムを描いてみます。

f:id:cross_hyou:20190615114313j:plain

f:id:cross_hyou:20190615114325j:plain

人口10万人当りの図書館数(KanPop)のほうが左右対称に近いですね。図書館登録人数比率(HitoPop)は左に山の頂点がよっています。

KanPopとHitoPopの散布図を描いてみます。

f:id:cross_hyou:20190615114700j:plain

f:id:cross_hyou:20190615114710j:plain

結構分散していますね。

今回は以上です。