[一覧に戻る]
1つのデータが2つの値 $x$, $y$ で表されるとし,$x$ が原因,$y$ がその結果であるような状況を考える.そのようなデータが複数ある場合,$i$ 番目のデータに対する2つの値は $x[i]$, $y[i]$ と表されるとする.データが $n$ 個あるならば,ここから,配列 xarr = [$x[0]$, $x[1]$, $x[2]$, ..., $x[n-1]$] と yarr = [$y[0]$, $y[1]$, $y[2]$, ..., $y[n-1]$] を作ることができる.このようなデータに対する回帰直線とは,$y = ax + b$ という方程式が表す直線で,その傾き $a$ と切片 $b$ が次の式で計算されるもののことである. \[ a = \dfrac{\displaystyle n \sum_{i=0}^{n-1} x[i]y[i] - \sum_{i=0}^{n-1}x[i] \sum_{i=0}^{n-1}y[i]} {\displaystyle n \sum_{i=0}^{n-1}x[i]^2 - \left(\sum_{i=0}^{n-1}x[i]\right)^2}, \] \[ b = \dfrac{\displaystyle \sum_{i=0}^{n-1}x[i]^2\sum_{i=0}^{n-1}y[i] - \sum_{i=0}^{n-1}x[i]y[i] \sum_{i=0}^{n-1}x[i]} {\displaystyle n \sum_{i=0}^{n-1}x[i]^2 - \left(\sum_{i=0}^{n-1}x[i]\right)^2}. \] データを表す配列 xarr と yarr が与えられたとき,そのデータに対する回帰直線の傾き a と切片 b を計算するメソッド regression(n, xarr, yarr) を作成せよ.
とすれば,x を小数点以下第3位まで表示する.printf("%.3f", x)
irb> regression 3, [1.000, 2.000, 3.000], [2.000, 3.000, 4.000] 1.000 1.000 => nil irb> regression 5, [1.000, 2.000, 3.000, 4.000, 5.000], [1.000, 2.000, 1.300, 3.750, 2.250] 0.425 0.785 => nil irb> regression 5, [-3.000, -1.000, 0.000, 2.000, 4.000], [9.000, 1.000, 0.000, 4.000, 16.000] 1.096 5.562 => nil
「Submission successfully completed.」と表示されれば,提出が完了したことになる.% /ced-home/staff/enshu1p/checker_c4.rb ファイル名
[一覧に戻る]