今日は、都道府県別の公民館数データを分析しようと思います。
e-Stat, 政府統計の総合窓口からデータを取得しました。
こういうExcelファイルをread.csv関数でR言語に読込ませて分析します。
今回は、read.csvファイルで読み込むときに、stringsAsFactors = FALSEとして、文字列は文字列のままで読み込むようにしました。
そして、na.omit関数でNAの行を削除し、str関数でデータ構造を確認しました。1196の観測があります。
head関数ではじめの6行を表示しています。どうやら、2015年が最新年のようですね。
substr関数でdf$Yearのはじめの4文字(つまり、2105など)を取得し、それをas.numeric関数で数値型にしました。
as.factor関数でファクタにして、summary関数で各変数の統計値や度数を表示しています。愛媛県など各都道府県が27個ありますから、27年分のデータがあります。
plot関数で、横軸を人口、縦軸を公民館数の散布図を描きました。pch = 16でプロットする形を黒丸にしています。よくわからない散布図ですね。
plot関数で横軸を年度、縦軸を公民館数の箱ひげ図を描きました。1976年や1977年のデータがおかしいですね。
あらら、1976年と1977年は北海道だけですね。1976年は[df$Year == "1976年度", ]を使う方法、1977年度はsubset関数を使う方法で、特定の行だけ表示しています。
[df$Year != "1976年度", ]を使う方法で1976年度と1977年度のデータを削除しました。そして、table関数で各年度のデータの個数を表示しています。1989年度や1994年度など多くの年で47都道府県がそろっていないですね。。
1975年度と2015年度だけにしてしまいました。
tapply関数で1975年度の公民館数合計と2015年度の公民館数合計をだしました。
1975年度は1万5752だったのが、2015年度は1万4171と40年間で1581の公民館がなくなりました。
plot関数で箱ひげ図を並べてみました。ひとつ外れ値があってその影響が大きい気がします。
人口1万人あたりの公民館数を算出してみました。平均は2ですが、多い都道府県では9もありますし、少ない都道府県では0.039しかないです。
東京、沖縄、神奈川、大阪が少ないですね。order関数で少ない順に並び替え、head関数で6行だけ表示しています。
rev関数も追加すると多い順になります。長野、山梨、山形、秋田が多いです。
plot関数で横軸が人口、縦軸が1万人あたりの公民館数の散布図です。pch = 21, bg = 1 + as.numeric(df$Year)で1975年が赤、2015年が緑にしています。
log関数で人口を対数にして散布図を描いてみました。ちょっとわかりやすくなりました。
長野県のプロットが他とは大きくはなれていますね。
全般に人口が多い地域のほうが1万人あたりの公民館の数は少ないですね。
2015年度で長野県を削除したデータで回帰分析してみます。
回帰分析をしましょう。lm関数でモデルを作成し、summary関数でモデルを確認します。
p-valueが1.156e-08なので0.05よりも低く有意です。
I(log(population))の係数は-1.1434でp-valueは1.16e-08なので有意です。人口が多いほど1万人あたりの公民館数は少ないです。
最後に散布図を回帰直線を重ねて描きましょう。