📅  最后修改于: 2023-12-03 14:49:44.080000             🧑  作者: Mango
线性回归是将一个或多个自变量与一个或多个因变量之间的关系建模为线性函数的方法。 这个模型可以用来预测因变量的值,也可以用来了解自变量与因变量之间的关系。
最小二乘法(OLS)是一种用于估计线性回归模型参数的方法。 OLS 通过最小化残差平方和来找到最优拟合直线。 残差是预测值与实际值之间的差异。
OLS 可以用来评估线性回归模型的性能及其参数的显着性。 我们可以使用 OLS 摘要来解释模型的结果。
首先,我们需要导入 pandas、statsmodels 和 matplotlib 库。
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt
接下来,我们将加载我们的数据。 我们将使用 statsmodels 中的几个内置数据集之一 - 鸢尾花数据集。
from statsmodels.api import datasets
iris = datasets.get_rdataset("iris").data
我们将使用 iris 数据集中的一个特征(萼片长度)来预测另一个特征(花瓣长度)。
X = iris[['Sepal.Length']]
y = iris[['Petal.Length']]
X = sm.add_constant(X) # 添加截距项
model = sm.OLS(y, X).fit() # 构建线性回归模型
现在我们可以使用以下代码来输出 OLS 摘要:
print(model.summary())
这将给出以下输出:
OLS Regression Results
==============================================================================
Dep. Variable: Petal.Length R-squared: 0.759
Model: OLS Adj. R-squared: 0.757
Method: Least Squares F-statistic: 386.5
Date: Wed, 09 Dec 2020 Prob (F-statistic): 2.84e-40
Time: 11:30:48 Log-Likelihood: -101.51
No. Observations: 150 AIC: 207.0
Df Residuals: 148 BIC: 213.3
Df Model: 1
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
const 1.0836 0.159 6.803 0.000 0.769 1.398
Sepal.Length 2.2299 0.113 19.658 0.000 2.006 2.453
==============================================================================
Omnibus: 0.257 Durbin-Watson: 1.962
Prob(Omnibus): 0.879 Jarque-Bera (JB): 0.412
Skew: 0.049 Prob(JB): 0.814
Kurtosis: 2.697 Cond. No. 9.50
==============================================================================
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
我们会看到以下内容:
我们可以使用 matplotlib 库来绘制真实值与预测值的散点图,并将拟合线添加到图表中。
plt.scatter(X['Sepal.Length'], y, alpha=0.5) # 绘制散点图
plt.plot(X['Sepal.Length'], model.predict(X), color='red') # 绘制拟合线
plt.title('Linear Regression') # 添加标题
plt.xlabel('Sepal Length') # 添加 x 轴标签
plt.ylabel('Petal Length') # 添加 y 轴标签
plt.show() # 显示图形
这将给出以下输出:
线性回归是一种用于预测和了解变量之间关系的强大技术。 OLS 摘要提供了许多有关模型性能和因变量的特征重要性的信息。 我们还可以使用可视化技术来更好地理解我们的模型。