ITPub博客

首页 > 数据库 > 数据库开发技术 > Python常用统计库Statsmodels介绍

Python常用统计库Statsmodels介绍

原创 数据库开发技术 作者:derekwh 时间:2024-01-21 17:59:04 0 删除 编辑

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学习杂记;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
央企算法工程师,微信公众号: python数智工坊

注册时间:2021-03-14

  • 博文量
    305
  • 访问量
    162396