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()


相关推荐
2601_95631988几秒前
先把交易想法说清,再让 Python 承接
人工智能·python
qq_25294131682 分钟前
牛目标检测数据集 | 牛只检测 智慧畜牧 动物识别 目标检测5017期
人工智能·深度学习·目标检测·计算机视觉·动物识别··牛识别
Forerror20265 分钟前
MAI Gateway能力解析:API网关能做什么?AI网关核心功能详解
人工智能·api网关·maigateway·企业ai网关·企业级大模型治理网关
武子康6 分钟前
RoboLab 解读:机器人策略评测为什么不能只看二元成功率
人工智能·llm·agent
在线考试系统推荐9 分钟前
拆成多道小题,优考试“理解题“怎么用?
服务器·人工智能·学习
Elastic 中国社区官方博客11 分钟前
机构如何统一智慧城市数据以改善公共服务?
大数据·人工智能·物联网·elasticsearch·搜索引擎·全文检索·智慧城市
小白学大数据11 分钟前
API 调用错误处理实战:分层定位、有纪律地重试与可观测性设计
开发语言·网络·人工智能
Raas10012 分钟前
MAI Gateway(魔芋企业级AI网关)详解:企业为什么需要AI网关,一文读懂企业AI流量治理
大数据·人工智能·gateway·api·ai网关·mai gateway
yangdaxiageo14 分钟前
白帽GEO的结构化信任工程:杨大侠GEO商业方法论研讨
人工智能·科技·aigc·agi
Swift社区14 分钟前
Wi-Fi 6 的核心技术特性
人工智能·python