import numpy as np
import [Link] as plt
def estimate_coef(x, y):
# number of observations/points
n = [Link](x)
# mean of x and y vector
m_x = [Link](x)
m_y = [Link](y)
# calculating cross-deviation and deviation about x
SS_xy = [Link](y * x) - n * m_y * m_x
SS_xx = [Link](x * x) - n * m_x * m_x
# calculating regression coefficients
b_1 = SS_xy / SS_xx
b_0 = m_y - b_1 * m_x
return (b_0, b_1)
def plot_regression_line(x, y, b):
# plotting the actual points as scatter plot
[Link](x, y, color="m",
marker="o", s=30)
# predicted response vector
y_pred = b[0] + b[1] * x
# plotting the regression line
[Link](x, y_pred, color="g")
# putting labels
[Link]('x')
[Link]('y')
# function to show plot
[Link]()
def main():
# observations / data
x = [Link]([1, 3, 4, 6, 8, 9, 11, 14])
y = [Link]([1, 2, 4, 4, 5, 7, 8, 9])
# estimating coefficients
b = estimate_coef(x, y)
print("Estimated coefficients:\nb_0 = {} \
\nb_1 = {}".format(b[0], b[1]))
# plotting regression line
plot_regression_line(x, y, b)
if __name__ == "__main__":
main()