æå°äºä¹æ³ã§é åå ã®å¤ã®å¾ããå¾ãé¢æ°
æå°äºä¹æ³ã§é åå ã®å¤ã®å¾ããå¾ãé¢æ°ã§ããこのサイトãåèã«å®è£ ãã¦ãã¾ãã
#===æå°äºä¹æ³ã§ãé åå ã®å¤ã®å¾ããå¾ãã #datas:: å¤ã®é å #æ»ãå¤:: å¾ãã0ãã大ãããã°ä¸åããå°ãããã°ä¸åãã def vector( datas ) # æå°äºä¹æ³ã使ãã total = {:x=>0.0,:y=>0.0,:xx=>0.0,:xy=>0.0,:yy=>0.0} datas.each_index {|i| total[:x] += i total[:y] += datas[i] total[:xx] += i*i total[:xy] += i*datas[i] total[:yy] += datas[i] * datas[i] } n = datas.length d = total[:xy] c = total[:y] e = total[:x] b = total[:xx] return (n*d - c*e) / (n*b - e*e) end
ãµã³ãã«ã
p vector( [1,2,3,4,5 ] ) p vector( [2,3,2,4,5 ] ) p vector( [2,2,2,2,2 ] ) p vector( [5,4,2,3,2 ] ) p vector( [5,4,3,2,1 ] )
å®è¡çµæã§ããæããã«ãµã³ãã«æ°ã足ããªããã©ãä¸å¿æå¾ éãåä½ãã¦ããæ触ã
1.0 0.7 0.0 -0.7 -1.0