UnsplashのNick Fewingsが撮影した写真
の続きです。前回までのデータの分析で、年度によって、l_totalの値が違うっぽいことがわかりました。今回はこれが統計定期に有意な違いなのかどうかを調べてみます。
inferパッケージで、シミュレーションベースで調べてみます。
はじめに、年度ごとにl_totalの値が違うかどうかをグラフでみてみましょう。
geom_boxplot()関数で箱ひげ図を描きました。真ん中の黒い水平線が中央値です。
group_by()関数とsummarize()関数とmean()関数で年度ごとのl_totalの平均値も確認しておきます。
2016年度は7.75, 2017年度は7.41, 2018年度は7.43です。
それでは、inferパッケージを読み込みます。
Full infer Pipeline Examples • infer の
MULTIPLE EXPLANATORY VARIABLES の例を参考にします。
まずは、サンプルからのobserved fitを取得します。
2016年度が基準で、2017年度は-0.244, 2018年度は-0.320小さいということです。
7.51(2017年度の平均) - 7.75(2016年度の平均) = -0.24
7.43(2018年度の平均) - 7.75(2016年度の平均) = -0.32
という結果と同じですね。
これは、理論ベースの lm()関数でも同じです。
続いて、Bootstrapをして1000回繰り返します。
この結果を視覚化してみます。
steelblue色の垂直線が0の位置です。2017年度の推定値も2018年度の推定値も分布は明らかに0よりも小さいエリアにあります。
この値をlm()関数の値と比較しますと、
ほとんど同じ値ですね。
95%の信頼区間を求めてみます。
inferパッケージでbootstrapをしてほうは、get_confidence_interval()関数で、
lm()関数での回帰分析のほう(理論的なほう)は、confint()関数で身体区間が求まります。
bootstrapのほうが範囲が広いですね。
2018年度の信頼区間もみてみます。
2018年度もbootstrapでの信頼区間のほうが範囲が広いです。
p値を求めてみます。
bootstrapのほうは0、lm()関数のほうは1.148e-06です。どちらも0とみなしていいくらいの小さい値です。
inferパッケージでbootstrapで回帰分析した場合は、get_p_value()関数でp値がわかります。
2018年度のp値も同じように求めてみます。
bootstrapでのp値は0,lm()関数でのp値は9.22e-10です。どちらも0とみなしていいくらいの小ささですね。
l_totalの値は年度によって値が違うようです。
今回は以上です。
次回は
です。
初めから読むには、
です。