www.crosshyou.info

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

消費者物価指数の分析1 - R言語で最小値、最大値、平均値、中央値、標準偏差などの基本統計量を算出する。

今回は消費者物価指数のデータを使ってR言語での分析を練習しようと思います。

e-Stat(政府統計の総合窓口)からデータのファイルを取得します。

f:id:cross_hyou:20181027095157j:plain

このなかの「年平均」のExcelファイルを開いてみました。

f:id:cross_hyou:20181027095415j:plain

こういうファイルでした。このファイルをR言語に読込ませるために、CSVファイルに変換加工しました。

f:id:cross_hyou:20181027101616j:plain

「生鮮食品を除く総合」などの「~~を除く総合」というのは削除して、年も西暦だけにしました。

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

f:id:cross_hyou:20181027102130j:plain

読込んだデータをsummary関数で処理して、最小値、第1分位値、中央値、平均値、第3分位値、最大値を表示しました。データ項目の数が多いので全部を載せていません。

dim関数でこのデータフレームの行数と列数を確認しましょう。

f:id:cross_hyou:20181027102450j:plain

48が行数なので、48年分のデータがあるということで、項目は74から年のぶんの1を引いて、73の項目があることがわかります。

summary関数だといっぺんに最小値や平均値が出てきて一つの画像に収まらないので、それぞれの関数で確認していきましょう。

最小値はmin関数です。全部のデータ項目で計算するので、apply関数を組み合わせます。

f:id:cross_hyou:20181027103154j:plain

これ、それぞれの最小値がCPI_MINというベクトルに格納されました。

sort関数を使って小さい順に表示します。

f:id:cross_hyou:20181027104219j:plain

「他の諸雑費」という項目が10.5で最小ですね。「家庭用.耐久財」が93.5で最大です。barplot関数で棒グラフにしてみましょう。

f:id:cross_hyou:20181027104457j:plain

f:id:cross_hyou:20181027104508j:plain

最大値はどうでしょうか?apply関数とmax関数を組み合わせます。

f:id:cross_hyou:20181027104652j:plain

最小値と同じようにsort関数で小さい順に表示します。

f:id:cross_hyou:20181027104909j:plain

「交通」が100.0で最小、「教養娯楽用.耐久財」が2420.2で最大です。2420.2って異常ですね。。barplot関数で棒グラフにしましょう。

f:id:cross_hyou:20181027105251j:plain

f:id:cross_hyou:20181027105316j:plain

一番右のとびぬけて高い棒が「教養娯楽用.耐久財」ですね。

平均値を計算しましょう。mean関数とapply関数を組み合わせます。

f:id:cross_hyou:20181027105631j:plain

sort関数で小さい順に表示します。

f:id:cross_hyou:20181027105745j:plain

「たばこ」が56.27917で最小、「教養娯楽用.耐久財」が1297.07083で最大です。

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

f:id:cross_hyou:20181027110121j:plain

f:id:cross_hyou:20181027110133j:plain

最大値と同じような形状ですね。

中央値を計算しましょう。median関数とapply関数を組み合わせます。

f:id:cross_hyou:20181027110359j:plain

sort関数で小さい順に表示します。

f:id:cross_hyou:20181027112254j:plain

「たばこ」が53.25で最小、「教養娯楽用.耐久財」が1487.40で最大です。

barplot関数で棒グラフにしましょう。

f:id:cross_hyou:20181027112549j:plain

f:id:cross_hyou:20181027112604j:plain

標準偏差を計算します。sd関数とapply関数を組み合わせます。

f:id:cross_hyou:20181027112841j:plain

標準偏差はデータにNAがあるとエラーになってしまうので、na.rm = TRUEを付け加えます。sort関数で小さい順に表示しましょう。

f:id:cross_hyou:20181027113030j:plain

 「情報通信.関係費」が1.934538で最小、「教養娯楽用.耐久財」が864.650052で最大です。barplot関数で棒グラフを描いてみましょう。

f:id:cross_hyou:20181027113711j:plain

f:id:cross_hyou:20181027113722j:plain

やはり、「教養娯楽用.耐久財」が飛びぬけていますね。

標準偏差を平均値で割り算した変動係数も計算しましょう。

f:id:cross_hyou:20181027113946j:plain

sort関数で小さい順に表示します。

f:id:cross_hyou:20181027114058j:plain

「理美容用品」が0.1225302で最小、「教養娯楽用.耐久財」が0.6666175で最大でした。barplot関数で棒グラフにしてみます。

f:id:cross_hyou:20181027114416j:plain

f:id:cross_hyou:20181027114429j:plain

一番右端の棒が「教養娯楽用.耐久財」です。

いままでの分析で、「教養娯楽用.耐久財」が飛びぬけていることがわかりました。次回の分析からは、この項目を抜かして分析しましょう。ということで最後に「教養娯楽用.耐久財」を除外したデータフレームを作成して終わりたいと思います。

subset関数で除外する列を名前で指定することができます。

f:id:cross_hyou:20181027115358j:plain

本当に除外できたか確認してみましょう。

ls関数で変数一覧を表示します。

f:id:cross_hyou:20181027115659j:plain

教養娯楽という文字列のある変数を見てみると、「教養娯楽」「教養娯楽.サービス」「教養娯楽.関係費」「教養娯楽.用品」だけで「教養娯楽.耐久財」がなくなっていることが確認できます。

 

次回は

 

www.crosshyou.info

です。