マンガで統計学の勉強ができるなんてすばらしいと思います。最初から難しい本を読むのとでは理解力に差が出るのではないでしょうか。
第6章の「2変数の関連を調べよう!」で単相関係数の話が出てきます。早速,何か調べてみたいと思ったので,
- 「宅習ノートの提出率」と「成績」の関連
を調べてみました。
Excelのような表計算ソフトだと簡単に計算できるのですが,計算式*1の理解を深めるためにRubyで作ってみました。
correl.rb
# -*- coding: utf-8 -*- class Array def correl other self_ave = self.inject(:+) / self.size other_ave = other.inject(:+) / other.size x = self.map{|e| e - self_ave } y = other.map{|e| e - other_ave } numerator = x.zip(y).map{|e| e[0]*e[1]}.inject(:+) # 分子 x = self.map{|e| (e - self_ave)**2 } y = other.map{|e| (e - other_ave)**2 } denominator = Math.sqrt(x.inject(:+)) * Math.sqrt(y.inject(:+)) # 分母 numerator / denominator end end if __FILE__ == $0 data = [] while line = gets data << line.split(',').map(&:to_f) end data = data.transpose puts data[0].correl(data[1]) end
実行結果
本書では,単相関係数の値の目安として,以下のように紹介されていますので,
- 1.0〜0.9 非常に強く関連している
- 0.9〜0.7 やや強く関連している
- 0.7〜0.5 やや弱く関連している
- 0.5未満 非常に弱く関連している
実行結果をみると,「宅習ノートの提出率」と「成績」は「やや強く関連している」と言えるんですね。当たり前といえば当たり前の結果ですが、数値で求めると説得力が増すような気がします。