www.crosshyou.info

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

消費動向調査データの分析3 - R言語のdplyrパッケージの主要5関数(filter, arrange, select, mutate, summarize)の練習

 

www.crosshyou.info

 の続きです。今回はdplyrパッケージの主要5関数、filter関数、arrange関数、select関数、mutate関数、summarize関数の練習をしようと思います。

まず、library(dplyr)としてパッケージを呼び込みます。

f:id:cross_hyou:20190204150625j:plain

filter関数はある条件でデータを絞り込むときに使います。

例えば、12月のデータだけに絞り込みましょう。

f:id:cross_hyou:20190204150829j:plain

二つの条件をANDでつなぐには、 , で列記すればいいです。

例えば、12月でL5が1.0以上のデータだけに絞り込みしてみます。

f:id:cross_hyou:20190204151114j:plain

二つの条件をORでつなぐには、 | で列記します。

例えば、2008年と2018年のデータだけに絞り込みましょう。

f:id:cross_hyou:20190204151328j:plain

arrenage関数は並び替えます。L5の小さい順に表示します。

f:id:cross_hyou:20190204151506j:plain

head関数を加えてはじめの6行だけの表示にしています。

大きい順に表示するには、desc(L5)としてやります。

f:id:cross_hyou:20190204151812j:plain

変数を , で列記すれば、複数の列で並び替えもできます。L5の小さい順でL52の小さい順をやってみましょう。

f:id:cross_hyou:20190204152044j:plain

 

select関数は表示したい変数を選択できます。Year, Month, Assetだけを表示しましょう。

f:id:cross_hyou:20190204152248j:plain

わざとYear, Asset, Month として表示する順番を変えてみました。

mutate関数は新しい変数を追加します。L5 + L52 + L2 を LL, U2 + U25 + U5 をUUとした新しい変数を作ってみましょう。

f:id:cross_hyou:20190204153601j:plain

summarize関数はデータフレーム1行に要約します。例えば、LLの平均値を出しましょう。

f:id:cross_hyou:20190204154725j:plain


LLの全期間の平均は6.827%, UUの全期間の平均は65.87%です。

summarize関数はgroup_by関数と組み合わせると更に協力になります。年毎のLLとUUの平均値を計算します。

f:id:cross_hyou:20190204154824j:plain

月ごとのLLとUUの平均値も計算してみます。

f:id:cross_hyou:20190204155221j:plain

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。

消費動向調査データの分析2 - R言語で箱ひげ図を作成する。2008年7月から2010年6月までの24か月は大変だった。

 

www.crosshyou.info

 の続きです。

今回は R言語で箱ひげ図を作成したいと思います。boxplot関数で簡単に箱ひげ図が描かれます。まずは、L5、物価が5%よりももっと下がると思う人の比率です。

f:id:cross_hyou:20190202110252j:plain

f:id:cross_hyou:20190202110304j:plain

6個の外れ値がありますね。でも、同じ値の外れ値が複数あるかもしれません。$outで確認しましょう。

f:id:cross_hyou:20190202113947j:plain

2.1 が2つありましたので、外れ値は 7個でした。

いつのデータでしょうか?データフレームを並び替えて調べてみましょう。order関数を使ってデータフレームを並びかえ、head関数で値の大きな7つの観測値を表示します。

f:id:cross_hyou:20190202114110j:plain



比率が 2.0%以上だと外れ値になっていました。2009年の12月は3.7%の人が5%以上物価が下落すると思っていたのですね。その他、2010年の1月、2009年の5月、4月、6月、2010年の2月、2009年の7月が外れ値でした。

 

次は L52, 物価が5%以上2%未満の範囲で下落すると思っている人の比率です。

f:id:cross_hyou:20190202111849j:plain

f:id:cross_hyou:20190202111908j:plain

外れ値は何個あるでしょうか?str(boxplot(df$L52)$out) というコマンドでわかります。

f:id:cross_hyou:20190202114415j:plain

num [1:21] とありますから、21個の外れ値があることがわかります。

同じように21個の外れ値はどの年月なのか見てみましょう。

f:id:cross_hyou:20190202114549j:plain



比率が 3.3% 以上だと外れ値になっていました。2009年と2010年ですね。リーマンショック後の景気悪化の時期ですね。

 

次は L2 物価が 2% 未満低下すると思っている人の割合です。

f:id:cross_hyou:20190202112901j:plain

f:id:cross_hyou:20190202112915j:plain

外れ値は何個あるでしょうか?

f:id:cross_hyou:20190202114741j:plain

14個外れ値があります。どの年月でしょうか?

f:id:cross_hyou:20190202114933j:plain

