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

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

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

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

Sectorは製造業、全産業、非製造業の3種類です。Indusはたくさんあります。Timeは調査時期で、Junは2019年6月調査、Sepは2019年9月調査です。Scaleは調査した企業の規模で大企業、中堅企業、中長期業の3種類です。Typeは短観の種類で最近の業況判断と先行きの判断の2種類です。Valueは短観の数値ですね。
Valueが反応変数で数値データ、その他が説明変数で全てカテゴリカルデータです。
この場合の分析は、ANOVA分析です。
とりあえず、短観の数値、Valueの箱ひげ図やヒストグラム、小さい順グラフを描いてみましょう。


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


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


sort関数で小さい順に並べて、plot関数でグラフを書きます。
こうして三つのグラフを見ると、短観のデータは都道府県別の人口や県内総生産のデータと比べるとかたよりが少なく、平均値を中心にまとまっているように感じます。
それではANOVAをしてみましょう。ANOVAはAnalysis of Varianceの意味です。
まずは、説明変数をTimeにしましょう。JunとSepで値が短観の値は違うといえるのかどうかを調べてみます。いつものように参考図書は
Statistics: An Introduction Using R
- 作者: Michael J. Crawley
- 出版社/メーカー: Wiley
- 発売日: 2019/12/09
- メディア: ペーパーバック
- この商品を含むブログを見る
です。
まずは、グラフでみてみましょう。


黒の点がJun、つまり6月調査の点で赤の点がSep、9月調査の点です。黒い水平線が6月調査の平均値で、赤い水平線が9月調査の平均値です。2つの平均値の違いは、それぞれのデータのばらつきぐあいから見ると大した違いではなさそうですね。
まずは、SSY、sum of the square of the differences between y values and the overall meanを計算します。yというのは今回は短観の値ですね。

SSYは68298.76と求められました。
次は、SSE、the error sum of squaresを計算します。

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

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

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

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

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

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

3.865が基準値ですので、それよりも小さい3.26というF ratioでは、Timeによる違いは無い、ということですね。
最後にaov関数とsummary関数を使って結果を確認しましょう。

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