首页 > 数据库 > 数据库开发技术 > Python常用统计库Statsmodels介绍
Statsmodels是一个广泛使用的Python库,用于实现统计模型估计和推断。它提供了一组功能强大且易于使用的工具,用于探索数据、拟合模型、执行统计检验以及进行预测和诊断分析。

Statsmodels库基于Python的科学计算堆栈,使用NumPy和Pandas库来处理和分析数据。它提供了多种模型类别,包括线性回归、广义线性模型、时间序列模型等。它还提供了一套灵活的估计和推断方法,包括最小二乘法、最大似然估计等。
Statsmodels库的核心理念是通过统计学方法对数据进行建模和推断,以理解和解释数据关系。
pip install statsmodels
这里介绍最基础的最小二乘法的建模举例。
import numpy as np
import pandas as pd
import statsmodels.api as sm
np.random.seed(1)#固定随机种子
nsample = 100
x = np.linspace(0, 10, 100)
X = np.column_stack((x, x ** 2))
beta = np.array([1, 0.1, 10])
e = np.random.normal(size=nsample)
X = sm.add_constant(X)
y = np.dot(X, beta) + e
###拟合
model = sm.OLS(y, X)
results = model.fit()
print(results.summary())
输出结果。
OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 1.000
Model: OLS Adj. R-squared: 1.000
Method: Least Squares F-statistic: 5.730e+06
Date: Sun, 21 Jan 2024 Prob (F-statistic): 9.74e-247
Time: 17:24:16 Log-Likelihood: -128.85
No. Observations: 100 AIC: 263.7
Df Residuals: 97 BIC: 271.5
Df Model: 2
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
const 0.7614 0.262 2.905 0.005 0.241 1.282
x1 0.2142 0.121 1.768 0.080 -0.026 0.455
x2 9.9919 0.012 852.435 0.000 9.969 10.015
==============================================================================
Omnibus: 0.323 Durbin-Watson: 2.077
Prob(Omnibus): 0.851 Jarque-Bera (JB): 0.192
Skew: 0.107 Prob(JB): 0.909
Kurtosis: 3.002 Cond. No. 144.
==============================================================================
查看拟合优度.
print("Parameters: ", results.params)
print("R2: ", results.rsquared)
在Statsmodels库还有很多常用的模型。感兴趣的可以去官网查看。
https://www.statsmodels.org/
Statsmodels库在实际应用中具有广泛的应用。例如,在金融领域,可用于构建股票价格预测模型和风险分析模型。在医学研究中,可用于分析临床试验数据和调查数据,以评估治疗效果和因素的影响。在经济学中,可用于分析经济数据,预测经济变量和评估政策效果。
原文作者:Python学习杂记;如有侵权,请联系管理员删除。