やはり、2009年と2010年ですね。最低値は2009年9月の9.6% で、最高値は2009年12月の18.6%です。

 

次は Unch 物価が変わらないと思っている人の割合です。

f:id:cross_hyou:20190202115237j:plain

f:id:cross_hyou:20190202115249j:plain

あ、これは外れ値無いですね。一応確認しておきましょう。

f:id:cross_hyou:20190202115420j:plain

num(0) とありますので、やはり外れ値は無いです。

 

今度はU2 物価が2%未満上昇すると思っている人の比率の箱ひげ図です。

f:id:cross_hyou:20190202120006j:plain

f:id:cross_hyou:20190202120019j:plain


あ、これも外れ値は無いですね。確認しておきましょう。

f:id:cross_hyou:20190202120202j:plain

 

次は U25 物価が 2%以上5%未満上昇すると思っている人の比率です。

f:id:cross_hyou:20190202120453j:plain

f:id:cross_hyou:20190202120508j:plain

これも外れ値は無いですね。いちおう確認しておきましょう。

f:id:cross_hyou:20190202120658j:plain

外れ値はありません。

 

次は U5 物価が5%以上の上昇と思っている人の比率です。

f:id:cross_hyou:20190202121124j:plain

f:id:cross_hyou:20190202121139j:plain

あ!外れ値がありますね。何個かな?確認しましょう。

f:id:cross_hyou:20190202121314j:plain

1つだけですね。42.2%の人が物価が5%以上上がると思ってた時がありました。それはいつでしょうか?

f:id:cross_hyou:20190202121619j:plain

2008年の7月です。 

 

次は、DK わからないという人の比率の箱ひげ図です。

f:id:cross_hyou:20190202122331j:plain

f:id:cross_hyou:20190202122342j:plain

外れ値は無いですね。確認しましょう。

f:id:cross_hyou:20190202122653j:plain

やはり無いです。

ここまで物価の見通しの箱ひげ図と外れ値を観測した年月を見てきました。

外れ値を観測した時期は、物価は下落すると思っているケースに多く見られます。

2009年は全部の月が外れ値でした。2010年は7月8月10月を除く月が外れ値でした。

物価上昇については、2008年7月が外れ値でした。

こうしてみると、2009年と2010年はよっぽど景気が悪かったのですね。

 

それでは、消費者態度指数についても箱ひげ図を作成して外れ値を見てみましょう。

まずは、Index, 消費者態度指数そのものですね。いままではboxplot関数とstr関数のコマンドを別々にしていましたが、実は、str(boxplot(~~~)$out)のコマンドで箱ひげ図も作成できるので、一つだけ表示します。

f:id:cross_hyou:20190202123732j:plain

f:id:cross_hyou:20190202123748j:plain

お~!今度は下の位置に外れ値がありますね。そして、外れ値の個数は9個です。

order関数で並び替えてみましょう。

f:id:cross_hyou:20190202124144j:plain

2008年の12月が一番悪くて、消費者態度指数は 26.7です。31.8以下だと外れ値なのですね。2008年と2009年ですね。

 

次は Live 暮らし向きです。

f:id:cross_hyou:20190202124454j:plain

f:id:cross_hyou:20190202124511j:plain

これも下方に9個の外れ値があります。どの年月でしょうか?

f:id:cross_hyou:20190202124722j:plain

2008年の8月が一番悪く、31.1以下だと外れ値です。2008年と2009年ですね。

 

次は Income 収入の箱ひげ図です。

f:id:cross_hyou:20190202125039j:plain

f:id:cross_hyou:20190202125051j:plain

4つの外れ値があります。年月はいつでしょうか?

f:id:cross_hyou:20190202125251j:plain

2008年12月から2009年3月までの4か月間が外れ値でした。

 

続いて、Empl 雇用環境です。

f:id:cross_hyou:20190202125548j:plain

f:id:cross_hyou:20190202125600j:plain

下方に5つの外れ値があります。年月はいつでしょうか?

f:id:cross_hyou:20190202125846j:plain

2008年11月から2009年3月までの5か月間ですね。

 

Buy 耐久消費財の買い時判断はどうでしょうか?

f:id:cross_hyou:20190202130152j:plain

f:id:cross_hyou:20190202130202j:plain

3つ外れ値があります。いつの時期か調べてみましょう。

f:id:cross_hyou:20190202130452j:plain

2008年7月、8月、10月です。

 

最後は Asset 資産価値の箱ひげ図です。

f:id:cross_hyou:20190202130727j:plain

f:id:cross_hyou:20190202130738j:plain

