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


相关推荐
世界很奇妙塔13 分钟前
大模型轻量化技术攻坚:从千亿参数到端侧部署,重构AI落地底层路径
人工智能·重构
z小猫不吃鱼14 分钟前
模型剪枝经典论文精读:Rethinking the Value of Network Pruning
人工智能·深度学习·计算机视觉
阿尔泰科技官方22 分钟前
阿尔泰科技——NVH/振动/声学测试专用解决方案
人工智能·信号采集·仪器仪表·数据采集卡·采样率
147API37 分钟前
Claude global workspace 研究给智能体测试提了一个醒
人工智能·算法·机器学习
闲猫37 分钟前
深入理解 Skills:从 API 调用到智能体行为封装
人工智能·python·langchain
葫三生37 分钟前
《论三生原理》与模糊数学的关联、异同、互补关系?
人工智能·科技·算法·机器学习·开源
刘一说41 分钟前
AI科技热点日报 | 2026年7月7日
人工智能·科技
ACP广源盛139246256731 小时前
破局 PCIe 4.0 交换瓶颈@ACP#IX8024 / ASM58024参数及应用对比
大数据·人工智能·分布式·嵌入式硬件
ishangy1 小时前
吊箱号AI识别技术:防爆摄像机实现港口集装箱自动核对
人工智能·边缘计算·智慧港口·ai视觉识别·集装箱箱号识别·港口智能化
xiaoxiaoxiaolll1 小时前
《Light: Sci Appl》封面级亮点:可训练误差卷积核如何让光学神经网络实现“逐层自治”?
人工智能