Statsmodels之OLS回归

目录

Statsmodels基本介绍

Statsmodels 是 Python 中一个强大的统计分析包,包含了回归分析、时间序列分析、假设检验等等的功能。Statsmodels 在计量的简便性上是远远不及 Stata 等软件的,但它的优点在于可以与 Python 的其他的任务(如 NumPy、Pandas)有效结合,提高工作效率。在本文中,我们重点介绍最回归分析中最常用的 OLS(ordinary least square)功能。

OLS 回归

假设模型为:
Y = W 0 X 0 + W 1 X 1 + W 2 X 2 + . . . + W n X n Y=W_0X_0 +W_1X_1+W_2X_2+...+W_nX_n Y=W0X0+W1X1+W2X2+...+WnXn

statsmodels.OLS 是 statsmodels.regression.linear_model 里的一个函数。它的输出结果是一个statsmodels.regression.linear_model.OLS,只是一个类,并没有进行任何运算。在 OLS 的模型之上调用拟合函数 fit(),才进行回归运算,并且得到statsmodels.regression.linear_model.RegressionResultsWrapper,它包含了这组数据进行回归拟合的结果摘要。调用 params 可以查看计算出的回归系数 w_0,w_1,...,w_n。其中sm.add_constant()用于生成常数项,它会在一个 array 左侧加上一列 1。

实战

实战1:

python 复制代码
# 导入第三方模块
import pandas as pd
import statsmodels.api as sm

income = pd.read_csv('Salary_Data.csv')
print(income.head())
# 利用收入数据集,构建回归模型
fit = sm.formula.ols('Salary ~ YearsExperience', data = income).fit()
# 返回模型的参数值
print(fit.params)

实战2:

python 复制代码
import numpy as np
import pandas as pd
import statsmodels.api as sm
import matplotlib.pyplot as plt # type: ignore

# 生成模拟数据
np.random.seed(12)
square_feet = np.random.randint(800, 2500, 50)
price = 150000 + 300 * square_feet + np.random.normal(0, 50000, 50)

# 创建数据框
df = pd.DataFrame({'SquareFeet': square_feet, 'Price': price})

# 添加常数列
X = sm.add_constant(df['SquareFeet'])

# 拟合线性回归模型
model = sm.OLS(df['Price'], X).fit()

# 打印模型摘要
print(model.summary())

# 绘制拟合结果
plt.scatter(df['SquareFeet'], df['Price'], label='Data')
plt.plot(df['SquareFeet'], model.predict(X), color='red', label='Fitted Line')
plt.xlabel('Square Feet')
plt.ylabel('Price')
plt.title('Linear Regression: House Price vs. Square Feet')
plt.legend()
plt.show()


相关推荐
月白风清江有声16 分钟前
爆炸仿真的学习日志
人工智能
华奥系科技2 小时前
智慧水务发展迅猛:从物联网架构到AIoT系统的跨越式升级
人工智能·物联网·智慧城市
R²AIN SUITE2 小时前
MCP协议重构AI Agent生态:万能插槽如何终结工具孤岛?
人工智能
b***25112 小时前
动力电池点焊机:驱动电池焊接高效与可靠的核心力量|比斯特自动化
人工智能·科技·自动化
Gyoku Mint2 小时前
机器学习×第二卷:概念下篇——她不再只是模仿,而是开始决定怎么靠近你
人工智能·python·算法·机器学习·pandas·ai编程·matplotlib
小和尚同志2 小时前
通俗易懂的 MCP 概念入门
人工智能·aigc
人大博士的交易之路2 小时前
今日行情明日机会——20250606
大数据·数学建模·数据挖掘·数据分析·涨停回马枪
dudly2 小时前
大语言模型评测体系全解析(下篇):工具链、学术前沿与实战策略
人工智能·语言模型
zzlyx993 小时前
AI大数据模型如何与thingsboard物联网结合
人工智能·物联网
说私域3 小时前
定制开发开源AI智能名片驱动下的海报工厂S2B2C商城小程序运营策略——基于社群口碑传播与子市场细分的实证研究
人工智能·小程序·开源·零售