外れ値が一つありました。いつでしょうか? Asset == 28.1 と条件指定してデータフレーム(df)を表示します。

f:id:cross_hyou:20190202131136j:plain

2008年の12月でした。

以上、消費者態度指数の箱ひげ図と外れ値の時期を見てきましたが、2008年と2009年に外れ値がありました。物価の見通しは2009年と2010年に外れ値がある(42008年7月にU5で外れ値がありました)ことを考えると、消費者態度指数のが先に外れ値が出て、次に物価の見通しに外れ値が出るという順番のようです。

物価の見通しと消費者態度で外れ値があった月を時系列で整理すると、

2008年7月2010年6月までの24か月は何らかの外れ値があり、2か月間を開けて2010年9月に外れ値、1か月あいて、11月12月に外れ値がある、という状況でした。

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。

 

読書記録 - 「入門!論理学] 野矢茂樹 著 中公新書

 

入門!論理学 (中公新書)

入門!論理学 (中公新書)

 

 論理学の入門書。論理学とは言葉と言葉の関係で、演繹的推論を扱う。

4章まではだいたわかったが、5章、6章は難しかった。

消費動向調査データの分析1 - R言語で基本統計量を算出する。

毎月勤労統計のデータ調査方法が間違っていたということで、政府発表の統計の信頼性が少し揺らいでいますが、いつものように政府統計の総合窓口(e-Stat)のサイトを見てみました。

f:id:cross_hyou:20190130192801j:plain

「消費動向調査」というのが新着でありました。

早速クリックしてみます。

f:id:cross_hyou:20190130192947j:plain

「消費動向調査は、今後の暮らし向きの見通しなどについての消費者の意識や物価の見通し、主要耐久消費財等の保有状況等を把握することにより、景気動向判断の基礎資料を得ることを目的としている一般統計調査です。(以下略)」とのことです。

ここから、

f:id:cross_hyou:20190130193310j:plain

長期時系列表 5表 消費者態度指数、消費者意識指標の推移(総世帯、原数値)と

f:id:cross_hyou:20190130193430j:plain

長期時系列表 3表 物価の見通しの推移(総世帯、原数値)

のデータを分析してみようと思います。

この2つのデータを

f:id:cross_hyou:20190130195118j:plain

このようなCSVファイルに整理して、read.csv関数でR言語に読込みます。

f:id:cross_hyou:20190130195451j:plain

178の観測があり、変数の数は16のデータフレームです。

Yearは年ですね。整数データになったいますので、factor関数でファクターに変換しましょう。

f:id:cross_hyou:20190130195859j:plain

2004年は9か月、2005年から2018年までは12か月、2019年は1月のデータがあることがわかります。

Monthも同じようにファクタに変換しましょう。

f:id:cross_hyou:20190130200058j:plain

2月と3月が14個の観測があり、残りは15個の観測(データ)があります。

以下の変数は全て数値データです。summary関数で基本統計量を見てきましょう。

L5 という変数は物価の見通しで、5%以上低下すると思っている人のパーセントです。

f:id:cross_hyou:20190130200500j:plain

平均すると、0.7534パーセントですね。sd(df$L5) / mean(df$L5) は変動係数です。

 

L52 という変数は物価が5%から2%低下すると思っている人のパーセントです。

f:id:cross_hyou:20190130200751j:plain

平均すると、1.743パーセントです。

 

L2 という変数は物価が2%未満低下すると思っている人のパーセントです。

f:id:cross_hyou:20190130201006j:plain

平均すると、4.321パーセントです。

 

Unch は物価が変わらないと思っている人のパーセントです。

f:id:cross_hyou:20190130201157j:plain

平均すると、20.99パーセントです。

 

U2 は物価が2%未満上昇すると思っている人のパーセントです。

f:id:cross_hyou:20190130201452j:plain

平均すると、25.10パーセントです。

 

U25 は物価が2%から5%上昇すると思っている人のパーセントです。

f:id:cross_hyou:20190130201708j:plain

平均すると、26.79パーセントです。

 

U5 は物価が5%以上上昇すると思っていいる人のパーセントです。

f:id:cross_hyou:20190130202023j:plain

平均すると、13.98パーセントです。

 

DKは物価がどうなるかわからない人のパーセントです。

f:id:cross_hyou:20190130202223j:plain

平均すると、6.335パーセントです。

 

Index は消費者態度指数です。数値が大きいほど消費意欲が旺盛です。

f:id:cross_hyou:20190130202727j:plain

平均は 41.67です。

 

Live は暮らし向きです。

f:id:cross_hyou:20190130202927j:plain

平均は40.55 です。

 

Income は収入の増え方です。

f:id:cross_hyou:20190130203101j:plain

