class FlexStationData::LinearRegression
Attributes
min_r_squared[R]
x[R]
y[R]
Public Class Methods
new(x, y, min_r_squared: 0.0, **)
click to toggle source
# File lib/flex_station_data/linear_regression.rb, line 10 def initialize(x, y, min_r_squared: 0.0, **) @x = x @y = y @min_r_squared = min_r_squared.to_f end
Public Instance Methods
intercept()
click to toggle source
# File lib/flex_station_data/linear_regression.rb, line 20 def intercept coefficients[0] end
quality()
click to toggle source
# File lib/flex_station_data/linear_regression.rb, line 30 def quality "poor fit" if r_squared.present? && r_squared < min_r_squared end
r_squared()
click to toggle source
# File lib/flex_station_data/linear_regression.rb, line 24 def r_squared @r_squared ||= line_fit.rSquared rescue TypeError nil end
slope()
click to toggle source
# File lib/flex_station_data/linear_regression.rb, line 16 def slope coefficients[1] end
Private Instance Methods
coefficients()
click to toggle source
# File lib/flex_station_data/linear_regression.rb, line 36 def coefficients @coefficients ||= line_fit.coefficients rescue TypeError [ nil, nil ] end
line_fit()
click to toggle source
# File lib/flex_station_data/linear_regression.rb, line 42 def line_fit @line_fit ||= LineFit.new.tap { |lf| lf.setData(x, y) } end