----------------------------------
# 一元一次回归方程 最小二乘法 python 并行化实现 excel实现
'''
数据:
x y
1 3
2 6
3 6
4 10
5 12
---
回归方程通过excel实现的方法:
1 上面两列数据,不用写字母xy,直接数值输入到excel中,
2 选中数据,选择'插入','散点图',图片出来后右侧加号,勾选'趋势线',这里选'线性'为例,
3 在图中点击趋势线,右键,'设置趋势线格式',在'趋势线选项'里面勾选'显示公式',那么excel自动给我们制作的回归方程就会显示出来
'''
import pandas as pd
import numpy as np
x = np.array([1,2,3,4,5])
y = np.array([3,6,6,10,12])
# 回归方程y = ax + b 求a 和 b
x_mean = np.mean(x)
y_mean = np.mean(y)
xsize = x.size
zi = (x * y).sum() - xsize * x_mean *y_mean
mu = (x ** 2).sum() - xsize * x_mean ** 2
# 参数a b
a = zi / mu
b = y_mean - a * x_mean
# 这里对参数保留两位有效数字
a = np.around(a,decimals=2)
b = np.around(b,decimals=2)
print(f'回归线方程:y = {a}x + {b}') # y = 2.2x + 0.8