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

使用statsmodels.formula.api进行最小二乘法估计

发布时间:2023-12-15 08:16:37

statsmodels是一个Python库,用于进行统计建模和分析。它提供了一种方便的方式来拟合线性模型,其中包括最小二乘法估计。在这个例子中,我们将使用statsmodels.formula.api来拟合一个简单的线性回归模型。

首先,我们需要导入所需的库和数据集。在这个例子中,我们将使用波士顿房价数据集,其中包含了506个观测值和13个变量。

import statsmodels.api as sm
import statsmodels.formula.api as smf
from sklearn.datasets import load_boston

boston = load_boston()

接下来,我们将数据集加载到一个DataFrame中,并为每个自变量添加一个常数列。

import pandas as pd

df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['target'] = boston.target

现在,我们可以使用statsmodels来拟合线性回归模型。我们将使用所有的自变量作为预测变量,并使用“target”作为目标变量。

model = smf.ols(formula='target ~ ' + ' + '.join(boston.feature_names), data=df)
result = model.fit()

在这个例子中,我们使用了公式target ~ CRIM + ZN + INDUS + CHAS + ...来指定线性回归模型。我们使用了“+”符号将所有的自变量组合在一起。如果存在交互项或非线性项,我们还可以在公式中添加其他的符号。

一旦模型被拟合,我们可以使用result对象来获取模型的摘要信息。

print(result.summary())

输出的摘要信息包括模型拟合的统计指标,以及每个自变量的回归系数和显著性水平。我们可以使用这些信息来评估模型的拟合效果和每个自变量的影响。

除了拟合线性模型,statsmodels还提供了其他统计建模和分析的功能,比如广义线性模型、混合效应模型、时间序列分析等。

总结起来,使用statsmodels.formula.api进行最小二乘法估计较为简单。我们只需要定义一个公式来描述模型,然后将数据加载到DataFrame中,拟合模型并获取结果。通过分析模型摘要信息,我们可以得出结论并做出预测。