crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

都道府県別の食料自給率のデータ分析4 - R言語で分散や平均値に違いがあるかどうかを検定する。

 

www.crosshyou.info

 の続きです。

今回は、2010年度と2015年度で各データの分散や平均値が違っているのかどうかを調べます。

まずは、2010年度と2015年度のデータフレームを用意します。

f:id:cross_hyou:20200510195407j:plain

f:id:cross_hyou:20200510195535j:plain

df10とdf15の都道府県の並び順は同じだとは思いますが、念のため、order関数で統一します。

f:id:cross_hyou:20200510195739j:plain

本当に同じ並びになったか確認します。

f:id:cross_hyou:20200510195921j:plain

df10$Year != df15$Year はもしも都道府県が一致していなかったらTRUEになります。これをsumで合計した値が0です。ということは、一致していなかった組合せは無かったということです。

まずは、var.test関数で2010年度と2015年度で分散が同じと言えるかどうかを検定します。for関数でいっぺんにやります。

f:id:cross_hyou:20200511070142j:plain

Step1でまず、p-valueを格納するvectorを用意しておきます。比較する変数は6つなので、numeric(6)とします。

Step2でp-valueを計算する関数を定義します。var.test関数で作られるオブジェクトの中にp.valueという名前でp-valueは格納されています。

Step3でfor関数を使っていっぺんにやります。

Step4で結果を見ます。すべての変数のp-valueは0.05よりも大きいです。つまり分散は同じとみなしていいですね。

分散が同じですから、t.test検定で平均値が同じかどうかを検定します。2010年度の北海道と2015年度の北海道、2010年度の青森県と2015年度の青森県と対応していますから、paired = TRUEとします。

f:id:cross_hyou:20200510202307j:plain

Popu, Temp, Incomeのp-valueは0.05よりも小さいですから、平均値に違いがあると言えます。

実際に平均値を比べてみます。

f:id:cross_hyou:20200510202657j:plain

Popuは272万4625人から270万4144人に減少しました。
Tepは15.78723℃から15.85745℃に上昇しました。
Incomeは3兆7403億2595万2千円から3兆9088億9298万9千円に増加しました。

今回は以上です。