平均は40.68です。

 

Emple は雇用環境です。

f:id:cross_hyou:20190130203251j:plain

平均は 42.83 です。

 

Buy は耐久消費財の買い時判断です。

f:id:cross_hyou:20190130203442j:plain

平均は 42.59 です。

 

Asset は資産価値です。

f:id:cross_hyou:20190130203637j:plain

平均は 41.84 です。

以上まとめると、物価の見通しで一番多かったのは、物価が 2% から 5% 上昇すると思っている人でした。変動係数が一番小さく安定していたのは、物価が 2% 未満上昇と思っている人でした。

消費者態度指数や消費者意識では、一番良好だったのは、雇用環境です。変動係数が一番小さく安定していたのは、収入の増え方でした。

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。

JFAコンビニエンスストア統計調査月報データの分析6 - R言語で1日当りの来客数と売上を算出する。1月は暇で7月は忙しい!?

 

www.crosshyou.info

 の続きです。

今回は1日当りの来客数と売上高を計算してみたいと思います。

いままでの分析で2月は売上高、来客数ともに少なかったですが、2月は28日までしかないですからね。当たり前といえば当り前です。なので1日当りの売上高と来客数を見てみましょう。

まずは、売上高と来客数のデータの確認をします。

f:id:cross_hyou:20190129143501j:plain

となります。2017年も2018年もうるう年ではありませんので、2月は28日間です。

なので、まず日数のベクトルを作りましょう。

f:id:cross_hyou:20190129144055j:plain

これで1日当りの売上高や来客数を計算できます。

まずは全店売上高から

f:id:cross_hyou:20190129144517j:plain

R言語のいいところは、全店売上高のデータ数が24個でdaycountのデータ数が12個の場合には、daycountのデータを繰り返して割り算してくれるところですね。

既存店売上高、全店来客数、既存店来客数も計算してしまいましょう。

f:id:cross_hyou:20190129145244j:plain

このように作成した4つのベクトルと年、月のベクトルを合わせて一つのデータフレームにしましょう。

f:id:cross_hyou:20190129145843j:plain

このようになりました。summary関数で平均値などを算出しましょう。

f:id:cross_hyou:20190129150024j:plain

全店売上高の平均は、296億63百万円です。既存店売上高の平均は262億88百万円です。全店来客数の平均は4755万9千人です。既存店来客数の平均は4272万4千人です。

plot関数でグラフにしてみましょう。その際にもともとのデータを下において変動の度合いを比較してみましょう。

まずは全店売上高からです。

f:id:cross_hyou:20190129150939j:plain

f:id:cross_hyou:20190129151017j:plain

上の1日当りの全店売上高のほうがトレンドがわかりやすいですね。1月は売上が少なく、2月から7月までは売上が上昇し、8月9月と減少していって、12月に売上が増えるというパターンです。

既存店売上高はどうでしょうか?

f:id:cross_hyou:20190129151717j:plain

f:id:cross_hyou:20190129151514j:plain

既存店売上高も同じ傾向です。

全店来客数はいかがでしょうか?

f:id:cross_hyou:20190129152012j:plain

f:id:cross_hyou:20190129152025j:plain

1日当りにすることでトレンドがはっきりしましたね。1月から7月にかけて来店客数が増えて、8月から1月までが減少するというパターンです。

どうして7月は来店客数が多いのでしょうね?

既存店の来客数も見てみましょう。

f:id:cross_hyou:20190129152506j:plain

f:id:cross_hyou:20190129152518j:plain

既存店来客数も同じです。

コンビニエンスストアは1月が1日当りの来店客数が一番少なく暇で、7月が一番多いので忙しい、ということがわかりました。

今回は以上です。

 

JFAコンビニエンスストア統計調査月報データの分析5 - R言語で2つの変数の平均を比較する

 

www.crosshyou.info

 の続きです。

今回は2つの変数の平均を比較して有意な違いがあるかどうかをR言語で検定しましょう。

まずは、全店客単価と既存店客単価を比較しましょう。summary関数で基本統計量をみてみましょう。

f:id:cross_hyou:20190126104430j:plain

こうして両者を比較すると、最小値から最大値まですべて全店客単価のほうが値が高くなっていますね。

ヒストグラムで比較してみましょう。

f:id:cross_hyou:20190126104858j:plain

f:id:cross_hyou:20190126104909j:plain

まず、kugiri <- のコマンドでヒストグラムの各区間を設定します。

par(mfrow = c(2, 1)) のコマンドで一つのグラフィックパネルに2つのグラフを配置する設定にします。

そして、hist関数で2つのヒストグラムを描きます。col = "blue"で青く、col = "red"で赤くしています。

