
の続きです。前回は箱ひげ図を描いてみました。箱ひげ図を見る限りでは、資金調達には季節性があるようです。今回はシミュレーションや統計学の理論で季節性の有無を確認します。
まず、シミュレーションベースでの方法をしますので、inferパッケージの読み込みをします。

複数のカテゴリーがあってそのカテゴリー別の平均値に違いがあるかどうかを検定するのは、ANOVA(分散分析)ですね。inferパッケージのウェブサイト、
Tidy ANOVA (Analysis of Variance) with infer • infer
を参考にして実行します。
株式公募の件数が月ごとに違うかを分析しましょう。まず、F値を計算します。

F値は 18.1 と算出されました。次は、eqy_numとmonthが独立しているとみなしたnull distribution を1000回、シミュレーションで生成して、1000個のF値を計算します。

この1000個のF値をグラフにします。


赤い垂線が実際のF値、18.1の水準です。株式公募の件数が月とは関係が無いと仮定したときのF値の分布がヒストグラムです。こうしてみると、18.1というF値は、もしも件数と月が関係ないとしたら、ありえない大きさのF値ということですね。つまり、件数と月は関係がある、ということです。
p値を計算します。

p値は0となりました。
aov()関数という関数で理論ベースのANOVAも実行できます。

F値が18.07でp値が < 2e-16とinferパッケージのシミュレーションと同じ結果になりました。やっぱり株式公募の件数は、月ごとに違いがある、季節性があるということです。
aov()関数で株式公募の金額や債券発行なども調べてみましょう。

株式公募の件数は四半期別でも違いがあります。(p値は0.000276)
株式公募の件数は月別では違いがありますが、四半期別では違いがあるとは言えません。(月別のp値は0.0351、四半期別のp値は0.474)
債券のほうもaov()関数で検定してみます。

債券による資金調達では、件数、金額ともに月別でも四半期別でもp値はすべて0.05よりも小さい値です。つまり季節性があるということです。
今回は以上です。
次回は、
です。
はじめから読むには、
です。
今回のコードは以下になります。
#
# inferパッケージの読み込み
library(infer)
#
# eqy_numが月ごとに違うか?
# 1. F値を計算
observed_f_statistics <- df |>
specify(eqy_num ~ month) |>
hypothesize(null = "independence") |>
calculate(stat = "F")
observed_f_statistics
#
# 2. null distributionの生成
set.seed(888)
null_dist <- df |>
specify(eqy_num ~ month) |>
hypothesize(null = "independence") |>
generate(reps = 1000, type = "permute") |>
calculate(stat = "F")
#
# 3. null distributionのグラフ
null_dist |> visualize() +
shade_p_value(observed_f_statistics,
direction = "greater")
#
# 4. p値の計算
null_dist |>
get_p_value(obs_stat = observed_f_statistics,
direction = "greater")
#
# 5. aov()関数でのANOVA
aov(eqy_num ~ month, data = df) |>
summary()
#
# quarterでは?
aov(eqy_num ~ quarter, data = df) |>
summary()
#
# eqy_valは?
aov(eqy_val ~ month, data = df) |>
summary()
aov(eqy_val ~ quarter, data = df) |>
summary()
#
# bond_numは?
aov(bond_num ~ month, data = df) |>
summary()
aov(bond_num ~ quarter, data = df) |>
summary()
#
# bond_valは?
aov(bond_val ~ month, data = df) |>
summary()
aov(bond_val ~ quarter, data = df) |>
summary()
#
(冒頭の画像は、Bing Image Creator で生成しました。プロンプトは、Fancy and beautiful nature landscape photograph, close up of a spiderwort flower, blue sky, white clouds. です)