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

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

日銀の短観データの分析1 - R言語でANOVA。6月調査と9月調査に違いがあるとは言えない。

今回は先日発表された日銀の短観データを分析してみます。

f:id:cross_hyou:20191008205806j:plain

日銀のウェブサイトからダウンロードしたファイルは、上のようなものでした。

これを

f:id:cross_hyou:20191008205927j:plain

こんな感じにデータを組みなおして、read.csv関数でR言語で読み込み、分析してみます。

f:id:cross_hyou:20191008210957j:plain

summary関数でそれぞれの変数のおおよその様子をみてみます。

f:id:cross_hyou:20191008211132j:plain

Sectorは製造業、全産業、非製造業の3種類です。Indusはたくさんあります。Timeは調査時期で、Junは2019年6月調査、Sepは2019年9月調査です。Scaleは調査した企業の規模で大企業、中堅企業、中長期業の3種類です。Typeは短観の種類で最近の業況判断と先行きの判断の2種類です。Valueは短観の数値ですね。

Valueが反応変数で数値データ、その他が説明変数で全てカテゴリカルデータです。

この場合の分析は、ANOVA分析です。

とりあえず、短観の数値、Valueの箱ひげ図やヒストグラム、小さい順グラフを描いてみましょう。

f:id:cross_hyou:20191008212243j:plain

f:id:cross_hyou:20191008212255j:plain

hist関数でヒストグラムを描きます。短観は0より大きいと景気がよくて、0より小さいと景気が悪いとなりますから、ヒストグラムを見ると、0よりも大きい値のほうが多いですので、2019年6月と2019年9月はおおむね景気は良かったのではないでしょうか?赤の垂線が平均値、青の垂線が中央値です。

f:id:cross_hyou:20191008212839j:plain

f:id:cross_hyou:20191008212901j:plain

boxplot関数で箱ひげ図を描きます。下に2つ。上に3つの外れ値があります。

f:id:cross_hyou:20191008213240j:plain

f:id:cross_hyou:20191008213300j:plain

sort関数で小さい順に並べて、plot関数でグラフを書きます。

こうして三つのグラフを見ると、短観のデータは都道府県別の人口や県内総生産のデータと比べるとかたよりが少なく、平均値を中心にまとまっているように感じます。

それではANOVAをしてみましょう。ANOVAはAnalysis of Varianceの意味です。

まずは、説明変数をTimeにしましょう。JunとSepで値が短観の値は違うといえるのかどうかを調べてみます。いつものように参考図書は

 

Statistics: An Introduction Using R

Statistics: An Introduction Using R

 

 です。

まずは、グラフでみてみましょう。

f:id:cross_hyou:20191008220442j:plain

f:id:cross_hyou:20191008220453j:plain

黒の点がJun、つまり6月調査の点で赤の点がSep、9月調査の点です。黒い水平線が6月調査の平均値で、赤い水平線が9月調査の平均値です。2つの平均値の違いは、それぞれのデータのばらつきぐあいから見ると大した違いではなさそうですね。

まずは、SSY、sum of the square of the differences between y values and the overall meanを計算します。yというのは今回は短観の値ですね。

f:id:cross_hyou:20191008221142j:plain

SSYは68298.76と求められました。

次は、SSE、the error sum of squaresを計算します。

f:id:cross_hyou:20191008221929j:plain

SSEは67738.55です。
SSYとSSEがわかったので、SSA、the treatment sum of squaresを計算します。

f:id:cross_hyou:20191008222159j:plain

ここで短観のデータの数を確認しておきましょう。

f:id:cross_hyou:20191008223705j:plain

データの数は396個ですね。なので、ANOVA表はこうなります。

f:id:cross_hyou:20191008223841j:plain

SSEのMean squareは67338/394を計算します。そしてF ratioは560をSSEのMean squareで割った値です。

f:id:cross_hyou:20191008224210j:plain

なので、完成したANOVA表は、

f:id:cross_hyou:20191008225400j:plain



となります。

ANOVA表が完成したので、次は、qt関数を使ってF ratioの3.26という値が意味のある値なのかどうかを調べます。

f:id:cross_hyou:20191009095159j:plain

3.865が基準値ですので、それよりも小さい3.26というF ratioでは、Timeによる違いは無い、ということですね。

最後にaov関数とsummary関数を使って結果を確認しましょう。

f:id:cross_hyou:20191008225216j:plain

P値が0.07818と0.05よりも大きいので、JunとSepでValueの平均値に違いが無いという帰無仮説は棄却できません。今回は以上です。