ヒストグラムを見ても全店客単価のほうが値が大きいようですね。

t.test関数で t検定をします。

f:id:cross_hyou:20190126105522j:plain

p-value = 0.03879 と 0.05 よりも小さいので全店客単価と既存店客単価の平均値は有意に違いがあります。

この全店客単価と既存店客単価は同じ年月に観測されたデータです。つまり、ペアになっているデータということです。この場合には、t.test関数で paired = TRUE というオプションを加えて検定します。

f:id:cross_hyou:20190126110046j:plain

p-value = 2.235e-07 と先ほどよりもさらに小さい p値になりました。

結果の下の2行を見ると、mean of the differences 8.370833 と表示されています。全店売上高と既存店売上高では平均すると8円37銭の違いがあるということがわかります。

二つの単価の分布の位置に違いがあるかどうかも検定しましょう。ノンパラメトリック検定のウィルコクソン=マン・ホイットニー検定を使いましょう。wilcox.test関数です。

f:id:cross_hyou:20190126110632j:plain

p-value = 3.63e-05 と 0.05 よりも小さい値です。全店客単価と既存店客単価の分布の位置は違いは統計的に有意な違いであることがわかりました。

もう一つ、全店来客数の前年同月比と既存店来客数の前年同月比を比較してみましょう。summary関数で両者を比較してみます。

f:id:cross_hyou:20190126111259j:plain

既存店来客数の前年同月比のほうが範囲が大きいですね。

ヒストグラムで比較してみましょう。

f:id:cross_hyou:20190126111653j:plain

f:id:cross_hyou:20190126111704j:plain

全店来客数の前年同月比は真ん中に集中していますが、既存店のほうがまんべんなくばらけている印象です。

コルモゴロフ=スミルノフ検定でこの両者の分布が同じかどうかを検定しましょう。ks.test関数を使います。

f:id:cross_hyou:20190126112423j:plain

p-value = 0.2558 と 0.05 よりも大きな p値です。これは両者が同じ分布であり得ることを意味します。

それでは、t.test関数で両者の平均値に違いがあるかどうかを検定します。

f:id:cross_hyou:20190126112739j:plain

p-value = 0.4138 と 0.05 よりも大きい p値です。つまり、両者の平均値に違いがあるとは言えないです。

wilcox.test関数で分布位置についても検定しましょう。

f:id:cross_hyou:20190126113022j:plain

p-value = 0.5693 と 0.05 よりも大きな p値です。つまり、両者の分布位置に違いがあるとは言えないです。

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。

JFAコンビニエンスストア統計調査月報データの分析4 - R言語で相関関係を分析

 

www.crosshyou.info

 の続きです。

今回は各変数の相関関係をR言語でみてみましょう。

まず、plot関数で散布図マトリックスをみてみましょう。

f:id:cross_hyou:20190125120948j:plain

f:id:cross_hyou:20190125120959j:plain

変数がいっぱいありすぎて、どれがどれだかわからないですね。。。

前年同月比のほうも作成してみます。

f:id:cross_hyou:20190125121233j:plain

f:id:cross_hyou:20190125121244j:plain

こちらは売上品目の構成比率が無いぶんだけわかりやすいですね。

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

f:id:cross_hyou:20190125121503j:plain

一番左側の列、全店売上高との相関に着目すると、一番相関の高いのは、既存店売上高です。相関係数は0.98972236です。逆に非食品はマイナス相関で-0.35668010です。

前年同月比のデータも相関マトリックスを作成しましょう。

f:id:cross_hyou:20190125121927j:plain

これも一番左の列、全店売上高との相関に着目すると、既存店売上高が一番相関が強く0.8552834です。全店舗数は-0.4147895とマイナス相関になっています。店舗数の前年同月比と全店売上高がマイナス相関というのは直感に反する感じがします。cor.test関数で有意な相関関係なのか確認しましょう。

f:id:cross_hyou:20190125122438j:plain

p-value = 0.18 とあります。0.05よりも大きいのでこの相関関係は有意ではないです。

95 percent confidence intervalも -0.7985884 から 0.2088218 とあります。この信頼区間の中に 0 がありますから相関関係は無いということです。

同じように、全店売上高と非食品の相関関係を検定しましょう。

f:id:cross_hyou:20190125123139j:plain

p-value = 0.08693 です。0.05 よりも大きいので、こちらの組み合わせも有意な相関とは言えません。95%信頼区間の相関係数を見ると、-0.66458560 から 0.05436242 と 0 が含まれています。

今回は以上です。

 次回は

 

www.crosshyou.info

 

です。