今回は、都道府県別のサービス産業の売上高のデータを分析したいと思います。
政府統計の総合窓口、e-Statからデータを取得しました。
47地域を選択して、
総人口と県内総生産額と売上高(サービス産業)を選択し、
Excelファイルのデータをダウンロードしました。
このデータをR言語で分析します。
まずは、read.csv関数でデータを読込み、na.omit関数でNA行を削除し、summary関数でデータの統計サマリーを見てみましょう。
Prefの数を見ると、4ですから、4年のデータですね。Yearを見ると、2012年度から2015年度の4年間であることがわかります。
Pop, Prod, Salesの散布図マトリックスを描きましょう。pairs関数を使います。
Prod(県内総生産額)とSales(サービス産業売上高)は相関係数が高そうですね。
cor関数で相関マトリックスをみてみます。
ProdとSalesの相関係数は、0.99です。一番低い相関係数でもPopとSalesで0.88です。
この3つはかなり相関関係が強いということですね。
それででは、サービス産業の売上高 / 県内総生産額 という比率を計算して、どの都道府県が一番サービス産業化しているか見てみましょう。
比率の最小値は、1.207で最大値は5.600です。
都道府県別に最大値を表示してみます。tapply関数です。
なんかよくわからない出力結果になってしまいました。
round関数で小数点以下2桁表示にします。
う~ん、これでもだめですね。。
このtapplyの出力結果を変数にして、データ構造をいろいろ調べてみます。
こうして、tapという変数をつくりました。これを、class関数、mode関数、str関数でデータ構造を調べます。
tapplyで生成されたtapはarrayですね。modeはnumericなので、数値データです。str関数の結果を見ると、dimnamesとして都道府県名が付与されていることがわかりました。tapは配列ですから、次元があるはずです。dim関数で調べましょう。
47ですね。どうしましょうか。。?とりあえず、as.data.frame関数でデータフレームにしてみます。
あ、これで見やすくなりますね。列名がtapになっているので、colnames関数でRatioに変換して、大きい順、小さい順に並び替えましょう。
あ~。そっか、tapはデータフレームでも1列しかないからこうなっちゃうですね。rownames(tap)に都道府県名がはいっているはずですから、都道府県名の列を追加してから並び替えましょう。
できました! 東京都が一番、サービス産業の売上高の比率が大きいですね。
一番低いところはどこでしょうか?
奈良県が一番比率が小さいです。
hist関数で分布をみてみます。
一番右にあるのは東京都ですね。東京都を除いてヒストグラムを描いてみます。
この比率と人口の関係を調べてみましょう。
まず、人口の都道府県別の最大値をtapply関数で作ります。
このtpopというデータフレームと、tapというデータフレームをmerge関数で統合します。Prefという列が同じデータですから、これをキーにして統合します。
いいですね。RatioとPopの散布図を描いてみます。
人口が多いほどサービス産業の比率は高まりますね。lm関数で回帰分析をしてみます。
p-valueは2.146e-10ですから統計的に有意なモデルです。R-sauaredは0.5956です。
散布図に回帰直線を重ねてみます。
Popの2乗項を加えて回帰分析してみます。
p-valueは8.693e-16で有意です。調製済みR2は0.7839と上昇しました。anova関数でmodelとmodel2で有意な違いがあるか見てみましょう。
p値は6.518e-08ですからmodelとmodel2は有意な違いがあります。model2のほうがあてはまりがいい、ということですね。
model2で予測した値も散布図に重ねましょう。
今回は以上です。