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

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

全国主要都市の交通事故と犯罪発生件数のデータ分析7 - R言語でlm関数とanova関数を使わないでANOVA分析をする。

 

www.crosshyou.info

 の続きです。

前回は、R言語のlm関数とanova関数でANOVA(分散分析)をしましたが、今回はこの二つの関数を使わないでANOVA(分散分析)をしてみます。

 下記の本「平均・分散から始める一般線形化モデル入門」作者:馬場真哉
を参考にしてみました。

平均・分散から始める一般化線形モデル入門

平均・分散から始める一般化線形モデル入門

  • 作者:馬場 真哉
  • 発売日: 2015/07/14
  • メディア: 単行本
 

 

japanpacific(日本海側、太平洋側、その他)とkoutuuのANOVAをやってみます。

 ANOVAは

koutuu = koutuuの平均値 + japanpacificの効果 + 誤差

というようにkoutuuの値が決まるモデルを仮定して、

F比 = japanpacificの効果の分散 / 誤差の分散

を計算して、F比が有意に大きいかどうかを調べます。


まず、それぞれのベクトルを作成します。

f:id:cross_hyou:20201205210825p:plain

 

つぎに、それぞれの平均値の変数を作ります。

f:id:cross_hyou:20201205211123p:plain

その他の平均値は約821、日本海側の平均値は約774、太平洋側の平均値は約863、全部の平均値は約840です。

 

次はjapanpacificの効果を求めます。

これは、

その他の効果 = その他の平均値 - 全部の平均値

日本海側の効果 = 日本海側の平均値 - 全部の平均値

太平洋側の効果 = 太平洋側の平均値 - 全部の平均値

です。

f:id:cross_hyou:20201205212106p:plain

 

次にjapanpacificという効果の自由度と誤差の自由度を求めます。

japanpacificはその他、日本海側、太平洋側という3つの要素がありますから、3から1を引いて、2です。

誤差の自由度は、全体のデータの数(105都市)からjapanpacificの要素の数(3)を引いて、

105 - 3 = 102です。

f:id:cross_hyou:20201205212444p:plain

 

japanpacific効果の分散を求めます。

f:id:cross_hyou:20201205212637p:plain

(その他の平均値 - 全部の平均値)^2 * その他のデータの数 +
(日本海側の平均値 - 全部の平均値)^2 * 日本海側のデータの数 +
(太平洋側の平均値 - 全部の平均値)^2 * 太平洋側のデータの数

これが分子で、分母は効果の自由度です。

japanpacific効果の分散は、50529.15です。

 

誤算の分散を求めます。

f:id:cross_hyou:20201205213125p:plain

誤算の分散は、208296.3です。

 

F比を求めます。F比 = japanpacific効果の分散 / 誤差の分散 です。

つまり、japanpacific効果の分散が誤差の分散よりもじゅうぶんに大きければ、japanpacificという効果は有意だろう、ということです。

f:id:cross_hyou:20201205213428p:plain

F比は0.2425831です。

 

F比からp値を計算します。自由度が2, 102のF分布です。

pf関数で確率計算できます。

f:id:cross_hyou:20201205213604p:plain

p値は0.7850499です。つまり0.05よりも大きく、japanpacificという効果は有意ではいということです。

このようにながながと計算してANOVA分析をしましたが、lm関数とanova関数で1行のコマンドで終わります。

f:id:cross_hyou:20201205213811p:plain

いままで計算してきたものを上のANOVA結果に対応させるとこうなります。

f:id:cross_hyou:20201205214852p:plain

Sum Sqは DF * Mean Sq です。Sum Sq / DF = Mean Sq ともいえます。

 

今回は以上です。