欢迎访问宙启技术站
智能推送

如何使用statsmodels.formula.api进行多元线性回归

发布时间:2023-12-15 08:10:24

对于多元线性回归,我们可以使用statsmodels库中的formula.api模块进行建模和预测。以下是使用statsmodels.formula.api进行多元线性回归的步骤和示例。

步骤1:导入所需的库和数据集

首先,我们需要导入statsmodels.api和pandas库,并加载我们要使用的数据集。

import pandas as pd
import statsmodels.formula.api as smf

# 导入数据集
data = pd.read_csv('data.csv')

步骤2:定义回归模型

我们需要定义多元线性回归的模型。在statsmodels中,我们可以使用formula api来定义模型。在模型中,我们使用变量名和符号"+/-"来表示变量之间的关系。

model = smf.ols(formula='y ~ x1 + x2 + x3', data=data)

在这个例子中,我们有3个自变量(x1,x2,x3)和一个因变量(y)。模型公式为'y ~ x1 + x2 + x3'。

步骤3:拟合模型和预测

接下来,我们可以使用拟合方法fit()来执行模型,并生成拟合结果。

results = model.fit()

通过访问结果的属性,我们可以获取对应的拟合结果。

# 获取回归系数
coefficients = results.params

# 获取回归方程
equation = results.summary()

如果我们有新的输入数据,我们可以使用predict()方法来进行预测。

# 新数据
new_data = {'x1': [1, 2, 3], 'x2': [4, 5, 6], 'x3': [7, 8, 9]}

# 预测
predictions = results.predict(new_data)

步骤4:结果分析和解释

通过访问结果的特定属性,我们可以对拟合结果进行分析和解释。以下是一些常见的属性和方法:

- results.params:回归系数

- results.summary():拟合结果的摘要统计信息

- results.rsquared:决定系数

- results.resid:回归残差

- results.fittedvalues:拟合值

下面是一个完整的多元线性回归的例子:

import pandas as pd
import statsmodels.formula.api as smf

# 导入数据集
data = pd.read_csv('data.csv')

# 定义回归模型
model = smf.ols(formula='y ~ x1 + x2 + x3', data=data)

# 拟合模型
results = model.fit()

# 获取回归系数
coefficients = results.params

# 获取回归方程
equation = results.summary()

# 新数据
new_data = {'x1': [1, 2, 3], 'x2': [4, 5, 6], 'x3': [7, 8, 9]}

# 预测
predictions = results.predict(new_data)

这就是使用statsmodels.formula.api进行多元线性回归的步骤和示例。您可以根据您的实际情况修改模型和解释拟合结果。