多元线性回归是一种用来预测多个自变量和一个因变量之间关系的统计学方法。在Python中,使用多元线性回归的方法有许多,可以使用Numpy、SciPy、Statsmodels等库来实现。
1. 使用Numpy实现多元线性回归
import numpy as np # 设定自变量x和因变量y x = np.array([1,2,3,4,5]) y = np.array([2,4,6,8,10]) # 计算自变量x的平均值 x_mean = np.mean(x) # 计算因变量y的平均值 y_mean = np.mean(y) # 计算自变量x和因变量y的乘积之和 xy_sum = np.sum(x*y) # 计算自变量x的平方和 x_square_sum = np.sum(x**2) # 计算斜率 a = (xy_sum - x_mean * y_mean * len(x)) / (x_square_sum - x_mean * x_mean * len(x)) # 计算截距 b = y_mean - a * x_mean # 打印斜率和截距 print("斜率:", a) print("截距:", b)
2. 使用SciPy实现多元线性回归
import numpy as np from scipy import stats # 设定自变量x和因变量y x = np.array([1,2,3,4,5]) y = np.array([2,4,6,8,10]) # 使用scipy的linregress函数计算斜率和截距 slope, intercept, r_value, p_value, std_err = stats.linregress(x, y) # 打印斜率和截距 print("斜率:", slope) print("截距:", intercept)
3. 使用Statsmodels实现多元线性回归
import numpy as np import statsmodels.api as sm # 设定自变量x和因变量y x = np.array([1,2,3,4,5]) y = np.array([2,4,6,8,10]) # 使用statsmodels的add_constant函数添加常数项 X = sm.add_constant(x) # 使用statsmodels的OLS函数拟合模型 model = sm.OLS(y, X) result = model.fit() # 打印斜率和截距 print("斜率:", result.params[1]) print("截距:", result.params[0])
以上三种方法都可以用来实现多元线性回归,但是使用Statsmodels可以更加方便地添加常数项,以及更加详细地获取结果,所以在实际应用中推荐使用Statsmodels。