raise StatisticsError('covariance requires that both inputs have same number of data points')
if n < 2:
raise StatisticsError('covariance requires at least two data points')
- xbar = mean(x)
- ybar = mean(y)
+ xbar = fmean(x)
+ ybar = fmean(y)
total = fsum((xi - xbar) * (yi - ybar) for xi, yi in zip(x, y))
return total / (n - 1)
slope = covariance(regressor, dependent_variable) / variance(regressor)
except ZeroDivisionError:
raise StatisticsError('regressor is constant')
- intercept = mean(dependent_variable) - slope * mean(regressor)
+ intercept = fmean(dependent_variable) - slope * fmean(regressor)
return LinearRegression(intercept=intercept, slope=slope)