Rで何かをしたり、読書をするブログ

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

生産者の米穀在庫等調査の分析1 - 都道府県別の基本統計量 北海道は別格だ。

政府統計の総合窓口(e-Stat)に新着データとして、「生産者の米穀在庫等調査」というデータがありました。

f:id:cross_hyou:20180929151604j:plain

クリックしてみます。

f:id:cross_hyou:20180929151629j:plain

本調査は、毎月、農家の米穀の在庫量等を調査し、農家1戸当りのうるち米及びもち米の供給量、消費量、販売量、在庫量等を全国、都道府県別に提供しています。

とのことです。

どういう種類のデータがあるでしょうか?

f:id:cross_hyou:20180929151819j:plain

農家1戸当りのデータを都道府県別にまとめたものですね。ファイルを見てみます。

f:id:cross_hyou:20180929151913j:plainこういうデータですね。

これをR言語で読込みやすいようにCSVファイルに加工しました。

f:id:cross_hyou:20180929152747j:plain

このCSVファイルをread.csv関数でR言語に読込み、summary関数で基本統計量を表示しましょう。

f:id:cross_hyou:20180929153357j:plain

標準偏差を計算しましょう。sd関数です。

f:id:cross_hyou:20180929153748j:plain

apply関数とsd関数で都道府県を除くすべての列にsd関数を適用しています。そして結果をround関数で整数表示にしています。

平均値も同じように計算します。mean関数です。

f:id:cross_hyou:20180929154040j:plain

変動係数(CV)を計算します。標準偏差 / 平均値 です。

f:id:cross_hyou:20180929154422j:plain

飯用の変動係数が一番小さい(0.19)ですね。まあ、農家1戸当りの飯用ですから、各県でそれほど大きくは変わらないですよね。それに比べると、販売量はCVが1.21ですから都道府県によって大きく変わる、ということですね。

販売量の箱ひげ図と飯用の箱ひげ図を比較してみましょう。boxplot関数です。

f:id:cross_hyou:20180929155222j:plain

f:id:cross_hyou:20180929155232j:plain

販売量のほうは、大きな外れ値が一つありますね。

各項目同士の相関係数を計算しましょう。cor関数です。

f:id:cross_hyou:20180929155615j:plain

脱穀量と供給量の相関係数が1.000です。供給量 = 脱穀量 + 購入量 という関係ですが、脱穀量の平均値は6080、購入量の平均値は63と購入量は脱穀量の1%ほどですから供給量と脱穀量の相関が1.000になるのも納得です。

供給量と販売量の相関係数も1.000ですね。

それぞれのデータの分布の様子を見るために、データの小さい順に並び替えて棒グラフを描いてみましょう。棒グラフはbarplot関数、並び替えはsort関数、for関数で一度に10個のグラフを作ります。

f:id:cross_hyou:20180929161943j:plain

はじめに、par(mfrow=c(2,5))で2行5列のグラフの箱を作っておいて、そのあとにfor関数で10個の棒グラフを作ります。

f:id:cross_hyou:20180929162102j:plain

こうしてグラフを見ると、1つの都道府県が突出しているデータ項目が多いことがわかります。そしてその突出した都道府県とは。。。北海道ですね。。。確認してみましょう。order関数で並び替えて表示しましょう。

f:id:cross_hyou:20180929165017j:plain

f:id:cross_hyou:20180929165027j:plain

北海道は、飯用と無償譲渡量以外はダントツの1位だとわかります。

長崎は自分で食べる分(飯用)が多いんですね。

北海道がどれだけ突出しているかを見るために、各データを標準化して、標準化したデータの平均値を各都道府県ごとに計算してみましょう。

標準化した数値はZ値といいます。scale関数です。

f:id:cross_hyou:20180929171232j:plain

scale(data[ ,-1]) で都道府県の列以外の数値データを標準化して、その結果をas.data.frame関数でデータフレームにしています。

apply関数とmean関数で行ごとのの平均値を算出してそれをAverageという列名でz_dataのデータフレームに追加しています。

cbind関数でdataの1列目、つまり都道府県とz_dataと結合しています。

colnames関数でz_dataの1列目の列名を"都道府県"と名付けています。

そして、order関数でAverageの大きい順に並び替えています。

こうしてみると、北海道がダントツだとわかりますね。

棒グラフにしてみましょう。

f:id:cross_hyou:20180929171817j:plain

f:id:cross_hyou:20180929171828j:plain

一番右の飛びぬけている棒が北海道ですね。北海道は別格ですね。